I'm evaluating at the moment the ADSP-21469 for audio application. Are there any possibilities to make changes at run time of the dsp, e.g. changing coefficients for IIR an FIR filters?
The short answer is yes. You will need to configure the hardware filters in DEBUG mode, which would allow you to access and write the local memory of the accelerators.
However, doing this will also require an intimate understanding of the filter operation and exactly what you'd like to do. Note that the local memory of the accelerators is not "memory mapped" in the traditional sense, so there is (a) one specific register that is provided and accessible only in DEBUG mode which allows a user to provide an address offset within the filter's local memory, and (b) two specific registers which are also only accessible in DEBUG mode to write to and read from the memory location pointed to by (a).
A more detailed description can be found in the ADSP-2146x Hardware reference manual (rev 0.2) available on our website.
Hope this helps.
PS> Sorry I forgot to clarify in my reply that I assumed you were referring to the hardware FIR and IIR filter units available on the ADSP-2146x family. Please let me know if this is not the case.
Message was edited by: RChary
thank you for your answer Ramdas. It was very helpful, but, as you have already mentioned, I'm not looking at the hardware accelerators only. By the evaluation process I want to learn if perhaps a smaller version from 2136x series is able to fulfill the requirements and these don't have any accelerators.
So it is also interesting for me to know if it possible to make changes at run time in case of using the processing elements for the computation of the filters.
Thanks for your clarification. If you're implementing the filter entirely in software, there is even more flexibility for you to change parameters and coefficients. The data and coefficients are stored in memory and fetched into registers in the processing elements of the core where the filter calculations are performed and finally the results are written back to memory. You could change the values anytime either in memory, or in the middle of the filter implementation - in the registers themselves. As to "when" you change these values really depends on the system....
Hope this makes sense and answers your query.
sorry, but I'm new at DSP programming. How can I change the memory at run time? Is there something like host interface? I have searched in the manuals, but I couldn't find anything like this.
Thank you for your effort.
unfortunately nobody has answered my last question. So I want to modify it a little bit.
Which interface of the ADSP-21469 I should use to transfer new coefficients to the memory while my program is running?The coefficients should come from a PC at the moment, perhaps later they can be computed by the DSP, but for this case I have to send the parameters for the computing to the DSP.
So there no big mounds of date which have to be transferred to the DSP.
If I want to use hardware accelerators, the new coefficients have to be stored in local memory first. Is that right?
I hope somebody is able to answer my questions.
You could use RS-232 interface of the PC that can connect with the on-chip UART of the DSP with an intermediate volate level translator to transfer the new set of coefiicients or any other information to the DSP. The ADSP-21469 EZ-kit is already populated IC ADM3202 to establish an interface between the UART of the DSP and the RS-232 terminal of the PC.
One of the example codes ("21469_SSL_Parallel_FLASH" at path "EE108v03\SSL with GUI\21469") available with the application note EE-345 uses this interface to receive the .ldr file from the PC to dynamically upgrade the firmware. You could use this code as a reference.
The application note and the corresponding example codes are available at link below:
Regarding your question: "If I want to use hardware accelerators, the new coefficients have to be stored in local memory first. Is that right?"
>> Yes, that's correct.
Retrieving data ...