This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

LM48901 Coefficient Memory loading over I2C

Other Parts Discussed in Thread: USB2ANY

We are designing an audio product using Stellaris, Bluetooth, and the LM48901.

While using the eval boards, USB2ANY, and the control GUI are instructive on how the LM48901 works, our final design will not have the connection to the GUI over USB2ANY; LM48901 control and register writes will be over I2C from the Stellaris.  The plan is to store the spatial coefficients as an array in the Stellaris flash, and load them into the LM48901 with I2C.  However, I have no idea of the format of the Tap and Prefilter Tap data, or how it is stored in the .dat files provided by the online tool.  The data sheet's 6 rows in a table are not sufficient for describing the coefficient memory.

What I need at this point is  information that will allow me to:

1. take a coefficient file and create an array in C-code format for loading into the Stellaris as part of our control application

2. use the I2C to load the array of data into the LM48901's coefficient memory using the I2C connection.

Can anyone point me to said information via links, attached pdf's, etc.?

Thanks

  • Ron,

    It's totally brute force, but you could use an I2C sniffer to read the values being sent by the GUI.

    But, I'm sure we can help you better than that. Let me see what we can round up here.

    -d2

  • Ron,

    I've attached a program that converts the .dat file that is generated by the spatial web tool into a .C format.  Its runs in DOS, open a DOS window, navigate to the directory where you place the .exe file, and enter: Dat2Tab name_of_coefficent_file.dat.  The program will output a .C file into the same directory. 

    The spatial coefficeint memory is located in addresses 0x000 to 0x4FF.  There are a couple of tables on pages 21 and 22 of the datasheet that show the high level organization of the memory.  Dat2Tab output file gives you the contents of each register in hex, in order, starting with register 0x000 and ending with 0x4FF.  It doesn't show the register address, so you will need to be careful to preserve the order of the register data.

    Regards,

    royce

    6505.Dat2Tab.zip

  • Thank you very much, Royce.  The tool is perfectly suited to my needs, and I'm already using it.

    Nice touch, the comment section above the array in the generated output.

    Ron Sturtevant