Hallo, ich arbeite gerade an einer Platine, welche an einem Dynamixel-Motor (http://www.robotis.com/xe/dynamixel_en) angeschlossen wird, um diesen zu kalibrieren (ID setzen , etc..). Dazu schließe ich den Dynamixel mit Hilfe eines Max485 an den zweiten UART eines ATmega644P an. Am ersten hängt ein Display (http://www.sparkfun.com/products/9395). Die Baudrate für den Motor beträgt 1000000 BAUD und die für den Display 9600 BAUD. Mein Problem besteht darin, dass mein Programm nur kurz nach dem flashen komplett funktioniert. Wenn ich den Stecker ziehe oder den ISP abbaue, so wird zwar meist die Motorkommunikaton ausgeführt und die richtigen LED's angesteuert, doch bleibt der Display leer. Meine Frage wäre, ob dies an Fehlern bei der Übertragung liegen könnte, da ich keinen externen Quarz benutze. Sollte ich lieber einen nehmen und wenn ja, könnt ihr mir einen empfehlen? Grüße, HeDo Bild der Platine: https://dl.dropbox.com/u/1566663/testerplatine.png
He Do schrieb: > Meine Frage wäre, ob dies an Fehlern bei der Übertragung liegen könnte, > da ich keinen externen Quarz benutze. Solange du mit 5 V und bei Zimmertemperatur arbeitest, ist es recht unwahrscheinlich, dass da der Fehler liegt. > Sollte ich lieber einen nehmen und Wenn du im laufenden Betrieb damit arbeiten willst, ist zumindest ein Keramikresonator zu empfehlen. > wenn ja, könnt ihr mir einen empfehlen? Praktisch jeder beliebige. Keramikresonator statt Quarz hatte ich schon genannt, der braucht keine separaten Last-Kondensatoren und ist ein wenig billiger und ungenauer. Dafür schwingt er nach dem Schlafen schneller an als ein Quarz.
- Du verwendest sehr wenig Stützkondensatoren. Ist die Stromversorgung stabil? - AVCC bitte noch beschalten. - Reg1117 nicht nach DB beschaltet (10µF an beiden Seiten)
Hi, @Jörg: vielen Dank für die schnelle Antwort. @Pete: Dafür muss ich mich entschuldigen, denn diese sind nicht auf dem Schaltplan verzeichent, weil ich für die Stromversorgung den SMPS2Dynamixel(http://www.trossenrobotics.com/store/p/5886-SMPS2Dynamixel-Adapter.aspx) benutze. Es scheint also doch ein Softwarefehler zu sein, da ich keine Kommunikation zum Diplay bekomme, sobald ich den 2. UART aktiviere. Hier der Initialisierungscode für den Motor UART:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
Die Makros sind wie folgt definiert:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
Erkennt ihr hierin irgendeinen Fehler?
Gast
#2727038
Wie ist Display-GND auf der Platine geroutet; vielleicht nur bis ISP1-GND ohne Verbindung zu IC3-GND? Analoge Frage zu Display-Vcc.
Hallo an alle, danke für eure Hilfe. Das Problem lag wohl bei den fehlenden Stützkondensatoren. Zudem war der JTAG eingeschaltet. Das dürfte erklären, warum es immer nach dem Flashen funtioniert hat. Viele Grüße, HeDo
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.