In app-note EE-240 it's states that the largest Atmel serial device that is supported at boot time is the 16 Mbit (4096 pages x 528 byte) AT45DB161B part. Can the 32Mbit AT45DB321C (8192 pages x 528 byte) be used instead?
The Boot ROM does not detect the AT45DB321C device. Though the bytes/ page for this device is the same as AT45DB161, the device ID in the status register of this device is different. Since the boot ROM code determines which device is connected based on this ID, it cannot identify the AT45DB321C device.
The boot ROM checks the density code of the device and if it does not match to that of AT45DB161, it assumes AT45DB041B or AT45DB081B connected.
In case you have to use this device (AT45DB321C) in your application, then you could have an init application which modifies R5.H register. (this has not been tested).
The boot ROM code sets bit 16 of R5 as follows:R5.H = 1 for AT45DB041B and AT45DB081B devicesandR5.H = 0 for AT45DB161B
Now, if a device (and the AT45DB321C does) has the same Bit Level Addressing Sequence as that of the AT45DB161B, then the init application only needs to clear bit 16 of R5. Note that the init block cannot be more than 264 bytes and it has to contain an RTS as the last instruction (please refer to EE-240 for a detailed discussion of init blocks). Also, inside the init application R5 should not be saved and restored.
see knowledgebase entry http://www.analog.com/FAQs/FAQDisplay.html?DSPKBContentID=48989DF3-679C-40F9-B1EA-ACCB070C988C
Retrieving data ...