From S1MP3 Wiki
Results of running tests on the DSP can be found on the DSP_testing page.
The DSP used on ATJ2085 might be similar to the ADSP-21xx series. The host interface port (HIP) registers are the same as the registers that are exposed to the Z80. It won't be any ADSP-218x as they don't have a HIP.
The DSP in the ATJ2085 has a 24 bit data memory data bus. The Adsp 21xx series DSPs have only a 16 bit bus.
Statements about the DSP
The ATJ chip documentation talks very vaguely about the DSP core. Here are a few things it says about it:
- 24 bit Harvard architecture
- on-chip ICE support
- has on chip DSU (Debug Support Unit) (maybe same as ICE?)
- memory word length = 24 bits
- 16KB*24 bit of program memory (IPM)
- (16KB - 256)*24 bit of data memory (IDM) (in other places it just says that there is a 16k*24bit data memory)
- Memory-Mapped Register includes DAC interface
- Process capability is controlled by software Up to 72MIPS
- There are 8 pieces of 8-bit HIP (Host Interface Port) registers accessible by the processor (HDR0-5, HSR6-7)
There is a big possibility that the DSP used on the ATJ series is a ADSP clone, such as the WSP2416, which is an ADSP-218X clone, but also supports 24-bit operation. At the moment we don't know if the WSP2416 has HIP registers or not.
WSP2416 is the only evidence of a ADSP 21xx with 24bit data memory that we can find on the internet.
More information on WSP2416:
- http://www.design-reuse.com/sip/view.php?id=11894&backurl=%2Fsip%2Fsearch.php%3Fstring%3DADSP%26option%3Dor (registration needed)
A couple quotes that might be interesting from the last link:
- "The control needed for the 24-bit mode and the enhance features and functions is achieved by standard ADSP-218X instructions and thus requiring no changes to the standard ADSP-218X compiler, assembler, or development environment."
- it has "On-Core 16Kx24 PM and 16Kx24/16 DM."
- "24-bit and 16-bit Mode Dynamic Switching in Single Cycle."
Programming the WSP2416
Note: this section is completly speculation and theories, as no hard information has been found.
This seam to indicate that it takes normal 16bit ADSP 218x code, but it has a way (possibly a memory mapped register in the top 256bytes of ram) that will switch it into 24bit mode.
Update: at the moment it looks like the DSP boots in 24 bit mode.
All math inside the ADSP 21xx series is done in 24bit and either truncated or stored in 1 and a half words. The WSP2416 might just replace the the 24bit split and write instructions with full 24bit versions.
If this is the case, all you would need to do is make your code take into account the 50% increase in storage space for 24bit values.
The other option is to just use 16bit mode, which would leave an extra 16k of ram for the MCU to use.
About the ADSP-21xx
- http://avmaster.bnx.homelinux.net/datasheets/adsp21xx.pdf ADSP-21xx Datasheet
- http://www.lr.ttu.ee/~juliad/IRZ0070/21xxUM/ ADSP=21xx Family Users Manual
- ftp://ftp.analog.com./pub/dsp/21xx/dev_tools/gnu_src/ GCC compiler (did anybody manage to compile this on an x86 ??)
- http://web.archive.org/web/*/http://www.kvaleberg.com/g21.html analog assembler/disassembler (1996) [only accessible from archive.org] [it is probably the same as the previous link]
- http://www.analog.com/en/embedded-processing-dsp/adsp-21xx/content/index.html Analog Devices website for ADSP-21xx
- http://www.analog.com/en/embedded-processing-dsp/technical-support/content/adsp21xx_technical_library/fca.html ADSP-21xx Technical Library
- http://www.analog.com/en/embedded-processing-dsp/technical-support/technical-library/content/index.html other manuals
- http://www3.telus.net/sharpshin/adi.html - open source, gpl-ed assembler for the 21xx series.
- http://www.analog.com/static/imported-files/software_manuals/3404058624616355148536243790135_aspp_21xxbook.pdf - reference for the assembler directives.
- http://zigamorph.net/adspsim/ - This is a yet-incomplete simulator! and GPL-ed!
For reference: The first n instructions of the mp3dec.dsp file I have are:
1C 8C DF 1C 02 DF 18 00 2F 00 00 00 ... 93 E0 BA 40 00 1A 93 D0 9A 40 0F FA 93 E0 CA 40 0F F5 83 D0 81 23 89 0F 93 E0 8A 83 E0 91 23 89 0F
- IDA ad218x disassembly files after extracting IDM and IPM from DSP file format: http://www.s1mp3.org/files/pastebin/dsp_test.7z
Mailing list posts that might be relevant