热度 36
2013-4-25 09:48
11537 次阅读|
18 个评论
1月15号从零开始设计原理图,到今天4月15号,刚好3个月,终于用4层板设计完成了AT91SAM9X35核心板+底板的全部工作,自己焊板花了三四天时间,调试板子花了两天时间,当看着串口打印出LIUNX的启动信息时,一切辛苦都是值得的。后面我会写一些此次设计过程中遇到的一些问题,以及解决的方法,希望对有需要的朋友有些提示,避免一些弯路。 先上几张板子的图片,马上会对板子的稳定性进行测试。。。。。 总的来说,此次做板还是蛮顺利的。 1 画板上用的DC9插座是别人做好的库,而它用的是异形焊盘,当时发出去做板的时候还特意提醒了厂家这里是否需要提供走刀文件,结果板子回来这里还是没给我开孔,导致底板有点瑕疵。 2 RJ45带隔离变压器的插座,居然接口定义每个厂家不一样。焊上去DM9161短路发烫。结果从别人的开发板上拆了一个现成的焊上去,幸好没把芯片给烧了,系统跑起来,网络一切正常! 3 此次开板,PCB板厂估计是工艺达不够,把我的做板标准一降再降,最无语的是把我做成镀金的,BGA部分比较难焊。幸好之前有过焊接S3C2440A的经验,目前系统能正常跑起来,说明CPU和DDR 这两块BGA焊接没问题。 4 100PIN 1.27的插座真的蛮麻烦的,尤其是拆卸,差点导致我重新再焊一块底板的。 第一次焊上去时,不知为什么,有一排插座的USB 串口等管脚不通,最终锁定到插座这里。 这里告诉大家一个我自己摸索的重新焊接排插的方法,当排插焊下来后,要重新焊上去,大部分焊盘已经塞满了锡,此时最好用热风*+锡*去除,一次能吸通好几个焊盘,而且不容易把焊盘弄脱落,至少我用电烙铁去时,一不小心就会废一个焊盘。 1 对MMC和 SD卡 测试OK sd 1:0:0:1: Write Protect is off sd 1:0:0:1: Assuming drive cache: write through sdb: sd 1:0:0:1: Assuming drive cache: write through sdc: detected capacity change from 0 to 522190848 sd 1:0:0:0: Assuming drive cache: write through sd 1:0:0:0: Attached SCSI removable disk sdc: sd 1:0:0:1: Assuming drive cache: write through sd 1:0:0:1: Attached SCSI removable disk 2 对3个USB端口测试OK root@at91sam9x5ek:/media# usb 1-2: USB disconnect, device number 5 usb 1-2: new high speed USB device number 6 using atmel-ehci scsi4 : usb-storage 1-2:1.0 scsi 4:0:0:0: Direct-Access Udisk Udisk 2.0 2.60 PQ: 0 ANSI: 2 scsi 4:0:0:1: Direct-Access Udisk Udisk 2.0 2.61 PQ: 0 ANSI: 2 sd 4:0:0:0: 16384 512-byte logical blocks: (8.38 MB/8.00 MiB) sd 4:0:0:0: Write Protect is off 3 对声卡进行测试时,直接用 cat test.wav /dev/audio 发现声音很小,噪音却非常大,开始怀疑是自己电路设计问题,折腾半天没找出问题。 干脆将以前移植过的MAPLAY 放上去播放MP3试试,结果一次成功,音质非常好!! root@at91sam9x5ek:/media# ./sda/madplay ./sdb/love.mp3 MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al. Title: 偏爱 Artist: 张芸京 Album: 破天荒 4 至此仅剩液晶屏和触摸屏没调试了。明天开始把LCD的板子画好发出去做,应该不会有什么大问题。 后面几天,准备每个晚上将板子一直循环播放MP3,通过以太网打样任务信息等来测试内存,以太网,USB, 等功能,先这样做些最基础的稳定性测 试。。。。。。。。。。。。。。。。。 ///////////////////2013.04.16 从测试到现在,不知为何偶尔开机都会有死机问题,问题表现在UBOOT加载到内存后,就死掉。刚开始以为是自己板子不稳定导致的,但想想连续跑几个小时都没出现过问题,如果是布线问题导致系统不稳定,那么运行过程中也会发生死机现象才对,于是判定是DDR存在问题。用热风*把芯片重新加热了一下,每次开机一切正常,不会出现卡机现象了! //////////////////////////2013.04.17 连续跑机两天两夜,未发现系统异常,继续跑机测试。。。。。 今天把液晶屏转接板发出去做板了,估计也得下周一才能焊好。 这两天打算用BUILDROOT 构建根文件系统,因为之前没用过,所以估计会遇到些麻烦。。。。。。 ////////////////////////////////2013.04.19 昨天折腾了一天,自己用buildroot 编译好了内核,根文件系统后,烧入板子,结果老是在加载内核解压时,提示内核校验错误。用以前的内核也一样的结果。 为此怀疑NANDFLASH有问题?但从TFTP传到内存中运行的内核也一样的错误。 慢慢怀疑是否是DDR2这颗芯片布线不稳定导致的?用内存测试工具没发现任何异常,加载内核到不同的内存地址,进行比较也未发现不同。而且前面几天连续测试系统也未发现内存不稳定。下班回家,准备换片NANDFLASH,因为加载内核时,老是提示位校验出错。但想想应该不是这里的问题,所有问题都汇集到了CPU?CPU能跑U-BOOT应该不会有问题,那会不会是CPU有的管脚出现松动?管他三七二十一,拿着热风*对CPU加焊,第一次加热后连BOOT也运行不起来。第二次又加热(大不了坏了我重新焊一块板子)。结果这次加热后,所有今天遇到的问题都解决了。系统运行正常。 (自己手工焊接的BGA,可靠性还是有所欠缺的。在后续的调试中会给你带来不少麻烦) 内核跑起来后,加载UBI出错,发现是找不到NANDFLASH,比较编译的内核和以前的内核打印的信息发现 AT91: CM rev B and higher AT91: EK rev B and higher 而现在打印的却是 AT91: CM rev A AT91: EK rev A 为此又是寻根究源,修改内核源码 #define cm_is_revA() (0)//(cm_rev() == 0) #define cm_is_revB() (1)//(cm_rev() == ('B' - 'A')) #define ek_is_revA() (0)//(ek_rev() == 0) #define ek_is_revB() (1)//(ek_rev() == ('B' - 'A')) 成功发现 NAND device: Manufacturer ID: 0xec, Chip ID: 0xdc (Samsung NAND 512MiB 3,3V 8-bi t) 但UBI却提示出错 Creating 2 MTD partitions on "atmel_nand": 0x000000000000-0x000000800000 : "bootstrap/uboot/kernel" 0x000000800000-0x000010000000 : "rootfs" UBI: attaching mtd1 to ubi0 UBI: physical eraseblock size: 131072 bytes (128 KiB) UBI: logical eraseblock size: 126976 bytes UBI: smallest flash I/O unit: 2048 UBI: VID header offset: 2048 (aligned 2048) UBI: data offset: 4096 UBI error: process_eb: bad image sequence number 在网上折腾了半天,有提到可能是根文件擦除时,未完全擦除,于是马上重新烧写rootfs.ubi 经过刷刷的一对信息,终于进入了根文件系统,系统跑起来了!! Starting portmap: done Initializing random number generator... done. ALSA: Restoring mixer settings... Starting network... Starting dropbear sshd: generating rsa key... generating dsa key... OK Welcome to Buildroot AT91SAM9 login: root # cd / # ls bin etc lib mnt proc sbin tmp var dev home linuxrc opt root sys usr 来上一首 MUISC 庆祝下。。。 # mount -t auto /dev/sdb /mnt # madplay ask.mp3 MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al. Title: 答应不爱你 Artist: 郑中基 Album: 仙三电视原声带 Track: 5 Comment: 插曲 7798 frames decoded (0:03:23.7), +1.2 dB peak amplitude, 2214 clipped samples ////////////////2013.04.22 LCD液晶屏成功点亮,目前正在移植Openembedded环境下的Angstrom,遇到不少问题,继续努力中。。。。。。。。。。。 //////////////////2013.04.25 花了几天时间,终于自己编译的Angstrom成功运行起来,当中出现了不少编译问题,有时即便是别人已经移植好的包给你,但要把它转化为适合自己的开发环境中,要解决的问题也是不少的!!! .---O---. | | .-. o o | | |-----.-----.-----.| | .----..-----.-----. | | | __ | ---'| '--.| .-'| | | | | | | | |--- || --'| | | ' | | | | '---'---'--'--'--. |-----''----''--' '-----'-'-'-' -' | '---' The Angstrom Distribution at91sam9x5ek ttyS0 Angstrom v2013.04 at91sam9x5ek ttyS0 at91sam9x5ek login: root root@at91sam9x5ek:~#