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.

TMS320C5515 DSP and CPU program for audio.

Other Parts Discussed in Thread: TMS320C5515, TLV320AIC3204

Hi Team,

The intent is to use the TI TMS320C5515 DSP + TI TLV320AIC3204 audio codec to sample audio and apply Acoustic Echo Cancellation using TI AEC libraries.

Initially using the TMS320C5515 eZdsp USB stick as a demonstrator to prove the audio performance. We are currently having issues with the C5515 architecture in regards to the CPU data accesses been 16bit addressed and the CPU program access been byte addresses.  This is causing some confusion with our dataflow to/from the serial port.  This coupled with that CSL routines provide by TI don't seem to work in interrupt mode.

 

Could we get some details on how this can be addressed and some help with this issue. 

 

King regards,

 

Jack

  • Jack,

    Could you please provide more details on the project you are trying to create?
    Which particular CSL routine are you referring to? Also could you please elaborate a bit more on what you are trying to do with the CPU data accesses ? It would be helpful if you could provide a high-level data flow diagram that will illustrate.

    Lali
  • Hi Lali,

    I'm John - one of the engineers working on the project.

    For the high-level description... I'm trying to use a pair of TMS320C5515 ezDSP USB sticks to stream full duplex audio from one place to another. I'm trying to integrate the AER library at each end to remove / reduce local echo. The audio is streamed to / from an AIC3204 codec over I2S0 and then out into a PC over the UART. The PC then sends the data on to the other device via UDP.

    My initial issue was that I was using the CSL UART with interrupts example, which seemed to break down when Rx/Tx were happening at the same time. I now have a register-based implementation which seems to be working OK. The other issue I had is that I thought you could do 8-bit accesses (using the 'Uint8' type!) but those were actually 16-bit so I was trampling memory all over the place. Again, fixed now.
    -> Are 8-bit accesses not allowed on this chip / not supported by the compiler?

    My current issue is with how to integrate the AER library. I have installed the package 'aer_c55l_cpuv3.3_obj_17_0_0_0_Win32.exe' and am slowly trying to port bits of code from ti/mas/aer/test/siusim/siuaer.c. What I could really do with is a skeleton app using the AER libraries and targeting the C5515 - is there such a thing anywhere? If not, could you give me some pointers as to where to get going? E.g. The linker file 'ti\mas\aer\test\lnkr\c55l\aertest_c55l.cmd' is aimed at the C5510, what do I need to do to convert this to work on the C5515? I'm developing in CCSv4, if that makes a difference.

    We are trying to get a demo together for Thursday, so any assistance you can give me to shorten my learning curve would be greatly appreciated.

    John
  • Hi John,

    Please take a look at this thread regarding 8-bit accesses.

    https://e2e.ti.com/support/dsp/c5000/f/109/p/371863/1308065

    Are you looking for a generic .cmd file like the attached?

    /cfs-file/__key/communityserver-discussions-components-files/791/7418.5460.C5515.cmd

    I don't think there's any readily available code to share at this time, but looking further into it. Will post back here with any updates.

    Lali

  • Hi Lali,

    Thanks for the link regarding 8-bit accesses. I was misled into thinking 8-bit accesses were allowed by the presence of the type Uint8. Seems like maybe that should be deprecated (or at least heavily commented) for platforms where it's meaningless.

    I have a generic command file, I was looking for a command file which would work on the C5515 and which met all the requirements of the AER integration guide. By the way, it seems in many of the example linker files that the various sections are allocated to different DARAM and SARAM blocks - is there a resource somewhere that details the rationale behind this approach? Is it bad just to lump all the DARAM into a single named location and allocate the relevant sections into that?

    It's a shame there isn't a more user-friendly example app utilising the AER. The only app available in the distributable is the test app and this is very hard to unpick as it has lots of simulation code layered on top of the actual AER usage. The ideal would be a CCS project with linker files for the various processor types, a simple example AER configuration (e.g. 1 mic in one mode only) and stubs for data input / output which could then plug into arbitrary data paths. This would be a much easier place to start from!

    Ho hum, I'll carry on.

    John