Attiny85-Programmierung für die Produktion

Ich habe eine Prototyp-Leiterplatte mit einem Attiny85 an Bord erstellt. Diese Attiny wird vom Lieferanten programmiert, bevor sie an den Leiterplattenhersteller gesendet wird. Ich habe meinen Prototyp am Freitag erhalten und es scheint, dass der Attiny auf der Platine eine viel langsamere Taktrate hat als meiner auf dem Steckbrett.

Ist die gewünschte IC-Taktspezifikation (z. B. 8 MHz intern) nicht in den HEX-Dateien enthalten, die man an den IC-Lieferanten sendet? Muss es gesondert angegeben werden?

Sie müssen die "Sicherungen" angeben. Es gibt eine Sicherung für die Default-Taktauswahl und auch eine Sicherung für die Teilung der Uhr durch 8. Diese können Sie im Programmierdialog in der IDE unter „Fuses“ einsehen.
Die Sicherungen müssen also unabhängig von den HEX-Dateien dem IC-Lieferanten/Programmierer angegeben werden?
Ich hätte erwartet, dass das Unternehmen Sie zumindest gefragt hätte, ob Sie bestimmte Sicherungen wünschen, wenn Sie es ihnen nicht gesagt hätten. Ich würde ihnen immer explizit sagen, welche Sicherungen sie verwenden sollen. Schauen Sie, wo im Dialog "EXTENDED / HIGH / LOW" steht. Sobald Sie die Sicherungen ausgewählt haben, mit denen Sie zufrieden sind, geben Sie diese 3 Hex-Werte an die Person weiter, die Ihre Chip-Programmierung durchführt.
Ich glaube, *.hex-Dateien haben nur Code, das vollständige Projekt ist in *.elf, einschließlich Code, Sicherungen, E2PROM ...

Antworten (1)

Die HEX-Dateien enthalten nur den Inhalt des Flash-Speichers, nicht die Fuses.

Zusätzlich zur HEX-Datei müssen Sie auch die Werte für die Fuse-Bytes liefern. Hier ist, was Digikey benötigt, wenn Sie vorprogrammierte Teile anfordern...

The following information is required for us to program:

1.  A copy of the program on master dip chip and disk or .HEX file via e-mail.
2.  A letter / attachment stating the following information:
a)  Oscillator used
b)  Watchdog timer on or off
c)  Brown out fuse – enable or disable
d)  Power up timer – enable or disable
e)  Checksum
f)  Code protect – on or off

If sending via e-mail, please include a statement of not infringing anyone’s copyrights.

Ich weiß, das scheint rückständig und brutal, aber so geht es. Die meisten anderen Anbieter würden eine E-Mail bevorzugen, in der ihnen nur die Hex-Werte für die 3 Sicherungsbytes mitgeteilt werden. So könnte Ihre E-Mail aussehen...

Please program and verify the attached HEX file into the ATTINY85 parts. 
Additionally, please program and verify the fuse bytes with the following values...

LOW:      0x62
HIGH:     0xDF
EXTENDED: 0xFF

Sie können diese Bytes von einem der vielen Taschenrechner im Internet erhalten , indem Sie im Dialogfeld "Geräteprogrammierung" in Atmel Studio suchen oder sie mit etwas wie AVRDUDE von einem funktionierenden Gerät lesen.

Interessanterweise kann das ELF-Dateiformat sowohl den Flash als auch die Fuses in einer einzigen Datei kapseln. Sie können eine dieser Dateien in Atmel Studio erstellen in Device Programming->Production Files...

Geben Sie hier die Bildbeschreibung ein

Leider habe ich noch nie eine ELF-Datei gesehen, die von einem Produktionsprogrammierer verwendet wurde. Sogar AVRDUDE muss dazu überredet werden, die einzelnen Werte innerhalb des ELF mit einer Befehlszeile wie ...

avrdude -p t85 -c usbtiny -B 6 -U flash:w:firmware.elf:e -U efuse:w:firmware.elf:e - U hfuse:w:firmware.elf:e -U lfuse:w:firmware.elf:e