Forum: Mikrocontroller und Digitale Elektronik ATTiny84: Vorbelegung diverser EEPROM-Zellen??


von Alexander I. (daedalus)


Lesenswert?

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?

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Brownout aktiviert?

von Alexander I. (daedalus)


Lesenswert?

Die Fuse ist auf BODLEVEL = 2,7V. Ist also aktiviert.

von Chris L. (kingkernel)


Lesenswert?

Und die BODEN-Fuse, wie ist die eingestellt?

von Alexander I. (daedalus)


Lesenswert?

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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von Alexander I. (daedalus)


Lesenswert?

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.

von spess53 (Gast)


Lesenswert?

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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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. ;-)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.