Hallo NG,
nun ist es denke ich passiert! Bisher habe ich alle meine Schaltungen in denen ein AVR werkelt immer =FCber eine externe RESET-Schaltung (egal ob eigenes IC oder nur diskret =FCber Diode, Kondensator und Widerstand) resettet. Irgendwann habe ich dann geh=F6rt das es "ausreichen" soll den internen POR (Power On Reset) zu nutzen. Diese Erkenntnis habe ich dann in ein Projekt einflie=DFen lassen und so auf s=E4mtliche externe Beschaltung des Reseteingangs verzichtet..... GROBER FEHLER wie sich jetzt herausgestellt hat!
In dem Projekt, wo ich diesen Fehler gemacht habe, werden 4 gleiche Platinen auf denen jeweils ein eigener Step-Down-Wandler, AVR und ein paar Eingangsschutzschaltungen sind, =FCber ein 4-Adriges Kabel untereinander =FCber RS485 und mit einem USB zu RS485 Interface mit dem PC verbunden.
2 Leitungen des Kabels werden f=FCr RS485 und die anderen 2 Leitungen f=FCr die Spannungsversorgung 24V=3D genutzt. Das Netzteil, das die 24V Gelichspannung erzeugt, befindet sich bei dem PC an dem auch das USB zu RS485-Modul angeschlossen ist (Hintergrund: die 4 Platinen befinden sich in einem Hygeine-Bereich in dem mit sehr viel Wasser gereinigt wird und darum wollte ich dort nicht mit 230V arbeiten). Das erste Modul ist vom PC =FCber 45m Kabel entfernt am RS485-Bus angeschlossen und die folgenden Module sind dann jeweils im Abstand von jeweils 2m an den Bus angeschlossen.Bei der ersten Inbetriebnahme des Gesamtsystems funktioniert alles einwandfrei. Ich konnte =FCber den RS485-Bus mit einer Geschwindigkeit von 56kBaud vom PC auf die einzelnen Module (mit denen lediglich Impulse gez=E4hlt werden (ca. 0,5 bis 1Hz) zugreifen. Nach kurzer Zeit konnte dann die Software auf dem PC nur noch das erste, am Bus angeschlossene, Modul automatisch durch Adressscanning erkennen.
An diesem Wochenende habe ich dann endlich Zeit gefunden dieses Problem n=E4her zu untersuchen und habe festgestellt das, wenn ich die Spannungsversorgung =FCber den Bus kurz einschalte, dann sofort wieder ausschalte, kurz warte (LED an Netzteil erlischt langsam) und dann wieder einschalte, auch die restlichen Module am Bus durch die Software auf dem PC automatisch erkannt werden.
Ich vermute nun das durch die Sequenz: Spannung einschalten, ausschalten, warten und wieder einschalten die restlichen Module erst richtig in den Reset laufen und somit richtig initialisiert werden.
Nun kann ich nat=FCrlich an dem SPI-Interface der Platine eine kleine Resetschaltung aufsteckbar nachr=FCsten aber gibt es irgend eine softwaretechnische M=F6glichkeit den AVR zum Resetten zu zwingen? Die Fuses in den AVRs sind bereits so eingestellt das von einer langsam ansteigenden Spannung ausgegangen wird und einer m=F6glichst langer Reset von 65ms intern im AVR erzeugt wird.
Liegt es vielleicht auch an die Step-Down-Wandler 24VDC -> 5VDC? Ich habe dort etwas zu gro=DFe Kondensatoren in der Eingangsschaltung und der Ausgangsschaltung. Aber warum funktioniert dann das erste Modul am Bus fehlerfrei?
F=FCr Anregungen bin ich jederzeit dankbar!
Artur