Hallo Leute, ich habe einen ALPS Drehgeber mit vollschritt-Rastung, den ich über ein handteil, was mit 1,8m 9-pol SUB-D Kabel an einem ATmega32 angeschlossen habe. Ich benutze das für mich angepasste Programm von Peter Dannegger. Mein Problem: Der Drehgeber zählt nur noch in eine Richtung. Als ich ihn auf dem gleichen Board hatte wie den uC ging alles super, auch wenn man schnell gedreht hat. Kann es sein das sich schon bei 1.8m die Kapazität der Leitung bemerkbar macht und meine Pulse verzerrt? Hab keine Ahnung was das sonst noch sein kann. Weiß einer von euch vielleicht Rat? Auf der Leitung (SUB-D) liegt nur Masse und die beiden Pulssignale vom ALPS sonst nix. Es sollen aber noch Ausgänge vom uC da mit durch! Bin für jede Hilfe dankbar
Evtl. über einen Pegelwandler (z.B: MAX 232) die Kabelstrecke mit 12V 
(bzw. 10V) betreiben. Das erhöht schonmal die Störsicherheit. Ausserdem 
ist der Treiber stark genug. Ich nehme mal an, dass Du Pullups drin 
hast.
Dann kannst Du mit nem Oszi der Leitungskapazität beim Laden zusehen
(sehr schöne e-Funktion ;-) )
Die Verbindung müsste dann so aussehen:
                   Kabelstrecke
                       ##
VCC----------------------------------------------------------
         ---|---       ##        ---|---                    |
A--------|     |-----------------|     |--------|A - Enc.|--|
B--------| MAX |-----------------| MAX |--------|B - Enc.|--|
         |     |       ##        |     |   |
         ---|---       ##        ---|---   2k(Pulldown an A und B)
GND-----------------------------------------
                       ##
Einen dicken Elko an der Drehencoderseite nicht vergessen! Und die 
üblichen 100nF Block Cs auch nicht.
  Nachtrag: Bei kurzen distanzen gehen auch ein Bustreiber, statt den beiden MAX Teilen.
Am einfachsten wirst du dein Problem erkennen, wenn du auf der 
Controller Seite nach den 1,8m mal ein Oszi dranhängst und dir die 
rauskommenden Signale genauer anschaust. Es kann schon sein, daß die 
Signale bis dahin leicht verfälscht werden, auch wenn 1,8m nicht 
unbedingt sehr viel ist.
Aber wenn es direkt am Board funktioniert und mit 1,8m Kabel dazwischen 
nicht mehr, muß es ja definitiv am Kabel liegen.
Hast du schon versucht ein anderes Kabel zu benutzen, nur um ein 
eventuell defektes Kabel auszuschließen?
Ciao,
     Rainer
  Du mußt einfach nur genügend kleine PullUp-Widerstände anstelle der internen PullUps im ATMEGA verwenden, um die Flanken schnell genug zu bekommen. 1kOhm extern an jeden Eingangspin des ATMEGAs nach Vcc schalten, an den der Drehencoder angeschlossen ist. Treiberschaltkreise braucht man dafür nicht, der Drehencoder ist niederohmig genug.
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
Mit Google-Account einloggen
  Noch kein Account? Hier anmelden.

 Thread beobachten
 Thread beobachten Seitenaufteilung abschalten
 Seitenaufteilung abschalten