MeckPommER
20.01.2011, 15:28
Hallo liebe Roboter-Gemeinde - ich stehe auf dem Schlauch bei einer Sache, bei der ich eigentlich noch nie Probleme hatte, den seriellen Schnittstellen.
In einer Schaltung sitzt ein Atmega16, der von einem PC seriell Befehle bekommt, diese dann per SPI an diverse andere Controller weiterleitet und brav Rückmeldungen an den PC verschickt. Funktioniert auch alles bestens.
Da ich mehr RAM im Controller brauche, kurzerhand den 16 durch einen ATMega644 ersetzt, def-File angepasst, Fuses angepasst, und ... Pustekuchen :-/ Es scheinen Zeichen in mindestens eine Richtung gelegentlich verloren zu gehen. Je nach übermitteltem Bytewert scheint das mal mehr oder mal weniger wahrscheinlich zu sein. 90% kommen zwar richtig an, aber aus verständlichen Gründen dürften es gerne mehr sein ;-)
Klingt alles sehr nach falscher Baudrate, deshalb habe ich die entsprechenden Register geprüft - alles fein. Fuses sind auch ok ... nur gehen hier und da Daten flöten.
Zweites Phänomen:
Die Untercontroller sind parallel zum Programmieradapter an MOSI/MISO angeschlossen und werden per ChipSelect vom Controller selektiert. Den Atmega16 stört es nicht, wenn die anderen Controller ausgeschaltet und angeschlossen sind. Der ATMega644 hingegen wird nicht erkannt, wenn die anderen Controller mit angeschlossen sind.
Falls jemand eine Idee hat ... ich bin ganz Ohr :-)
Gruß MeckPommER
In einer Schaltung sitzt ein Atmega16, der von einem PC seriell Befehle bekommt, diese dann per SPI an diverse andere Controller weiterleitet und brav Rückmeldungen an den PC verschickt. Funktioniert auch alles bestens.
Da ich mehr RAM im Controller brauche, kurzerhand den 16 durch einen ATMega644 ersetzt, def-File angepasst, Fuses angepasst, und ... Pustekuchen :-/ Es scheinen Zeichen in mindestens eine Richtung gelegentlich verloren zu gehen. Je nach übermitteltem Bytewert scheint das mal mehr oder mal weniger wahrscheinlich zu sein. 90% kommen zwar richtig an, aber aus verständlichen Gründen dürften es gerne mehr sein ;-)
Klingt alles sehr nach falscher Baudrate, deshalb habe ich die entsprechenden Register geprüft - alles fein. Fuses sind auch ok ... nur gehen hier und da Daten flöten.
Zweites Phänomen:
Die Untercontroller sind parallel zum Programmieradapter an MOSI/MISO angeschlossen und werden per ChipSelect vom Controller selektiert. Den Atmega16 stört es nicht, wenn die anderen Controller ausgeschaltet und angeschlossen sind. Der ATMega644 hingegen wird nicht erkannt, wenn die anderen Controller mit angeschlossen sind.
Falls jemand eine Idee hat ... ich bin ganz Ohr :-)
Gruß MeckPommER