Forum: Mikrocontroller und Digitale Elektronik seltsames Problem ATMEGA16 mit Encoderschaltkreis


von Reinhard (Gast)


Lesenswert?

Hallo,

habe zur Auswertung einiger Drehgeber einen ATMEGA16 und einen HCTL2032 
eingesetzt.
http://www.avagotech.com/assets/downloadDocument.do?id=1780
Die Daten werden vom Port C des MEGA16 gelesen.
Allerdings bekomme ich nur wirre Daten vom HCTL. Deshalb mit einen 
Oszillografen mal die Signale überprüft und festgestellt, das die 
Encodersignale unsauber sind. Ursache waren die fehlende 
Abschlußwiderstände der RS422 Verbindung. (Drehgeber <> HCTL)
Allerdings hat das nichts gebracht, die Signale sind jetzt sauber aber 
gezäht wird trotzden nicht richtig.

Jetzt habe ich den Drehgeber mal ganz langsam gedreht und festgestellt, 
das ein Systen in den gelieferten Zählerständen ist:

0;1;2;3;  64;65;66;67;  128;129;130;131;  192;193;194;195

Danach geht es wieder von vorn los.
Der Abstand ist immer 61. Dachte die Portleitungen 2 und 6 sind 
vertauscht, das würde den Sprung von 3 auf 64 erklären den Rest aber 
nicht so richtig.
Die Leitungen habe ich gründlich überprüft, es ist weder eine 
Vertauschung, noch ein Schluß und auch keine Unterbrechung drin.
Die Datenbläter sind direkt von den Herstellern.

Weiß jetzt nicht mehr weiter, hat irgen jemand noch eine Idee?

Gruß Reinhard

von Karl H. (kbuchegg)


Lesenswert?

0;1;2;3;  64;65;66;67;  128;129;130;131;  192;193;194;195

mal binär aufschreiben

  0      0000 0000
  1      0000 0001
  2      0000 0010
  3      0000 0011
 64      0100 0000
 65      0100 0001
 66      0100 0010
 67      0100 0011
128      1000 0000
129      1000 0001
130      1000 0010
131      1000 0011
192      1100 0000
193      1100 0001
194      1100 0010
195      1100 0011

Entweder Bits 2 und 6  UND
              3 und 7    vertauscht

oder du kriegst in den obersten 2 Bits eine Quadranteninformation.

von Reinhard (Gast)


Lesenswert?

Hallo Karl Heinz,

besten Dank für deine Mühe.
Wie gesagt, vertauscht ist nichts, aber es scheint ein Problem mit dem 
Mega16 zu geben.
Gibt es beim Port C irgendwelche Besonderheiten ?
Habe es in Bascom so als Eingang programmiert:
Config Portc = Input

Zumindest die Pins 2,3 und 5 lesen nicht was sie sollten. Es wird zB. 
eine 3 ausgegeben obwohl sie auf "1" stehen.
Reagieren tun sie aber, wenn ich den Encoder durchdrehe.



Gruß Reinhard

von Reinhard (Gast)


Lesenswert?

Hallo,

ich glaube, ich habs!
Das Fuse Bit vom Jtag mußte ich zurücksetzen.
Also in Ponyprog das Häkchen entfernt, heiß ja wohl, daß das Bit dann 
gesetzt ist.


Gruß Reinhard

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.