-         

Ergebnis 1 bis 4 von 4

Thema: Problem mit QEI-Modul (PIC 18F4331)

  1. #1
    Beat
    Gast

    Problem mit QEI-Modul (PIC 18F4331)

    Anzeige

    Hallo

    Zuerst mal guten Tag alle zusammen - bin neu hier im Forum (aber schon einige Zeit am "herumschnüffeln").

    Momentan schlage ich mich mit dem im PIC18F4331 eingebauten QEI-Modul herum, ich bringe das Ding einfach nicht zum Laufen. Hat evtl. jemand von euch schon Erfahrungen damit gemacht?

    Ich möchte einen Encoder im Positions-Modus betreiben, und zwar im 2x update mode (inkrement auf jede QEA-Flanke) mit Reset auf das INDX signal). Gemäss Datenblatt sollte sich bei jeder QEA-Flanke der Positionscounter (Register POSCNT) um eine Stelle erhöhen (s. 16.2.3 ff.). Ich möchte das zuerst einfach mal im MPLAB als Simulation zu laufen kriegen, klappt aber nicht. Im folgenden der Code den ich zum Testen verwende (das QEA Signal simuliere ich mit einem asynchronen Stimulus auf RA3):

    ; port description of PIC 18F4331 (40-pin PDIP): PORT A
    ;0:
    ;1:
    ;2: INDX (input)
    ;3: QEA (input)
    ;4: QEB (input)
    ;5: x

    ;---------------------------------------------------------------------------
    ; microcontroller version:
    list p=18f4331
    ;---------------------------------------------------------------------------
    ; include file:
    include "p18f4331.inc"
    ;---------------------------------------------------------------------------
    ;suppress message 302 from list file:
    errorlevel -302
    ;---------------------------------------------------------------------------
    ; configuration -> done in MPLAB

    org 0x00

    ;setup I/O ports
    clrf PORTA ; initialize PORTA by clearing output data latches
    clrf ANSEL0 ; ports are digitale I/Os
    clrf ANSEL1
    movlw b'11111111' ; pin I/O configuration of PORTA (1 = input, 0 = output)
    movwf TRISA

    ;---------------------------------------------------------------------------
    ;setup quadrature encoder and IC module

    movlw b'00000000' ; IC module off -> QEI module on (?)
    movwf CAP1CON
    movwf CAP2CON
    movwf CAP3CON

    movlw b'10000100' ; Velocity mode off, 2x update with reset on INDX, no pulse reduction
    movwf QEICON

    ;---------------------------------------------------------------------------
    ;---------------------------------------------------------------------------
    ;main loop

    Loop nop
    goto Loop

    ;---------------------------------------------------------------------------
    ;---------------------------------------------------------------------------
    ;end of program
    end

    Wie gesagt, wenn ich das ganze in MPLAB laufen lasse tut sich rein gar nichts in den POSCNT Registern - was mache ich falsch oder habe ich etwas total falsch verstanden?

    Danke für jede Hilfe!

    B E A T

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.08.2004
    Ort
    Winterthur
    Beiträge
    312
    Hallo

    Könnte es sein, dass das Hardware-Modul (POSCNT etc.) vom MPLAB-Sim nicht unterstützt wird? Sollte in der Hilfe stehen, welche Module bei welchem PIC unterstützt werden.

    Gruess
    FRitzli

  3. #3

    QEI-Modul

    Hallo Fritzli

    Danke für die Antwort, aber das hab ich gecheckt: In der "Limitations" Liste von MPSIM ist jedenfalls nichts derartiges erwähnt. Aber vielleicht sollte ich das ganze doch einfach mal hardwaremässig ausprobieren - vielleicht läuft's dann ja.

    Was mich bei der ganzen Sache verwirrt ist die Verknüpfung des IC-Capture Moduls mit dem QEI-Modul: Wie schalte ich das IC-Capture Modul aus und das QEI Modul korrekt ein, und sind mit dem Einschalten des QEI Moduls die I/O pins gleich richtig konfiguriert?

    Ist es richtig die Register CAPxCON und QEICON wie folgt zu setzen?:

    CAPxCON = 'yyyy0000' bedeutet "Input Capture x off"
    QEICON = '00000100' bedeutet "QEI enabled in 2x update mode, INDX resets the position counter"

    (zudem müssen die IO pins RA2-RA4 natürlich auf input geschaltet sein)

    Meiner Meinung nach sollte das reichen und das POSCNT register sollte jetzt bei jeder QEA Flanke um eins erhöht werden.

    B E A T

  4. #4
    Hallo zusammen

    Habe den Fehler (auf Anregung von Fritzli) gefunden: Die ganze Sache funktioniert in Hardware wie vorgesehen, aber die Simulation wird in MPLAB nicht unterstützt (allerdings findet sich nirgends ein Hinweis darauf dass das Modul in der Simulation nicht unterstützt wird). Werde mich mal bei Microchip direkt erkundigen.

    Danke

    B E A T

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •