I am having my atmega328p-an chips programmed with my .hex file by my pcb manufacturer before they're installed onto my boards. Their programming engineer is asking me what to set the calibration byte and address to. Its my understanding that the calibration byte is used to determine the frequency of the internal oscillator. I have an external oscillator so I think the calibration byte is irrelevant right?
I'm setting my fuse bits to:
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05
I've attached a picture of the screenshot that the programming engineers are asking about. Would these settings allow the chip to function as a stock pro mini?
I'm just guessing that, since there is a choice of writing it to EEPROM or flash, that is it is not a standard Microchip feature, but something the PCB manufacturer wants to identify it for their own purposes.
They'll just want to know from you where they can mark it,
I don't think it has anything to do with the company marking the chip for their own purpose.
The calibration byte is in the datasheets. Its listed as a value used for setting/checking the internal RC oscillator. I've pulled all the data related to the calibration byte from the datasheet and will attached it below.
I'm pretty sure that the byte and location shouldn't matter since my fuse bits specify to use my external 16 MHz crystal. I just don't want to find out later that I should have set the byte to 00 and the address to 0001 or something.
borntoski:
I don't think it has anything to do with the company marking the chip for their own purpose.
It does. The calibration byte stored in the signature line is read only; it was burned into the processor when it was manufactured. That Cal Memory Addr and Write Calib Byte to FL/EE junk has nothing to do with the processor.
borntoski:
I'm pretty sure that the byte ... shouldn't matter since my fuse bits specify to use my external 16 MHz crystal.
Again, just a guess. It is simply a service the company offer. It is to give you a more accurate “calibration byte”. They use this process before loading your software: http://ww1.microchip.com/downloads/en/appnotes/atmel-2555-internal-rc-oscillator-calibration-for-tinyavr-and-megaavr-devices_applicationnote_avr053.pdf
If you want it, you simply tell them where to put the resulting byte. You don’t, so you tell them to leave the check box “write calib byte to FL/EE” unchecked.
Incidentally, I’m always curious about projects which get to the stage of being professionally assembled. I’d probably consider adding a header to the board and do the programming myself unless it was a huge run or space did not allow a header. What is this project?
Its a signal interfacing device for an automotive application. I've been programming the chips myself, but am having the pcb manufacture program them now so I don't have to be so involved with the assembly process and can move on to other projects. There are still through holes on the board for programming and debugging in case they don't get programmed right so I can easily reprogram them.