611
京東網上商城
Davinci DM6446開發攻略-UBOOT-2009.03移植2 nand flash的燒寫
很長一段時間沒有更新博客了,是因為要推出新開發方案和做好客戶服務工作,忙得不易樂乎。有關DAVINCI U-BOOT的移植,以前寫過一篇u-boot-1.3.4(2008年的),其實和這個u-boot-2009.03差別不大,隻不過這個u-boot-2009.03是從TI的網站上下載的,是DAVINCI係列最新的u-boot,也適合DM6467和DM365/368,移植的方法承接《Davinci DM6446開發攻略——u-boot-1.3.4移植(1)》,而本篇著重介紹nand flash的燒寫。
Davinci產品需要燒寫UBL、U-BOOT、KERNEL、ROOTFS這四個最基本的文件。UBL的燒寫有兩種方式,一個就是TI開發包自帶的NandWriter.out文件,這必須使用560-plus仿真器(太貴了!)。另一個就是自己開發u-boot燒寫,或開發內核支持mtd block燒寫,我們一般移植u-boot進行燒寫。這個燒寫涉及到ECC校驗,移植比較複雜,為了保護自己一點點知識產權的東西,這裏就保留不說,不過購買本工作室的開發板或核心板,都會提供燒寫UBL的工具,核心板我們直接就幫客戶燒寫好(沒辦法,辦公房租飛漲,物價飛漲,不,是翻翻倍漲,芯片炒作,TI兩款浮點工控芯片MCU F28XX的芯片從年初的120多元飛漲到600~800元!,而且沒貨!所以說日子越來越不好過)。而u-boot和kernel的燒寫,則比較簡單,jffs2燒寫稍微複雜一點。
關於u-boot-2009.03 nand flash的燒寫,命令分nand write 和 nand write.jffs2,這兩個命令是有差別的,nand write主要用來燒寫u-boot和kernel(uImage),和任何文件係統無關,一些剛剛接觸嵌入式LINUX的朋友需要了解這一點,而nand write.jffs2專門用來燒寫jffs2文件係統的,當然,你可以添加nand write.yaffs2,nand write.squahfs等等,這個在cmd_nand.c裏的do_nand函數加自己的代碼,當然幾個基本的nand文件u-boot-2009.03/drivers/mtd/nand是需要看看和了解的,但不需要大改。DM6446 U-BOOT很多移植工作就是對davinci_dvevm.h的配置和定義,nand flash的燒寫也是在這裏定義,我們以這個文件進行講解和分析,讓大家更了解U-BOOT,不單單是nand flash的燒寫。
#include/davinci_dvevm.h
/*=======*/
/* Board */
/*=======*/
#define DV_EVM
//#define CONFIG_SYS_NAND_SMALLPAGE (這個是支持512字節NAND FLASH定義)
#define CONFIG_SYS_NAND_LARGEPAGE (本工作室的開發板核心板是2K—PAGE,目前比較新的NAND,因為有些客戶需要移植yaffs2,512字節的隻能支持yaffs,超級慢)
#undef CONFIG_SYS_USE_NOR(現在基本上取消NOR FLASH的支持,價格貴,容量小)
#define CONFIG_SYS_USE_NAND(定義板子使用NAND FLASH)
/*===================*/
/* SoC Configuration */
/*===================*/
#define CONFIG_ARM926EJS /* arm926ejs CPU core */
#define CONFIG_SYS_CLK_FREQ 297000000 /* Arm Clock frequency */
#define CONFIG_SYS_TIMERBASE 0x01c21400 /* use timer 0 */
#define CONFIG_SYS_HZ_CLOCK 27000000 /* Timer Input clock freq */
#define CONFIG_SYS_HZ 1000
#define CONFIG_SOC_DM644X
//#define CONFIG_DISPLAY_CPUINFO (顯示CPU的頻率信息等,屏蔽不用,以後的版本都有這個)
/*====================================================*/
/* EEPROM definitions for Atmel 24C256BN SEEPROM chip */
/* on Sonata/DV_EVM board. No EEPROM on schmoogie. */
/*====================================================*/
(這個是TI 自己的EVM,帶有1個EEPROM,保存MAC地址,我們板子不用,所以屏蔽)
//#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2
//#define CONFIG_SYS_I2C_EEPROM_ADDR 0x50
//#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 6
//#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 20
/*=============*/
/* Memory Info */
/*=============*/
(DDR內存的一些定義)
#define CONFIG_SYS_MALLOC_LEN (0x10000 + 128*1024) /* malloc() len */
#define CONFIG_SYS_GBL_DATA_SIZE 128 /* reserved for initial data */
#define CONFIG_SYS_MEMTEST_START 0x80000000 /* memtest start address */
#define CONFIG_SYS_MEMTEST_END 0x81000000 /* 16MB RAM test */
#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */
#define CONFIG_STACKSIZE (256*1024) /* regular stack */
#define PHYS_SDRAM_1 0x80000000 /* DDR Start */
#define PHYS_SDRAM_1_SIZE 0x10000000 /* DDR size 256MB */
#define DDR_8BANKS /* 8-bank DDR2 (256MB) */
(我們的核心板使用DDR256M-byte,所以是8 bank)
/*====================*/
/* Serial Driver info */
/*====================*/
(串口配置信息,UART0=ttyS0,一般用來打印LINUX調試信息)
#define CONFIG_SYS_NS16550
#define CONFIG_SYS_NS16550_SERIAL
#define CONFIG_SYS_NS16550_REG_SIZE -4 /* NS16550 register size, byteorder */
#define CONFIG_SYS_NS16550_COM1 0x01c20000 /* Base address of UART0 */
#define CONFIG_SYS_NS16550_CLK 27000000 /* Input clock to NS16550 */
#define CONFIG_CONS_INDEX 1 /* use UART0 for console */
#define CONFIG_BAUDRATE 115200 /* Default baud rate */
#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }
/*===================*/
/* I2C Configuration */
/*===================*/
(如果你不需要在U-BOOT對I2C芯片讀寫操作,可以屏蔽這個)
//#define CONFIG_HARD_I2C
//#define CONFIG_DRIVER_DAVINCI_I2C
//#define CONFIG_SYS_I2C_SPEED 80000 /* 100Kbps won't work, silicon bug */
//#define CONFIG_SYS_I2C_SLAVE 10 /* Bogus, master-only in U-Boot */
/*==================================*/
/* Network & Ethernet Configuration */
/*==================================*/
#define CONFIG_DRIVER_TI_EMAC
#define CONFIG_MII
#define CONFIG_BOOTP_DEFAULT
#define CONFIG_BOOTP_DNS
#define CONFIG_BOOTP_DNS2
#define CONFIG_BOOTP_SEND_HOSTNAME
#define CONFIG_NET_RETRY_COUNT 10
#define CONFIG_IPADDR 192.168.1.188 (板子U-BOOT的IP)
#define CONFIG_SERVERIP 192.168.1.252 (HOST 你的linux開發主機IP,一般是NFS的IP)
/*=====================*/
/* Flash & Environment */
/*=====================*/
#ifdef CONFIG_SYS_USE_NAND
#define CONFIG_NAND_DAVINCI
#undef CONFIG_ENV_IS_IN_FLASH
#define CONFIG_SYS_NO_FLASH
#define CONFIG_ENV_IS_IN_NAND /* U-Boot env in NAND Flash */
#ifdef CONFIG_SYS_NAND_SMALLPAGE
#define CONFIG_ENV_SECT_SIZE 512 /* Env sector Size */
#define CONFIG_ENV_SIZE SZ_16K
#else
#define CONFIG_ENV_SECT_SIZE 2048 /* Env sector Size */
#define CONFIG_ENV_SIZE SZ_128K
#endif
#define CONFIG_SKIP_LOWLEVEL_INIT /* U-Boot is loaded by a bootloader */
#define CONFIG_SKIP_RELOCATE_UBOOT /* to a proper address, init done */
#define CONFIG_SYS_NAND_BASE 0x02000000(這個是EMIF CS2的起始地址,類似片選的說法)
#define CONFIG_SYS_NAND_HW_ECC (TI默認 硬件 ECC)
#define CONFIG_SYS_MAX_NAND_DEVICE 1 /* Max number of NAND devices */
(上麵的定義表示板子隻有1片NAND FLASH)
#define CONFIG_MASK_CLE 0x10
#define CONFIG_MASK_ALE 0x08
#define CONFIG_ENV_OFFSET 0xE0000 /* Block 7--not used by bootcode */
(上麵的定義就是存放u-boot參數的地址,源碼是0x0,但我們一般把參數放到U-BOOT存儲地址前後)
#define DEF_BOOTM ""
#elif defined(CONFIG_SYS_USE_NOR) (這個是支持NOR FLASH的定義,不用理會)
#ifdef CONFIG_NOR_UART_BOOT
#define CONFIG_SKIP_LOWLEVEL_INIT /* U-Boot is loaded by a bootloader */
#define CONFIG_SKIP_RELOCATE_UBOOT /* to a proper address, init done */
#else
#undef CONFIG_SKIP_LOWLEVEL_INIT
#undef CONFIG_SKIP_RELOCATE_UBOOT
#endif
#define CONFIG_ENV_IS_IN_FLASH
#undef CONFIG_SYS_NO_FLASH
#define CONFIG_FLASH_CFI_DRIVER
#define CONFIG_SYS_FLASH_CFI
#define CONFIG_SYS_MAX_FLASH_BANKS 1 /* max number of flash banks */
#define CONFIG_SYS_FLASH_SECT_SZ 0x20000 /* 128KB sect size Intel Flash */
#define CONFIG_ENV_OFFSET (CONFIG_SYS_FLASH_SECT_SZ*3)
#define PHYS_FLASH_1 0x02000000 /* CS2 Base address */
#define CONFIG_SYS_FLASH_BASE PHYS_FLASH_1 /* Flash Base for U-Boot */
#define PHYS_FLASH_SIZE 0x1000000 /* Flash size 16MB */
#define CONFIG_SYS_MAX_FLASH_SECT 512
#define CONFIG_ENV_SECT_SIZE CONFIG_SYS_FLASH_SECT_SZ /* Env sector Size */
#define CONFIG_SYS_FLASH_PROTECTION
#endif
/*==============================*/
/* U-Boot general configuration */
/*==============================*/
#undef CONFIG_USE_IRQ /* No IRQ/FIQ in U-Boot */
#define CONFIG_MISC_INIT_R
#define CONFIG_BOOTDELAY 2 (這個DELAY一般定義1~2,3秒太長,為了縮短BOOT的時間,有些產品直接不定義,或0)
#define CONFIG_BOOTFILE "uImage" /* Boot file name */
(這uImage其實是linux內核的鏡像文件,也就是uImage=zImage + 被U-BOOT識別的header,或者是mkimage處理過的Image文件)
#define CONFIG_SYS_PROMPT "U-Boot > " /* Monitor Command Prompt */
#define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buffer Size */
#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) /* Print buffer sz */
#define CONFIG_SYS_MAXARGS 16 /* max number of command args */
#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot Argument Buffer Size */
#define CONFIG_SYS_LOAD_ADDR 0x82000000 /* 0x80700000 default Linux kernel load address */
(這個是TFTP或RS232下載各個鏡像文件緩存的地址,默認是0x80700000,但是由於自己製作的ROOTFS文件很大,有些往外超過32M,而U-BOOT本身運行的起始地址是“TEXT_BASE = 0x81080000”,所以我們把下載文件緩存的地址改為0x82000000)
#define CONFIG_VERSION_VARIABLE
#define CONFIG_AUTO_COMPLETE /* Won't work with hush so far, may be later */
#define CONFIG_SYS_HUSH_PARSER
#define CONFIG_SYS_PROMPT_HUSH_PS2 "> "
#define CONFIG_CMDLINE_EDITING
#define CONFIG_SYS_LONGHELP
#define CONFIG_CRC32_VERIFY
#define CONFIG_MX_CYCLIC
#define CONFIG_MUSB_HCD (DAVINCI平台在U-BOOT支持USB HUB)
#define CONFIG_USB_DAVINCI
/*===================*/
/* Linux Information */
/*===================*/
#define LINUX_BOOT_PARAM_ADDR 0x80000100
#define CONFIG_CMDLINE_TAG
#define CONFIG_SETUP_MEMORY_TAGS
#define CONFIG_BOOTARGS "mem=118M console=ttyS0,115200n8 ip=192.168.1.188 noinitrd root=/dev/nfs rw nfsroot=192.168.1.252:/home/davinci/nfs/tirootfs,nolock"
//#define CONFIG_BOOTARGS "mem=118M console=ttyS0,115200n8 root=/dev/mtdblock2 rw rootfstype=jffs2 noinitrd ip=off"
(上麵的定義就是bootargs的參數了,一個是NFS,另一個是產品級的參數)
#define CONFIG_ETHADDR 00:03:55:88:00:00(UBOOT一般不在公網上運行,所以可以隨便定義一個MAC地址)
#define CONFIG_BOOTCOMMAND "run nand_boot"(這是NAND BOOT的命令定義,見後半部分介紹)
/*=================*/
/* U-Boot commands */
/*=================*/
(隨著時間的推移,U-BOOT越來越完善,功能越來越強大,同時生產的BIN文件也越大,有些公司產品成本控製很嚴格,往往使用容量小的FLASH,這時就需要對任何的鏡像文件進行“瘦身”,隻有保證U-BOOT基本功能,其他功能統統屏蔽掉,這樣編譯出來的BIN就小多了)
#include <config_cmd_default.h>
#define CONFIG_CMD_ASKENV
#undef CONFIG_CMD_BOOTD
#undef CONFIG_CMD_DHCP
#undef CONFIG_CMD_DIAG
#undef CONFIG_CMD_I2C
#define CONFIG_CMD_MII
#define CONFIG_CMD_PING
#define CONFIG_CMD_SAVES
#undef CONFIG_CMD_EEPROM
#undef CONFIG_CMD_BDI
#undef CONFIG_CMD_FPGA
#undef CONFIG_CMD_NFS
#undef CONFIG_CMD_SETGETDCR
#ifdef CONFIG_SYS_USE_NAND
#undef CONFIG_CMD_FLASH
#undef CONFIG_CMD_IMLS
#define CONFIG_CMD_NAND
#define CONFIG_JFFS2_NAND(為了支持JFFS2在NAND的燒寫,必須定義這個)
#elif defined(CONFIG_SYS_USE_NOR)
#define CONFIG_CMD_JFFS2
#else
#error "Either CONFIG_SYS_USE_NAND or CONFIG_SYS_USE_NOR _MUST_ be defined !!!"
#endif
/*==========================*/
/* USB MSC support (if any) */
/*==========================*/
#ifdef CONFIG_USB_DAVINCI
#define CONFIG_CMD_USB
#ifdef CONFIG_MUSB_HCD
#define CONFIG_USB_STORAGE
#define CONFIG_CMD_STORAGE
#define CONFIG_CMD_FAT
#define CONFIG_DOS_PARTITION
#endif
#ifdef CONFIG_USB_KEYBOARD
#define CONFIG_SYS_USB_EVENT_POLL
#define CONFIG_PREBOOT "usb start"
#endif
#endif
#undef CONFIG_CMD_LOADB /* loadb */(“瘦身”)
#undef CONFIG_CMD_LOADS /* loads */
#undef CONFIG_CMD_ITEST
#undef CONFIG_CMD_XIMG
#undef CONFIG_CMD_KGDB
#undef CONFIG_CMD_SOURCE /* "source" command support */
/*=======================*/
/* KGDB support (if any) */
/*=======================*/
#ifdef CONFIG_CMD_KGDB
#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port */
#define CONFIG_KGDB_SER_INDEX 1 /* which serial port to use */
#endif
#define CONFIG_EXTRA_ENV_SETTINGS \
"clearenv=nand erase 0xe0000 0x20000;\0" \
"cleardata=nand erase 0x7000000 0x1000000\0" \
"updateuboot=tftp 0x82000000 davinci_uboot.bin;nand erase 0x100000 0x80000\0" \
"updatecore=tftp 0x82000000 davinci_kernel.bin;nand erase 0x180000 0x480000\0" \
"updaterootfs=tftp 0x82000000 davinci_rootfs.bin;nand erase 0x600000 0x6A00000\0" \
"nand_boot=nboot 0x80008000 0 0x180000;bootm 0x80008000\0" \
"tftp_boot=tftpboot 0x80008000 davinci_kernel.bin;bootm 0x80008000\0"
(
因為是2k-page的NAND,
分區情況:
根據TI 文檔說明,對於LARGE PAGE的NAND,UBL隻能存放在0x20000~0x40000區間;
U-BOOT: addr=0x00100000, size=0x00080000;
KERNEL(CORE): addr=0x00180000,size=0x00480000;
ROOTFS(mtdblock2): addr=0x00600000,size=0x06A00000;
DATA(mtdblock3): addr=0x07000000,size=0x01000000;
注意TFTP要先下載,再擦除,否則網口不行就先擦除FLASH,悲劇是一直上演。
)
#endif /* __CONFIG_H */
根據CONFIG_EXTRA_ENV_SETTINGS的定義,我們可以使用以下命令燒寫操作
U-Boot > run updateuboot(U-BOOT支持run命令)
TFTP from server 192.168.1.252; our IP address is 192.168.1.188
Filename 'davinci_uboot.bin'.
Load address: 0x82000000
Loading: ############
done
Bytes transferred = 167920 (28ff0 hex)
NAND erase: device 0 offset 0x100000, size 0x80000
Erasing at 0x160000 -- 100% complete.
OK
U-Boot > nand write 82000000 100000 2A000 (實際長度是0x28ff0,但我們使用0x2A000,128K-byte的倍數)
提示:U-BOOT > 燒寫命令能識別82000000 100000這些16進製。
U-BOOT編譯時生成的u-boot.bin是不能被UBL給BOOT起來的,因為u-boot.bin沒帶有文件頭header,而u-boot.img是可以被UBL給BOOT起來,這一點要注意。而我們的davinci_uboot.bin是經過U-BOOT自帶的mkimage處理的。
U-Boot > run updatecore下載davinci_rootfs.bin(uImage);
上麵的命令隻是下載和erase flash分區,並沒有燒寫,請參考nand write 82000000 180000 size的格式。
U-Boot > run updaterootfs下載davinci_rootfs.bin;怎樣產生rootfs鏡像文件見《TI Davinci DM6446開發攻略——根文件係統的裁剪》
nand write.Jffs2 82000000 600000 size
nand_boot=nboot 0x80008000 0x0 0x180000;bootm 0x80008000
表示從NAND 0x180000的地方COPY內核到DDR內存0x80008000的地址,0x0表示nand_info[0]的下標0,因為我們係統隻支持1片nand CONFIG_SYS_MAX_NAND_DEVICE
JFFS2的燒寫,移植時,需要注意ECC的問題,同時內核移植裏也有統一對應,否則內核無法加載JFFS2,這裏就保留不多說,本人已經指明了道路,燒寫命令也說明了,需要有興趣的朋友去試試,不試怎麼能提高自己呢?
下麵是我們新的開發板,價格一般是3500多,增加功能另外算,很多環境我們已經幫客戶搭建好。可以開%3的增值稅發票,不過要另外加100元,免費保修一年(非人為破壞)。核心板價格要看采購的量,一般是幾百塊RMB,幻想200~300元的朋友不用加我的QQ,因為TI單顆DM6446的價格是不允許我們有這樣的幻想,買別的公司產品而又沒有洽談生意和項目合作的朋友,也不要加本人的QQ,畢竟本人能力有限,隻能給本工作室的客戶服務,要對自己客戶負責,請大家理解。聯係方式:0755-83660725,QQ:601712635。MSN:zjb_integrated@hotmail.com。做嵌入式產品,沒有一套開發板,是很難做出屬於你自己的產品,包括算法,LINUX程序。研究生還停留在單片機時代,那是比較落伍的。
DM6446開發板介紹:
TY-DM6446-1000開發板基於TI TMS320DM6446AZWT雙核處理器,它包括一個以ARM926EJS為核的ARM和一個以DSP C64+為核的DSP,工業級內存DDR2-667或DDR2-800,容量達到256M-BYTE,工業級NAND 128M-BYTE,采用目前流行的2K-page技術,可以同時開發基於達芬奇係列DSP圖像算法應用程序和基於達芬奇係列ARM的應用程序,可運行多種音頻、視頻編解碼算法,支持高像素JPEG格式編碼,H.264、MPEG-4格式視頻D1 編碼標準,G711音頻編解碼算法,同時非常適合加入自己的算法,這一點是DM365-DM368做不到的。TVP5158可以采集4路當中任一路圖像,即4路D1切換模式,還可以支持4-CIF同時采集四路圖像,實際圖像采集清晰度比TVP5146效果好。本開發板還支持美光MT9M112係列CMOS模組,特別適合:
3G視頻方案;
安防設備方案;
多路IVS智能視頻分析方案;
雙目終端設備方案;
機器人方案;
機器視覺方案;
車載3G方案;
人臉識別方案;
車牌識別方案;
VOIP視頻電話方案;
整套方案特別適合中小公司、算法公司開發自己的產品。我們工作室的目的就是幫助客戶縮短底層開發時間,提供一個穩定的平台,讓客戶盡快開發出自己的產品。
圖-1 開發板總體硬件結果圖
1.1 底板硬件介紹:
◆板載4路模擬視頻輸入,支持PAL\NTSC製CCD攝像頭輸入;
◆板載1路CMOS影像傳感器連接,比如美光MT9M112模組(可選);
◆板載1路CVBS視頻輸出接口;
◆板載1路10/100M自適應以太網口;
◆板載USB2.0 HOST接口(可接國內3家3G模塊);
◆板載SD卡座,支持2G(SDHC 32G軟件可選);
◆板載1路RS232(默認UART2);
◆板載1路RS485(默認UART1,可選配置成GPRS+SIM卡接口);
◆板載 實時時鍾PCF8563;
◆板載 I2C加密芯片(可選);
◆板載1路光耦輸出;
◆板載1路光耦輸入;
◆板載4個獨立GPIO引腳座子;
◆板載DSP-JTAG仿真器接口、BOOTMODE選擇跳線、UART0 DEBUG;
◆板載2個可控LED;
◆板載1個按鍵;
◆板載1路音頻輸入(2路輸入可選);
◆板載1路音頻輸出(2路輸出可選);
◆供電要求:DC 12V 供電。
◆主板功耗:<5W
◆尺寸:158mm * 129mm
◆工作溫度:商業級(0~70°)
◆相對濕度:5%到95%,非凝結
1.2 核心板介紹:
圖-2 核心板正麵
圖-3 核心板背麵
序號 資源 具體資源描述 參數及作用說明
1 DM6446 TMS320DM6446AZWT 雙核:ARM926EJS-300MHz,DSP(C64+)-600MHz
2 DDR2 DDR2-667(可選DDR2-800) 32bit總線,256M-byte
3 NAND NAND FLASH 1.8V,128M-byte,2K-page
(支持JFFS2、SQUASHFS、YAFFS2)
4 3.3V電源 由底板提供
5 1.8V電源 由底板提供
6 1.2V電源 DSP核心電壓,由底板提供
10 圖像采集 VPFE CCD/CMOS接口,支持BT656(8~10-bit)接口,
YCrCb 16-bit接口,行信號、場信號控製
11 USB USB2.0 可設置主從設備,默認為HOST
12 網口 EMAC+MDIO(10M/100M) 芯片內集成EMAC和MDIO,
外接一個PHY網口芯片就滿足網絡傳輸
13 UART串口 UART0,UART1,UART2 同時支持3個UART接口
14 SD卡 TI提供的軟件直接支持2G的SD卡
15 SPI 標準SPI接口
16 音頻接口 ASP接口可以直接接音頻采集芯片
17 I2C接口 1.8V的I2C接口
18 JTAG接口 提供仿真器調試接口
19 BOOT MODE 可以控製主芯片從NAND FLASH BOOT,
NOR FLASH BOOT, UART BOOT等方式
20 GPIO GPIO1,GPIO7,GPIO8,GPIO9, GPIO10,
GPIO11, GPIO12, GPIO13, GPIO14,
GPIO15, GPIO16, GPIO17, GPIO18,
GPIO19, GPIO21, GPIO24, GPIO25,
GPIO26, GPIO28, GPIO37, GPIO50,
GPIO52, GPIO53
23個獨立控製的GPIO(不是複用),可以做很多
控製,GPIO腳也可以用作中斷信號輸入
21 複合視頻輸出 DAC_IOUT_A,DAC_IOUT_C A和C口可以獨立作為複合視頻輸出,直接接電視機;
或者A和C口組合成S-VIDEO輸出或Y/C輸出
22 輸出時鍾 CLK_OUT0, CLK_OUT1 CLK_OUT0可輸出13.5MHz或27MHz頻率
CLK_OUT1可輸出12MHz或24MHz頻率
23 功耗 低功耗,均為1.8V芯片
24 LOGO 可以加入客戶的LOGO
25 板子顏色 綠色,藍色,紅色均可選
26 板子尺寸 75mm x 47mm
27 定位柱 3個定位柱配合5個I/O插針座子,完全滿足
車載設備這種工作在顛簸振動的環境
28 板厚 1.6mm
29 工作溫度 -20°——70°可選(-40°——80°)
30 相對濕度 5%到95%,非凝結
TY-DM6446-SYS-V0.3A核心板采用高精度工藝,低功耗芯片合理布局,使其具有最佳的電氣性能和抗幹擾性能。核心板解決了DAVINCI係統中最為複雜的高速布線問題,絕大部分的接口信號都引出到母座PIN上,提供完整的接口說明,底板公座PCB封裝和電源設計電路,及公座座子配套,這些特點可以讓客戶隨心所欲的設計自己的底板,容易衍生係列產品,降低硬件設計風險,更快推進項目進度。客戶隻需根據自己的係統的特殊性,設計相應的底板,及配套的軟件即可。核心板目前已經批量出貨給客戶,工業級的IC適合國內絕大多數省份的環境。
軟件資源工具介紹
◆ Davinci整套LINUX開發開發環境(含VM虛擬機文件,RedHat EL5,GCC交叉編譯工具鏈和DVSDK_2_00_00_22,我們全部幫客戶設置好);
◆ 源碼包TI ubl(經過移植修改);
◆ 源碼包TI u-boot-2009.03(經過移植修改,支持jffs2);
◆ 源碼包linux-2.6.18_pro5.0.0 (經過移植修改):
* 串口uart1、uart2驅動;
* 視頻tvp5158 單路D1采集驅動(4路切換驅動,4CIF采集可選);
* 複合視頻輸出驅動;
* 文件係統jffs2、squasfs3.4;
* rtc8563驅動;
* 音頻tlv320aic3x驅動,支持MIC和LINE輸入;
* gpio驅動;
* SD卡驅動(默認2G,可選SDHC 32G);
* USB2.0 HOST驅動(完全支持國內3加3G模塊);
* CMOS設計美光MT9M112模組驅動(可選);
* PHY網口驅動;
* I2C加密芯片驅動(可選);
◆ 根文件係統:TI源 target和本工作室裁減的rootfs;
◆ dvsdk_2_00_00_22 整個開發環境(全部配置好,客戶可以方便設計CODEC);
◆ Decode(h.264、mpeg4、g711)(音視頻解碼);
◆ Encode(h.264、mpeg4、g711)(音視頻編碼);
◆ Encodedecode(h.264、mpeg4)(視頻編解碼);
◆ jpegenc(jpeg編碼);
◆ jpegdec(jpeg解碼);
◆ thttp-2.25b(WEB網絡服務);
◆ V4L2視頻輸入輸出源碼;
◆ Audio loopback源碼;
◆ rtc8563 應用程序源碼;
◆ gpio應用程序源碼;
◆ UART1-rs485應用程序源碼;
◆ UART2-rs232應用程序源碼;
◆ TI的DSP開發環境CCS V3.3;
◆生產燒寫ubl和uboot工具;
(注:該工具可以直接方便燒寫ubl和運行uboot,根本不用昂貴的仿真器燒寫ubl,並可以通過串口動態下載uboot進行軟件調試!)
◆ VMware-workstation-6.5.2.exe;
◆ TI dvsdk_2_00_00_22相關軟件安裝包。
最後更新:2017-04-03 16:48:40