LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Total Phase Aardvark-Programming I2C EEPROM

Hello,

 

I'm trying to program the STMicro M24C64-FCS6TP/K I2C EEPROM (I2C address 0x51) chip using the Aardvark I2C/SPI progammer by Total Phase.

 

Total Phase provides Labview driver and VI's to help read and write to/from I2C devices. I've created the attached VI for this (I2C write to 0x51.vi). When I run the VI, it runs it without any errors. However, when I use the stand alone software provided by Total Phase to read back the data, it appears as it does in the (flash center read.JPG) screenshot. The data appears in the locations B60 to B7F, and it appears that it keeps writting to this location and wraps back around and overwrites what it wrote until the data is fully written. I don't understand how or why this happening. I don't see anywhere were I'm able to specify the start location for where it starts the write operation. It SHOULD start at location 0, and write sequentially until it has written all data.

 

Link for Aardvark programmer: https://www.totalphase.com/products/aardvark-i2cspi/ 

Labview driver Link: https://www.totalphase.com/products/aardvark-labview/ 

 

Any help is greatly appreciated!

 

Thanks,

Greg

0 Kudos
Message 1 of 4
(3,612 Views)

I went to the Total Phase site, and it does seem that they support programming with LabVIEW.  They even appear to have example code to do various things similar to what you might be trying.  However, as I don't have an account with them, I can't download the code and check it out ...  Have you reached out to them for help?  Do they have a Users Group?

 

Bob Schor

0 Kudos
Message 2 of 4
(3,505 Views)

Hi

 

I'm looking to use an Aardwark for writing EEProm with I2C as well. Were you able to find the solution ? Does it work well with LabVIEW ? 

0 Kudos
Message 3 of 4
(730 Views)

The symptom you see would indicate the Aardvark somehow doesn't advance the page addressing during programming. EEPROMs need a fairly long and slow process to commit data to the EEPROM cell. To speed this up, most are organized in pages, where you can load a number of bytes in a buffer and then you need to initiate a write command, which transfers the buffer at once into the EEPROM cells. Then the next page address needs to be set and the next row of data transferred into the buffer.

 

Your chip M24C64 has a page size of 32 bytes which matches exactly your address range of 0xB60 to 0xB7F. So my conclusion is:

 

- Either the Aardvark is not meant to automatically advance the page address when trying to write more than 32 bytes and you need to somehow do that from your LabVIEW program by setting the write start address, transferring 32 byte to write, then setting the next write start address and so on. You may also need to poll the EEPROM after each write to check that the lengthy cell write operation (typically several milliseconds) has finished.

 

- The Aardvark is supposed to do all that automatically but somehow doesn't do the exact protocol as your M24C64 requires, and things simply fail.

 

- The Aardvark can do it automatically but needs to be first configured properly to know about the EEPROM type, and other parameters of your device.

 

Rolf Kalbermatter
My Blog
0 Kudos
Message 4 of 4
(710 Views)