http://www.eefocus.com/ywhfdl/blog/12-05/279349_bae43.html
说起AM1808,是去年年底画的板子,但是出了点问题,一直扔下了。
首先说说AM1808 的特性吧,感觉比较有用的就是:
1、16bitDDR2 接口支持到512M,
2、一个16bit EMIF 接口,也就是接nor和nand的接口,在TI 这里改叫EMIF 了,呵呵
3、主频456M
4、2个USB 一个主一个从,OMAPL138 是一个OTG 一个从
5、支持AC97,有IIS 类似的接口
6、支持TFT 液晶
7、支持SD,TF 卡
8、 有硬盘接口
9、有PWM 接口
10、BGA 球间距是 0.8和0.65 的,361pin 。这个封装对于6层板来说很轻松的哦!呵呵!
最重要的就是1808 和L138 是pin --pin 兼容,但是L138 多了一个DSP 内核,也就是ARM+DSP 架构的,这样用起来优势非常明显,IT 的人都懂的。但是头疼的是DSP和ARM 之间的协议。。。。。
在研发这个1808的时候,做的板子却是太小了管脚分布也比较有规律,这个又大大节约了银子。当我焊接好以后,开始调试,发现串口就是不出BOOTME ,很揪心的,后来找TI 原厂支持一下,结果那边人也没说出一个啥来,就这样放了半年,到现在突然心血来潮又来调试一下,惊奇的发现当插上JLINK 的时候,但是JLINK 不上电,那么bootme 就能打印。
这里又有一个JLINK 识别ARM 内核的一个插曲(我写总结的时候就习惯想到哪里就在哪里补充,呵呵 ,当然作为正式文章的时候,会润色的,blog 嘛,就要记录真实的东西,呵呵。)JLINK 无论是V6还是V8,默认都是不能识别的,是因为缺少一个配置文件,我当时也纠结了很久,终于在一个外国的论坛上面下载到了,稍后我吧这个配置文件发上来,这样在J-Link Commander 下面就可以识别了。
接着前面的,JLINK 不插电的时候,AM1808 就能打印bootme 这个然后测试N此,均这样,这么发现太让我振奋了,然后我测量RESET 的电平是2.6V,我又用2.6V 的MAX811,但是如果不用JLINK ,也不行,反复测试,始终需要加上这个该死了JLINK,这样的话,我又找JLINK 影响了1808的哪几个管脚,由于JLINK 是不需要供电的状态,我把ATMEL的芯片拆了,吧串联电阻也分别拆掉,慢慢分析出来,是RESET和TRST 这2个管脚,然后我把74HC244 管脚剪断只剩下VCC,GND,TRST和RESET 当然还有OE 和DR,然后OE,DR 电平不变,VCC=GND,这样测试果然就OK,纠结的我呀,那么不能在纠结了,没办法我就在底板上加了这么一个山寨的复位,但是非常有效,复位效果十分OK,然后暴力测试(不断的开关机,打到每秒N次,)复位任然十分健。从此1808活了,同理焊接了一个L138 一样OK。
1808 在UART 下载的时候比较纠结,官方有个用了镁光的DDR 就OK,我用三星的硬是不行,这个可能是由于内存不一样吧,希望哪个调试过的老兄给点意见,。我是用XDS100 V2 下载的,下载UBOOT是慢了点,但是可以用的,下载完毕UBOOT,然后网络什么的,顺利的OK。告诉大家一点的就是,官方是用SD 卡挂载文件系统的,所以大家在网络挂载后,用官方的代码,是找不到nand的,因此要修改一下,哈哈。调试液晶也遇到一个纠结的,就是奇美的3.5寸就是怎么也调试不好,老是很闪,当然保证这个液晶在其他的开发板上可用也就是保证液晶和驱动板都是OK 的。然后我换了ATO的7寸和4.3寸均在几秒钟的增量编译后就OK显示。真是让人闹心呀。
上图:
U-Boot 2009.11 (Sep 06 2011 - 20:05:36)
I2C: ready
DRAM: 128 MB
NAND: 128 MiB
闎ad block table found at page 65472, version 0x01
Bad block table found at page 65408, version 0x01
*** Warning - bad CRC or NAND, using default environment
In: serial
Out: serial
Err: serial
ARM Clock : 300000000 Hz
DDR Clock : 132000000 Hz
Error - unable to probe SPI flash.
Net: Ethernet PHY: GENERIC @ 0x00
Hit any key to stop autoboot: 0
U-Boot > pri
bootargs=mem=32M console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait ip=off
bootcmd=if mmc rescan 0; then if fatload mmc 0 0xc0600000 boot.scr; then source
0xc0600000; else fatload mmc 0 0xc0700000 uImage; bootm c0700000; fi; else sf pr
obe 0; sf read 0xc0700000 0x80000 0x220000; bootm 0xc0700000; fi
bootdelay=3
baudrate=115200
bootfile="uImage"
stdin=serial
stdout=serial
stderr=serial
ethaddr=00:00:2c:23:0b:c1
ver=U-Boot 2009.11 (Sep 06 2011 - 20:05:36)
Environment size: 461/131068 bytes
U-Boot > set ipaddr 192.168.5.123
U-Boot > pri
bootargs=mem=32M console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait ip=off
bootcmd=if mmc rescan 0; then if fatload mmc 0 0xc0600000 boot.scr; then source
0xc0600000; else fatload mmc 0 0xc0700000 uImage; bootm c0700000; fi; else sf pr
obe 0; sf read 0xc0700000 0x80000 0x220000; bootm 0xc0700000; fi
bootdelay=3
baudrate=115200
bootfile="uImage"
stdin=serial
stdout=serial
stderr=serial
ethaddr=00:00:2c:23:0b:c1
ver=U-Boot 2009.11 (Sep 06 2011 - 20:05:36)
ipaddr=192.168.5.123
Environment size: 482/131068 bytes
U-Boot > ping 192.168.5.100
Using device
host 192.168.5.100 is alive
U-Boot >
到了这里1808和L138 基本OK,没啥大问题了。呵呵,也预祝大家研发顺利。