-         

Ergebnis 1 bis 6 von 6

Thema: [gelöst] USART ATMega16 != ATMega644 ?

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.07.2007
    Alter
    53
    Beiträge
    1.080

    [gelöst] USART ATMega16 != ATMega644 ?

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    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
    Mein Hexapod im Detail auf www.vreal.de

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.418
    fuse bits für den quarz gesetztt?
    und auch den teiler 1/8 rausgenomen
    und im programm die richtige quarzfrequens angegeben?

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.07.2007
    Alter
    53
    Beiträge
    1.080
    ja.
    jo.
    auch das.
    Mein Hexapod im Detail auf www.vreal.de

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.07.2007
    Alter
    53
    Beiträge
    1.080
    Mit 2 Stopbits funktioniert die Kommunikation zwischen PC und µC, aber das ist für mich ein Workaround und keine wirkliche Lösung des Problems.

    Nachtrag: die Verbindung läuft mit 115200 baud und der Atmega läuft mit einem 18,432 MHz Quarz. (Das dies mit dem Atmega16 ging und mit dem Atmega644 nicht ... hat mich zusätzlich erstaunt)
    Mein Hexapod im Detail auf www.vreal.de

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.04.2010
    Beiträge
    1.249
    Funktioniert es besser, wenn du die Baudrate runter setzt?

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.07.2007
    Alter
    53
    Beiträge
    1.080
    So, wie mein Urgroßvater immer sagte: "Ist der Bug nicht digital, versuch es analog nochmal"
    Ein 3.3KOhm Widerstand vom seriellen Eingang des µC auf Masse brachte den gewünschten Erfolg. Hier scheinen sich intern die Controller zu unterscheiden.

    Gruß MeckPommER
    Mein Hexapod im Detail auf www.vreal.de

Berechtigungen

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