| ampage Tube Amps / Music Electronics |
For current discussions, please visit Music Electronics Forum. |
| steve conner |
I swear this DSP chip is laughing at me I'm trying to program an Analog Devices DSP chip. But right now I just feel like getting the little b****dd and pulling its 133 little legs off one by one then mashing it with a hammer. I asked my boss if I could use tubes instead of a DSP but he said no. |
|---|---|
| Skreddy |
What language and interface are you using? What's the application? |
|---|---|
| steve conner |
A mixture of assembly and C. There are two applications, one is an optical gas analyser, the other is a communications test set. I'm beginning to get used to it, the architecture is just so different to the PIC microcontrollers I learnt on. I work for these guys http://www.optosci.com/ |
|---|---|
| anonymous | What AD DSP device are you using? |
|---|---|
| steve conner |
The ADSP-2181, oh and I goofed, it only has 128 legs %-6 |
|---|---|
| Kursad | not DSP chip but machine code is... [QUOTE]The ADSP-2181, oh and I goofed, it only has 128 legs %-6 [/QUOTE] Any c compiler available for that thing? Together with a useful runtime lib? I've one of those evaluation boards but I've never had any luck with assembly coding. On the other hand DSP (at least a few simple effects and filters) wasn't that difficult with a computer because you do not have to learn 3 things at once: a new language, a new hardware (how to set up I/O ports and such) and DSP itself, besides it does not need to work realtime (and thus easier) Kursad |
|---|---|
| steve conner |
Yep I have the "G21" C compiler (based on Gnu GCC so Analog had to give it away for free) and runtime libs for stuff like long division and FFTs. I'm still trying to figure out how to work it Unfortunately the application I'm working on is pretty demanding real-time. The DSP has to drive a 16-bit D/A and A/D (one channel only) at 100kHz, synthesize 10kHz sine and 5Hz sawtooth waves with DDS, do lock-in detection on the fundamental and second harmonic of the incoming data, then low-pass filter and vector sum the results. In order to service the 100kHz converters it needs to use DMA, and the DDS and lock-in probably need to be done in assembler, running on an interrupt. I hope to use C for everything else like the results analysis and user interface threads, because I can't be bothered with things like floating point, square rooting, long division, and printing the answer on an LCD panel, in assembler. But I have a problem with the big context switching overhead. When I go into the assembler routine all the registers that the C compiler might be using need to be saved onto the stack and restored afterwards. That's pretty much _all_ the registers on the chip, and I might be context switching like 400 times a second |
|---|---|
| Page 1 of 3 | Next> | Last Page>> |