Attiny85 programación para producción

Creé un prototipo de PCB con un Attiny85 a bordo. Este Attiny es programado por el proveedor antes de enviarlo al fabricante de PCB. Recibí mi prototipo el viernes y parece que el Attiny en el PCB tiene una velocidad de reloj que es mucho más lenta que la mía en el protoboard.

¿La especificación de reloj IC deseada (por ejemplo, 8Mhz interno) no está compilada en los archivos HEX que se envían al proveedor de IC? ¿Hay que especificarlo por separado?

Debe especificar los "fusibles". Hay un fusible para la selección del reloj predeterminado y también un fusible para dividir el reloj por 8. Puede verlos en el cuadro de diálogo de programación en el IDE en "Fusibles".
Entonces, ¿los fusibles deben especificarse al proveedor / programador de IC independientemente de los archivos HEX?
Hubiera esperado que la compañía al menos le hubiera preguntado si quería algún fusible específico si no se lo hubiera dicho. Siempre les diría explícitamente qué fusibles usar. Mire donde dice "EXTENDIDO / ALTO / BAJO" en el cuadro de diálogo, una vez que haya elegido los fusibles con los que está satisfecho, entregue esos 3 valores hexadecimales a la persona que realiza la programación de su chip.
Creo que los archivos *.hex solo tienen código, el proyecto completo está en *.elf, incluido el código, los fusibles, E2PROM...

Respuestas (1)

Los archivos HEX solo contienen el contenido de la memoria flash, no los fusibles.

Además del archivo HEX, también debe proporcionar los valores para los bytes de fusible. Esto es lo que requiere Digikey al solicitar piezas preprogramadas...

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.

Sé que esto parece al revés y brutal, pero así es. La mayoría de los otros proveedores preferirían un correo electrónico que les proporcione los valores hexadecimales para los 3 bytes de fusible. Su correo electrónico podría verse como...

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

Puede obtener estos bytes de una de las muchas calculadoras en Internet , buscando en el cuadro de diálogo "programación de dispositivos" en Atmel Studio, o leyéndolos desde un dispositivo que funcione usando algo como AVRDUDE.

Curiosamente, el formato de archivo ELF puede encapsular tanto el flash como los fusibles en un solo archivo. Puede crear uno de estos archivos en Atmel Studio en Device Programming->Production Files...

ingrese la descripción de la imagen aquí

Desafortunadamente, nunca he visto un archivo ELF utilizado por un programador de producción. Incluso AVRDUDE debe ser persuadido para que use los valores individuales dentro del ELF con una línea de comando como...

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