Davinci EVM FAQ
Topics
- MAC Addresses
- DSP Based Corruption of ARM Code
- My Flash does not load
- Scan Chain Setup
- GEL files
- Infrared Remote
- MSP430 GPIO Pins
- I2C Usage
MAC Addresses
Various pieces of network code need a unique MAC address to properly identify the board on the network. The production boards will have MAC addresses printed on a sticker on the back of the board as well as an electronic copy stored at offset 0x7F00 in the I2C EEPROM (the beginning of the last 256 bytes). The MAC address is not stored in the EEPROM on any of the alpha, beta or gamma boards. To manually put a MAC address in your EEPROM follow these steps:
- Download the target board content from http://support.spectrumdigital.com/davincievm. It will install the target content in c:\CCStudio_v3.2\boards\davincievm.
- Start CCS (ARM side) with the GEL files in davincievm\gel.
- Open the setmac project in davincievm\examples\setmac.
- Edit the MAC address assignments at the top of setmac.c.
- Recompile the setmac project.
- Load and run setmac.out. The MAC address will be placed in the EEPROM, read back and displayed on the screen for verification.
DSP Based Corruption of ARM Code
Many users who are trying to run operating systems on the ARM have run into intermittent problems caused by the DSP being released from reset at board powerup. Since there is no code for the DSP to run, it starts trying to execute garbage code and in many cases overwrite either memory or peripheral state associated with the ARM. This often shows up as memory failures, Flash memory programming failures, Ethernet failures or cases where one board will appear to work but another one won't. However, since the behaviour is uncharacterized, it can manifest itself in jus about any situation. Config switch SW3-4 controls this behavior, SW3-4 = off holds the DSP in reset until the arm releases it while SW3-4 = on releases the DSP after system reset. SW3-4 = off is the preferred state and will be the default on all future board releases.
My Flash does not load
See the FAQ entry for "DSP Based Corruption of ARM Code".
Scan Chain Setup
In order to support the DM420, the EMU0 and EMU1 pins should be set both to HIGH. These 2 signals are found on switch S1 of the DaVinci EVM. Depending on IcePick support, setup the JTAG scan chain as follows:
For IcePick in BYPASS mode:
Emulator
> BYPASS_6(IcePick)
> ARM9
> BYPASS_4(ETB)
For IcePick support:
Emulator
> IcePick
> subnode 1: Port 0x10
> ARM926
> subnode 2: Port 0x12
> C6400Plus
Infrared Remote
The MSP 430 based infrared remote interface uses a Philips RC5 coded format. The remote being used for validation is a Philips PM725S universal remote with the TV function programmed using code 020. The remote expected to ship with the EVM is a Philips PM4S which uses the same command codes.
Code Settings (front) |
Code Settings (back) |
Code Settings (front + back in PDF)
MSP430 GPIO Pins
The MSP430 has two output pins (P3.0 and P3.3) that control board functions. P3.0 is the SmartMedia chip enable where 0 = active, 1 = inactive (default). P3.3 is the CompactFlash power enable where 0 = inactive (default), 1 = active. These pins can be controlled through the MSP430's I2C command set.
I2C Usage
The MSP430 (used for the infrared remote control interface, RTC and media card insertion) acts as an I2C slave using a software I2C implementation. This implementation is limited to an I2C clock of roughly 20KHz. A faster I2C clock will generally cause the MSP430 code to lock up the I2C bus and prevent further communication with other devices on the bus. Therefore, I2C communication on the DaVinci EVM should be limited to 20KHz. Also, a delay of 20 microseconds should be inserted between any two I2C transactions to any device on the I2C bus. Failure to do so may result in the MSP430 locking up the I2C bus.
|