tests
所属分类:GIS/地图编程
开发工具:C++
文件大小:1060KB
下载次数:242
上传日期:2009-11-04 17:54:32
上 传 者:
mountain
说明: DM365的DEMO代码,里面有不少的例子,好东西。
(DM365 SOURCE CODE, there are many example VERY GOOD)
文件列表:
tests\adc\adc.c (4402, 2009-03-19)
tests\adc\adc.h (1892, 2008-11-26)
tests\adc\adc.pjt (869, 2009-03-19)
tests\adc\adc_test.c (1445, 2009-03-19)
tests\adc\build.bat (348, 2008-10-08)
tests\adc\cleanup.bat (97, 2008-10-08)
tests\adc\Debug\adc.map (13916, 2009-03-19)
tests\adc\Debug\adc.out (137004, 2009-03-19)
tests\adc\linker.cmd (707, 2009-03-19)
tests\adc\main.c (1797, 2008-10-08)
tests\aic3101\aic3101.c (1042, 2008-11-07)
tests\aic3101\aic3101.h (653, 2008-11-07)
tests\aic3101\aic3101.pjt (1027, 2008-11-07)
tests\aic3101\aic3101_loop_linein.c (6112, 2008-11-10)
tests\aic3101\aic3101_loop_micin.c (6489, 2008-11-10)
tests\aic3101\aic3101_test.c (1642, 2008-11-07)
tests\aic3101\aic3101_tone_headphone.c (6396, 2008-11-10)
tests\aic3101\aic3101_tone_lineout.c (6050, 2008-11-10)
tests\aic3101\build.bat (352, 2008-11-07)
tests\aic3101\cleanup.bat (172, 2008-11-07)
tests\aic3101\Debug\aic3101.map (14573, 2009-03-19)
tests\aic3101\Debug\aic3101.out (155863, 2009-03-19)
tests\aic3101\evmdm355_mcasp.h (21384, 2008-10-28)
tests\aic3101\evmdm365_mcasp.h (21384, 2008-11-07)
tests\aic3101\linker.cmd (707, 2008-10-08)
tests\aic3101\main.c (1841, 2008-11-07)
tests\buildall.bat (1054, 2009-03-18)
tests\buildall_log.bat (38, 2008-10-08)
tests\buildall_log.txt (53881, 2009-03-18)
tests\cpld_examples\build.bat (355, 2008-11-14)
tests\cpld_examples\cleanup.bat (97, 2008-11-14)
tests\cpld_examples\cpld_examples.c (1777, 2008-12-11)
tests\cpld_examples\cpld_examples.pjt (887, 2008-12-11)
tests\cpld_examples\Debug\cpld_examples.out (101226, 2008-12-11)
tests\cpld_examples\Debug\cpld_power.map (13700, 2008-12-11)
tests\cpld_examples\linker.cmd (707, 2008-11-14)
tests\cpld_examples\main.c (1813, 2008-11-14)
tests\ddr\build.bat (348, 2008-10-08)
tests\ddr\cleanup.bat (97, 2008-10-08)
tests\ddr\ddr.pjt (840, 2009-03-16)
... ...
Last updated: 12/02/2008
This file contains important notes for software developers porting code to
the DM365 EVM and using our production test cases. The main repository for
our code is:
http://support.spectrumdigital.com/boards/evmdm365
Username: evmdm365
Password: earlyaccess
GEL Files - The evmdm365.gel file (0.90 and later) is targeted at FIB silicon
with a 24MHz crystal. evmdm365-hd.gel is the same as evmdm365.gel but with
the PLLs configured for HD video (you need this one to run the two HD video
tests. The evmdm365-087-osc.gel file is for non-FIB parts and will
eventually be phased out.
NAND / OneNAND - SW5-1 is a selector switch that controls whether the NAND
is active or not. The OFF position selects NAND, the ON position selects
OneNAND.
Ethernet - The MII signals pass through an on-board mux (U10) that controls
whether the signals go to the Micrel KSZ8001 PHY or not. The mux selector
is driven from the CPLD and defaults to the KSZ8001 PHY so you should
no have to change it unless you modified the CPLD registers for some
other purpose. The control bit is bit 3 of CPLD register #3 (0 = KSZ8001).
Video port input path - The VPFE can be fed with data from the TVP5416 (SD
video composite or S-Video), LCD or TVP7002 (HD component video). The
input is selected through a pair of muxes (U17 and U21). To configure
the muxes, set bits 2:0 of CPLD register #3 as follows:
Video input = TVP5416, set CPLD3[2:0] to 0x5
Video input = Digital CCD, set CPLD3[2:0] to 0x2
Video input = TVP7002, set CPLD3[2:0] to 0x1
CPLD Registers - The addresses of the CPLD control registers are:
(Uint8 *)0x04000000, // Register 0
(Uint8 *)0x04000008, // Register 1
(Uint8 *)0x04000010, // Register 2 (controls the 8 user LEDs, good for test)
(Uint8 *)0x04000018, // Register 3 (mux control)
(Uint8 *)0x04000400, // Register 4
(Uint8 *)0x04000408, // Register 5
(Uint8 *)0x04000410, // Register 6
(Uint8 *)0x04000418 // Register 7
I2C - You must be aware of a couple of special issues when using the I2C on the
DM365 EVM. First, the THS7303/THS7535 parts have a habit of not coming up
in a clear reset state. They tend to draw I2C SDA low preventing normal I2C
bus operation. The way to clear this is by pinmuxing SCL as GPIO20 and
wiggling it up and down 9 times to act like a dummy I2C cycle, then pinmux
the pin back to SCL. We do this in our BSL init (lib\bsl\evmdm365.c in
EVMDM365_init()) so that it happens in the initialization phase of our test
code before anything actually happens. Linux side developers should put this
in U-Boot.
The second issue with I2C timing is that one of the I2C devices on the board
does not like clock back to back I2C cycles regardless of whether it is the
device being addressed or not. Our experimental solution is to wait 30 micro-
seconds after each I2C transaction, that seems to take care of things.
The I2C device should only be run at speeds up to 100KHz, some devices are
not fast enough to keep up after that.
The THS7353 should be initialized before the TVP7002 as it is in the component
video input path before the TVP7002. In our tests, we leave a delay of 50ms
between the THS7353 configuration via I2C before initializing the TVP7002 to
give it some time to sync to the video stream.
MAC Address - The MAC address is stored at offset 0x7F00 in the I2C EEPROM (6 bytes).
Software equivalence - The input and output video paths come from a DaVinci HD EVM and
should be set up the same way. The input path consists of either a TVP5416 (SD) or
TVP7002 through a THS7353 (HD). The output path goes through a THS7303 to the
video DACs.
For NTSC component video in, the ***S ISIF silicon module handles the Y/C channels
differently than DM355 silicon. Set ISIF_CCDCFG to 0x0810 (instead of 0x800) to
swap the channels and get equivalent behavior.
The EMAC module's interrupt wrapper registers are a little different than on
previous devices. Look at the end of the emac_init() function in our test cases
for settings to enable EMAC interrupts:
/* 17. Enable the device interrupt in EWCTL. */
EMAC_CMEMCONTROL = 0x00000002; // Emulation free
EMAC_CMRXINTEN = 0x000000ff; // Enable receive interrupts on channel 0
EMAC_CMTXINTEN = 0x000000ff; // Enable transmit interrupts on channel 0
EMAC_CMRXTHRESHINTEN = 0x000000ff; // Enable receive threshold interrupt enable
EMAC_CMMISCINTEN = 0x0000000f; // Enable misc interrupts
The DACSEL register description in SPRUFG9 does not match what I saw when I was
playing with the registers. Only the 12 lower bits of the register could be set
(3 DACs, not 4 as in the description). When XDMODE in the SYSTEM module
VDAC_CONFIG register is set to 0, bits 11-8 of DACSEL control what’s coming out
on the TVOUT analog channel. When XDMODE is set to 1, bits 11-0 of DACSEL correspond
to the COMPY/COMPPB/COMPPR component outputs (the 3 DACs). So bits 11-8 of DACSEL
appear to be dual function based on the setting of XDMODE.
Resource Map
EMIF Async EMIF, Keypad secondary. Verify keypad muxing override in test case
McBSP AIC3101
SPI0 SPIROM (AT25***0), Max clock 20MHz, 8Kbytes
SPI1 Exp
SPI2 Exp
SPI3 Exp
SPI4 Exp
UART0 RS-232 Console
UART1 ENET
ENET ENET - MII Mode to KS8001L PHY
MDIO ENET / Video Port G0/G1
ADC ADC
Voice Voice Codec
USB Check power from USB_DRVVBUS, verify pin muxing
SD0 SD Card 0
SD1 SD Card 1
VDAC Component Out
VIDIN TVP5416 (SD) or TVP7002 (HD)
Async EMIF Devices
NAND MT29F16G08FAAWC:A on CE0n/CE1n
OneNAND KFG1G16U2B-DIB6000 on ONENAND_CE
I2C Device
0x18 AIC3101
0x25 MSP430
0x2C THS7303
0x2E THS7353
0x50 CAT24C256
0x5D TVP5146
0x5C TVP7002
近期下载者:
相关文件:
收藏者: