Gast
#2324152
Hallo! Ich arbeite an einem Projekt bestehend aus einer Platine mit zwei ATmegas (1280 und 164P), die über das HW SPI Interface miteinander verbunden sind. Beide Controller sind mit einer modifizierten Version des AVR109 Bootloaders ausgestattet, die das Übertragen von Daten mittels SPI unterstützt. Bei einigen Platinen ist im laufe der letzten Monate jeweils der 164P ausgefallen. Durch erneutes Einspielen des hex-Files mittels Bootloader, der davon nicht betroffen war, konnte dieser aber wieder zum Laufen gebracht werden. Ich vermute daher, dass es zu einem Fehler im Flash Programmspeicher gekommen ist. Aus urheberrechtlichen Gründen kann ich leider weder Schaltpläne noch Teile des Programms posten. Der 164P ist an PB4 bis PB7 (SPI Slave Interface) über 100R Serienwiderstände mit dem SPI Master Interface des 1280 verbunden. Eine zusätzliche Leitung an PC7 signalisiert die Sendebereitschaft des 164P. Es gibt keine weiteren Schaltungsteile, die bekannt für größere Störungen sind, wie Relais und dergleichen. Die meisten Portleitungen gehen zu Optokopplern. Der Reset wird über einen Transistor, der als Schalter ausgeführt ist, aktiviert. Auf dieser Leitung selbst ist kein Kondensator gegen Masse. Über einen Spannungsteiler >50k wird eine andere Spannung an Port PA7 gemessen, die auch nach dem Wegfall der Versorgung noch für einige ms anliegen könnte. Beide Bootloader initialisieren zunächst sämtliche I/O Ports und warten dann eine gewisse Zeit auf das Startzeichen "S". Wird dieses nicht empfangen, started der Programmcode mittels JMP Befehl von Adresse 0. Aus Sicherheitsgründen, damit die SW auch mittels Programmer aktualisiert werden kann, ist die SPIEN Fuse aktiviert. Könnte es sein, dass der 164P versehentlich (aufgrund der Port-Initialisierung) in den seriellen Programmiermodus geht und sich dadurch das vorhandene Programm zerstört. Könnte es andere Ursachen für das "Vergessen" geben? Ist der 164P evtl. empfindlich auf Latch-Up Effekte? Sollte der Brown-Out Detektor aktiviert werden? Vielen Dank, Andreas