Hallo, haben hier gerade ein EMV-Problemchen bei unserem Gerät mit ATTiny84 entdeckt. Dabei ist mir was Seltsames aufgefallen: 1. Ich lade per SPI (kein Debug-Modus also) das HEX-File fürs FLASH und EEPROM mit AVR-Studio und ISP-Freq = 6.48 kHz in das (fabrikneue) Device 2. Danach lade ich die beiden Files wieder runter und "diff"e die Ursprungsdatei gegen die runtergeladene. Beim FLASH sieht das Downloadfile exakt gleich aus wie die Ursprungsdatei. Beim EEPROM jedoch ist jedes Mal und bei mehreren ATTinys immer die Zelle 63 oder 64 anders! Meistens steht dort 0x03 statt 0x00! Ich benötige diese Zelle zufälligerweise nicht, mir ist das aber aufgefallen. Ich habe die Vermutung, dass der Controller bzw. Debugger hier irgendein Kalibrierwert oder Ähnliches abspeichert. Kann das sein und wenn ja, wie kann ich das abschalten?
Die Fuse ist auf BODLEVEL = 2,7V. Ist also aktiviert.
Eine solche Fuse gibt's beim ATTiny84 nicht. Nur BODLEVEL0-2 im HIGH-Byte die die Triggerschwelle bzw. die Deaktivierung steuern. BODLEVEL = 111 = Brown-Out deaktiviert, bei BODLEVEL = 101 = Brown-Out aktiviert mit 2,7V.
Alexander I. schrieb: > Ich habe die Vermutung, dass der Controller bzw. Debugger hier irgendein > Kalibrierwert oder Ähnliches abspeichert. Nur, wenn deine Firmware sowas tun sollte. Ein AVR lässt den kompletten EEPROM von sich aus in Ruhe, mit Ausnahme eines chip erase (ohne gesetzte EESAVE-Fuse), bei der er gelöscht wird. Kalibrierwerte werden, wenn überhaupt, in separaten EEPROM-Zellen untergebracht, die vom normalen Nutzer nicht modifiziert werden können und die auch nicht beim chip erase angefasst werden.
Alles klar, dann kann ich die Suche schonmal eingrenzen. Läuft der ATTiny nach/zwischen dem EEPROM/FLASH-Download sofort los, oder erst wenn ich den Debugger abziehe? In der FW wird tatsächlich im EEPROM herumgeschrieben, allerdings nicht in dem Bereich. Vielleicht ist da noch irgendwo ein Bug.
Hi >Kalibrierwerte werden, wenn überhaupt, in separaten EEPROM-Zellen >untergebracht, die vom normalen Nutzer nicht modifiziert werden können >und die auch nicht beim chip erase angefasst werden. Nicht ganz. Das AVR-Studio bietet die Möglichkeit das Calibration-Byte für den internen Oszillator im EEPROM oder Flash abzulegen (automatisch beim Programmieren). Vieleicht hat Alexander diese Option versehentlich aktiviert. MfG Spess
spess53 schrieb: > Nicht ganz. Das AVR-Studio bietet die Möglichkeit das Calibration-Byte > für den internen Oszillator im EEPROM oder Flash abzulegen (automatisch > beim Programmieren). Ist aber unwahrscheinlich, dass davon permanent nur ein Bit kippt, da die OSCCAL-Werte ja eher kreuz und quer gewürfelt sind. Diese Funktion braucht man heute gar nicht mehr, da es nur noch einen einzigen RC-Oszillator gibt und nicht mehr vier. Dessen Kalibrierwert wird ja ohnehin nach OSCCAL übernommen. (Ja, ich weiß, er könnte die entsprechende Funktion dennoch aktivieren. ;-)
Alexander I. schrieb: > Alles klar, dann kann ich die Suche schonmal eingrenzen. Läuft der > ATTiny nach/zwischen dem EEPROM/FLASH-Download sofort los, oder erst > wenn ich den Debugger abziehe? Normalerweise sofort danach. Du kannst aber /RESET permanent auf low halten, der ISP-Algorithmus sollte damit klar kommen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.