Fehler #35
ACKs kommen um 2 Bits zu spät
| Status: | Erledigt | Start date: | 01/07/2011 | |
|---|---|---|---|---|
| Priority: | Dringend | Due date: | ||
| Assignee: | % Done: | 0% |
||
| Category: | AVR | Spent time: | - | |
| Target version: | - | Estimated time: | 3.00 hours |
Description
Das ist eigentlich ein Fehler in der AVRLIB.
Das ACK kommt um 2 Bits zu spät. Im Betrieb nur mit AVR Controllern fällt das Problem nicht auf.
Im Mischbetrieb mit Standardgeräten von z.b. Siemens, Gira, ABB, überlagern sich die verschobenen Bits und es entsteht dadurch ein NACK am Bus.
Das Problem muss nicht sofort auffallen da im einfachen Betrieb oft keine Fehler sichtbar sind.
Auswirkungen sind:
1.) ETS meldet beim Lesen/Schreiben von GroupValues einen Fehler.
2.) alle Frames am Bus werden 3 Mal wiederholt da auf ein NACK retries folgen und ALLE Frames am Bus durch die überlagerung der Bits ge-NACKed werden
3.) GroupValueReadRespnses kommen daher ebenfalls 3 Mal
4.) Durch die häufige Wiederholung der Frames kann es passieren dass AllocMsg() fehlschlägt weil alle Messages verbraucht sind. Dadurch geht der Controller in den Panic Mode mit 4-Mal Blinken der Roten Led.
Dieser Absturz ist leicht reproduzierbar wenn es mehrere Gruppenzugehörigkeiten gibt ein ein GroupValueRead an das Gerät gesandt wird und ist ein echter Killer !
Meiner Meinung nach betreffen die Tickets #29 und #31 des "AVR 8-fach In" das gleiche Problem und wären mit der Korrektur des Timings ebenfalls behoben.