Forums

dsp TMS320VC33 information

Started by x_tin_to November 20, 2003
Hi everyone, I need to put some program in the DSP ram (0x00809802)
but I don't have any starter kit neither evaluation board ,
I've only
a board with the DSP TMS320VC33, all the things that need like the
xtal, decoupling capacitors, pll circuit, all pull up (RSVx, I
don't
know if the EMUx must be pull up).
Also I've an logic analizer to generate the opcode of the
program. I
want to know if someone could tell me if I must take care about
something, connect some pin, or some extra hardware.
I hope that someone could help me.



Hello x_tin_to

Putting code or data at 0x809802 is OK. In fact, any internal location is
OK as long as you dont step on something else that might be important. Here
are the places to not corrupt, plus some extra history that might be of
interest to you and the other newsgroup users.

Mem Locations to avoid and why
------------------------------
0x809801 is used by the bootloader code as a stack value. Only 1 call is
made in the bootloader, so only one location is needed. BTW, the bootloader
code is held in the ROM that is enabled when MCBL/MP is held high and the
code is listed in the back of the data book.

Also if you are using the bootloader you may notice that the reset and
interrupt vectors are also conatained within that ROM. Writing to a ROM
wont achieve anything, so how can the DSP service an interrupt? This is
done by placing a vector in the ROM that points to a known to be valid
internal RAM address. In this case, these locations start at 0x809FC0 and
go up to something like 0x809FD0. The addresses above this (up to 0x809FFF)
are used for TRAP instructions, but if your code is not using a TRAP you can
use them for code or data.

Internal Pullup/Downs
---------------------
Looking to the data sheet for pin input currents you will find that the JTAG
pins have more current than the other pins. Further, you will find a note
stating that these pins have internal pullup or pulldown devices. This is
the default state for these pins for the device to NOT BE IN EMULATION MODE.
The only time these pins should be at any other state is when the EMU is
connected and doing emulation. That is, this is the proper JTAG pin state
for RUNTIME.

Side note: you will note that EMU0 and EMU1 dont have internal pullups and
that you should add these yourself. The reason for this is that the EMU
lines are used in a multiprocessor configuration to globaly signal
start/stop conditions. This is done by wire-OR'ing those pins and with N
devices connected it was deemed that the customer should add those pullups.
To avoid conflicts these should be individual pullups.

RSV0,RSV1
---------
Pull these pins logic high with *individual* pullups and dont directly
connect them to Vcc. These pins are actually IO pins that have been
hardwired (for now, but could change in the future... hence reserved) as
inputs. During power up they could conceivable pull low creating a conflict.

Direct connecting of IO's
-------------------------
Direct connecting IO's to outputs or other IO's on any device should be done
with caution. The problem with clocked logic devices (like the C3x or any
CPU for that matter) is that until the device has been synchronously reset,
you just dont know what kind of state it is in. Furthermmore, most of these
IO's can be re-configured by the CPU, either legally or illegally. After
all, who writes perfect code?

The bottom line here is that when we all went to college, not that many of
us were told that to drive a high speed signal, a fairly healthy amount of
'push' would be needed. In fact you can do a quick back of the envelope
calculation using the equation I=C*dV/dT. For example, suppose you have a
40pF load and you need a 3ns rise and fall time between 0-3.3V. How much
current is this (Its a lot)?

The safe thing to do is put a small series resistor (30-200 is typical) in
these kinds of signal lines, limiting the current and power dissipation to a
level that is at least reasonable. Interestingly, there are other benefits.
For example, the impulse current is lower decreasing on and off board noise.

Hope this helps,
Best regards,
Keith Larson

--
At 05:07 PM 11/20/03 -0000, you wrote:
Hi everyone, I need to put some program in the DSP ram (0x00809802) but I
don't have any starter kit neither evaluation board , I've only a board with
the DSP TMS320VC33, all the things that need like the xtal, decoupling
capacitors, pll circuit, all pull up (RSVx, I don't know if the EMUx must
be pull up).

Also I've an logic analizer to generate the opcode of the program. I want to
know if someone could tell me if I must take care about something, connect
some pin, or some extra hardware.

I hope that someone could help me.
+-----------+
|Keith Larson |
|Member Group Technical Staff |
|Texas Instruments Incorporated |
| |
| 281-274-3288 |
| |
| www.micro.ti.com/~klarson |
|-----------+
| TMS320C3x/C4x/VC33 Applications |
| |
| TMS320VC33 |
| The lowest cost and lowest power 500 w/Mflop |
| floating point DSP on the planet! |
+-----------+