Forum: Mikrocontroller und Digitale Elektronik BOD bei ATTiny2313 aktivieren


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Harstad (Gast)


Lesenswert?

Hi,

nach diversen (Fehl)versuchen hänge ich gerade fest:

Ich will bei einem ATTiny folgende Fuses setzen:

- BOD aktiviert und bei 4.3 V
- sämtliche Möglichkeiten lesend auf den Flash zuzugreifen sind 
deaktiviert (also kein Serial Programming etc., die Firmware soll also 
maximal überschrieben aber nicht gelesen werden können)
- 12 MHz Clock
- Kein Clock-Divider

Ich habe es schon mit dem Tool unter http://www.engbedded.com/fusecalc/ 
versucht, aber wenn ich das richtig sehe, dann sind dort die BOD-Bits 
falsch (nicht auf den untersten 3 Bits, sondern um eins verschoben).

Das Low-Byte müsste also 0xEF sein - aber was brauche ich beim Highbyte 
genau?

Danke!

von Georg G. (df2au)


Lesenswert?

Harstad schrieb:
> - 12 MHz Clock

Externer Takt oder 12MHz Quarz?

von Harstad (Gast)


Lesenswert?

Georg G. schrieb:
> Externer Takt oder 12MHz Quarz?

Quarz @ 12 MHz und Watchdog deaktiviert.

von Thomas E. (thomase)


Lesenswert?

Harstad schrieb:
> ber wenn ich das richtig sehe, dann sind dort die BOD-Bits
> falsch (nicht auf den untersten 3 Bits, sondern um eins verschoben).

Das ist ja auch vollkommen richtig. Das unterste Bit ist RSTDISBL. Da 
willst du doch nicht wirklich bei.

Harstad schrieb:
> Das Low-Byte müsste also 0xEF sein - aber was brauche ich beim Highbyte
> genau

Welchen Controller hast du denn? Tiny2313 oder Tiny2313A?

mfg.

von Harstad (Gast)


Lesenswert?

Thomas Eckmann schrieb:
> Das ist ja auch vollkommen richtig. Das unterste Bit ist RSTDISBL. Da
> willst du doch nicht wirklich bei.

Äh...stimmt. Aber brauche ich das nicht auch um anschließend alle 
Zugriffsversuche/Debugversuche an der Firmware zu verindern?

>> Das Low-Byte müsste also 0xEF sein - aber was brauche ich beim Highbyte
>> genau

> Welchen Controller hast du denn? Tiny2313 oder Tiny2313A?

Tiny2313A

von Thomas E. (thomase)


Lesenswert?

Harstad schrieb:
> Aber brauche ich das nicht auch um anschließend alle
> Zugriffsversuche/Debugversuche an der Firmware zu verindern?

Nein. Mit RSTDISBL und SPIEN = off sperrst du dich erstmal selbst aus. 
Dann kommst du nur noch mit HV dran. Jeder andere aber auch. Als 
Auslesesperre für das Flash dienen die Lock-Bits. Wenn die gesetzt sind 
geht nur noch Löschen. Es soll zwar Experten geben, die das trotzem 
knacken, aber solange nicht die nationale Sicherheit gefährdet ist, 
reicht das eigentlich aus. Otto Normalhacker kommt da jedenfalls nicht 
mehr ran.

Im Highbyte muss dann nur der BOD-Level gesetzt werden. Das macht der 
FuseCalc auch richtig.

mfg.

: Bearbeitet durch User
von Karl K. (karl_k69)


Lesenswert?

Thomas Eckmann schrieb:

> Als Auslesesperre für das Flash dienen die Lock-Bits.

Die habe ich schon beim Wickel, die werden auf 0xFC gesetzt - was das 
auslesen ja verhindern sollte.

Das zusätzlich keiner mehr den Flash überschreiben kann (zumindest nicht 
ohne größeren Aufwand), ist auch nicht schlecht.

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Karl K. schrieb:
> Das zusätzlich keiner mehr den Flash überschreiben kann (zumindest nicht
> ohne größeren Aufwand), ist auch nicht schlecht.

HV-Programmierung ist nicht wirklich ein größerer Aufwand. Ok, die 
meisten ISP-Programmer können das nicht, aber es gibt ja den Dragon - 
der kann das.

Und wenn man die komplette Programmiermöglichkeit sperren könnte, bleibt 
immer noch der Austausch mit einem jungfräulichen Prozessor.

: Bearbeitet durch User
von Henrik H. (Firma: TU Chemnitz) (heha)


Lesenswert?

Ohje, tatsächlich, die Dokumentation zum ATtiny2313A hat einen 
mittelschweren Fehler bei den BOD-Bits:
* Im Fuse-High-Byte sind 3 Bits angegeben
* In der Tabelle hingegen sind 2 Bits angegeben

Da weiß man nicht wie das dritte Bit gesetzt werden soll, und wo es ist.
Zum Glück gibt es noch das Datenblatt zum ATtiny2313 (ohne A) und da ist 
alles richtig: Das High-Bit (2) muss 1 (unprogrammiert) bleiben.
Es ist davon auszugehen, dass es beim ATtiny2313A genauso ist.

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.