I currently have several designs running well on ADAU1466-300. Assuming the data and program memory usage is below the limit of ADAU1462-300, can I use the ADAU1466-300 generated code and load directly onto ADAU1462-300 without any changes? Or does the code need to be re-compiled for ADAU1462-300?
No changes at all is the answer. The only thing to keep in mind is to watch the memory usage. The Compiler Output reports are setup for the larger memory sizes so it will not report the usage totals correctly.
If you would like to change it you can drop in a second IC into the design. Then go to the schematic and select all. Then change them all to IC2. It will bark at you and say some cells were not changed, that would be the input and output cells. So then you delete and reinsert those cells from the library. Then you can go back to the configuration and delete IC1. That is one way to do it but you should nit have to do this.
I routinely run Sigma300 code on a Sigma350 and Sigma350 code on a Sigma300. It works as long as you do not try to use features or memory that are not on the older or smaller part. The cores are the same and we designed them to be backwards compatible.
One caveat is that they are not interchangeable from an external (SPI / I²C) programming point of view: For example, to access 0x3000-0x4FFF of DM0 (a memory range valid for the ADAU1452 and all ADAU146x devices), the address to use on the slave interface is, according to the datasheets:
I suspect that 0x3000-0x4FFF (with SECONDPAGE_ENABLE=0) will actually also work for the ADAU1462, but if so then this does not seem to be not documented. I've also been unable to check this empiirically since the only ADAU1462 I have available for testing just seems to be an ADAU1466 marked as "ADAU1462".