ΣSigmaStudio Ask AI Русский Log in

Flash Programmer for ADAU1452

SigmaDSP & SigmaStudio FormerMember Jun 16, 2023 00:00 2 replies Original on forum ↗
Subscribe
FormerMember Question
Jun 16, 2023 00:00

Dear Team,

I have some questions regarding Flashing a binary into the EEPROM of ADAU1452 REV BZ Board.

1. What should the Sub Address byte be typically?

2. The Start Address starts at 0 and increments in multiples of 256 , so when i set the Start Address to say 256 what does it mean , how do i relate this 256 to the Address in Flash Memory

Start Address 256 corresponds to which sector and what address in EEPROM from the above image ?

Similarly Start Address 512 corresponds to which sector and what address in EEPROM from the above image?

Also on Link Compile Download , I see that Verify Target Address fails at the start address everytime as above . Why?

Further the Capture window shows that Master Control Port Page Address is 0x 20 always.

Where can i see which address i have flashed into , and how do I read that address for the flashed binary size to know all the data i flashed indeed exist at the correct location for the intended size.

Regards,

Rajesh

Audio Signal Processors

adau1452

Audio Products

software

ADAU1452 REV BZ

Sigma Studio v4.6

SigmaDSP Audio Processors

Show More

pastedimage1686907499657v1.png
pastedimage1686907499657v1.png
pastedimage1686907732476v4.png
pastedimage1686907732476v4.png
pastedimage1686907604712v2.png
pastedimage1686907604712v2.png
pastedimage1686907617842v3.png
pastedimage1686907617842v3.png
pastedimage1686907911293v5.png
pastedimage1686907911293v5.png
Harishgowtham Reply
Jun 16, 2023 00:00

Hello Rajesh,

Unknown said:
1. What should the Sub Address byte be typically?

It shows the bandwidth of your memory. For example, while programming our CODEC, we usually set the sub address byte as '1'. which means that by using one byte we can represent 256 addresses. The AD193x codecs have only 17 registers (address 0 to address 16). So, a single byte is enough to cover that address range.

Unknown said:
The Start Address starts at 0 and increments in multiples of 256 , so when i set the Start Address to say 256 what does it mean , how do i relate this 256 to the Address in Flash Memory

It will be written page by page. A page will have 256 bytes. Once a page is written it increments to another page.

I will explain the process in detail clearly in another reply.

Look at the timing diagram from the datasheet of 25LC1024. It has the timing diagram for all write and reads.

Unknown said:
Start Address 256 corresponds to which sector and what address in EEPROM from the above image ?

If you look at the datasheet of the particular memory, then you can understand how the memory is organized. If I have time, then I will look at the datasheet clearly and reply.

Regards,

Harish

1321.Capture.PNG
1321.Capture.PNG
Harishgowtham Reply
Jun 19, 2023 00:00

Hello again,

Regarding the sub address bytes, you are using a 1Mbit memory which is 1048576 bits. EEPROM's memory is organized as byte by byte. which means that each byte will have an individual address. A page will have 256bytes so will the addresses.

Acc to your EEPROM's datasheet, the address limit is from 00000h to 1FFFFh. 1FFFF is 131071(Total no of addresses 0 to 131071 = 131072). Each address can hold a byte of data. So, 131072*8 = 1048576 (1Mbit) and to represent total address 1FFFF, you will need 17bits (Acc to your datasheet, those 7 MSBs from the 24bit address are don't care bits here). This is why you are using 24 bits addressing here which is a sub address of 3 bytes. By using 3 bytes you can address more that 1Mbit memory as I described in my previous reply.

If you are programming the EEPROM/Flash from an external controller or a programming-based device, after every page writing, you will have to send the write command and start address. For example, after write enable instruction is sent, the first 8 bit is a write instruction (0x2) and the next 24 bit is a sub address (to start with it will be zero) and then the 8-bit data. The address will be incremented internally for next data bytes up to 256bytes (it's all in the datasheet so you can refer). It will write a page which is 256 (0 to 255) bytes then again you have to send the write instruction (0x2) and the sub address (this time it will be 256, it will be incremented by 256 every time a write instruction is sent (i.e. a page is completed), next time it will be 512 and so on). So, it is writing a page by page. You have to specify all these things when you are writing a C code but here in SS you just have to give the page size and SS will take care of everything.

Unknown said:
Start Address 256 corresponds to which sector and what address in EEPROM from the above image ?

Unless you specify a particular address in SS, the start address will be 0 and it will be in sector 0 in your EEPROM. The address 256 will also be in the sector 0.

It seems that the sector 0 will have addresses from 00000h to 07FFFh (totally 32768 addresses per sector). So obviously address 256 and 512 will be in sector 0.

Reg the error, I tried the same and got the same error. Again, I tried few times, and the error went away after few compilations and then the file is flashed into EEPROM successfully and I read and played it by using wav player module. So, erase the memory once and try again. In the meanwhile, I will see what causes the error.

Regards,

Harish