Hi,
I have got the OMAP-L137 spectrum digital EVM in combination with the audio daughterboard DA830. I have been able to get the test projects from the producer running to output some audio even though there still is the red error flag indicating a problem (reported here, http://e2e.ti.com/support/dsp/omap_applications_processors/f/42/p/92244/320549.aspx, I ignore this for now). The test code, however, is not a good starting base for the development of an efficient signal processing program running only on the DSP side since it employs polling.Therefore I intend to modify the test code to use an interrupt at first and then to use a DMA for sample I/O to the McAsp.
At this time, I try to understand the example code from Spectrum Digital. A little bit of a problem is the lack of documentation.
I have understood that on the DSKDA830, there are four PCM1802 AD converters and one AK4588 DA converters (maybe it would be a good idea to at least put the name of the used hardware and some PDF files on the Spectrum Digital Support pages). The ak4588 is connected to the OMAP-L137 via some configurable pins which I can see in the example code, this part is fine. I also understood that the SPI interface is used to configure the AK4588 unit using the function spi_cycle(..) which is used by the function ak4588_rset(Uint16 id, Uint16 regnum, Uint16 regval).
Here are my questions:
1) Where is the part that initializes the PCM1802 ADCs? I can not find any hint or code to do so.
2) How does the ak4588_rset() function work? I found the documentation of the ak4588 at (http://www.datasheetcatalog.org/datasheets/1150/137069_DS.pdf) in which the configuration registers are addressed sequentially (e.g. 00H: Register "Control1", 01H: Register "Control2" etc. up to a value of 0CH). I also can identify the reset which is done by writing register 09H which seems to be mapped to the call of ak4588_rset(1,9,0x01);. This seems to be ok except for the first argument: What is this argument good for?
3) How does the ak4588_rget() function work? From the Spectrum Digital test code, it seems that the fifth bit is set to "1" to distinguish between get ("1") and set ("0") operation. Hence, the register address 10H would correspond to a get operation for the register with address 00H and so on. In the ak4588 documentation, however, I read that using the addresses from 0DH to 1FH, data is not written.
2) and 3) somehow seem to be a little bit inconsistent for me, maybe someone has an idea and could comment on this. Maybe, I only read the wrong documentation for the ak4588?
By the way, this red error flag light reported earlier might be a hardware problem caused by misplayed electrical wire: Once I configured the test code in a wrong way such that audio did not play. I am pretty sure an error must have been caused by the wrong usage but - unexpectedly - the red light had gone. It came back up when configuring and running the board in the right way lateron, pretty strange behavior.
Thank you for any assistance, best regards,
HT