本帖最后由 XKP 于 2014-8-26 10:43 编辑
附件上是电路图
修改为VGA输出的方式,见帖子:
http://forum.cubietech.com/forum.php?mod=viewthread&tid=635&highlight=VGA
修改好后,就可以使用扩展板上的VGA输出了
这是调试硬件RTC的方法:
扩展板上有一个硬件RTC,下面为我自己的操作来读取时间数据
我使用的是cubain镜像,下载地址:http://cn.cubian.org/downloads/
安装以下工具: apt-get install i2c-tools 对于i2c-tools工具的使用可以在网上查询一下,很多资料 因为RTC是使用DS1307,使用的I2C总线
一、I2C设备查询 若总线上挂载I2C从设备,可通过i2cdetect扫描某个I2C总线上的所有设备。可通过控制台输入i2cdetect -y 1,结果如下所示。 如果接线正确一般会出现(看68就好了) 1. 0 1 2 3 4 5 6 7 8 9 a b c d e f 2. 00: -- -- -- -- -- -- -- -- -- ---- -- -- 3. 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 4. 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 5. 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 6. 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 7. 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 8. 60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 9. 70: -- -- -- -- -- -- -- --
说明1:-y为一个可选参数,如果有-y参数的存在则会有一个用户交互过程,意思是希望用户停止使用该I2C总线。如果写入该参数,则没有这个交互过程,一般该参数在脚本中使用。 说明2:此处I2C总线共挂载一个设备——DS1307,从机地址0x68为DS1307
二、寄存器内容导出 通过i2cdump指令可导出I2C设备中的所有寄存器内容,例如输入i2cdump -y 1 0x68,可获得以下内容:
root@Cubian:/home/cubie# i2cdump -y 1 0x68 No size specified (using byte-data access) 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 00: 40 30 10 02 26 08 14 91 df bd d5 7e fe 9f 76 d9 @0??&??????~??v? 10: bd f7 bf ec fd 9d fe 3f de 3d cf 54 1d ff e5 7f ?????????=?T?.?? 20: f9 d3 1c db d2 a1 8b 47 99 0d 02 89 55 c4 c7 75 ???????G????U??u 30: 4c 5a a5 12 a2 35 02 3a 1f 6a e6 e0 c9 34 d9 43 LZ???5?:?j???4?C 40: 40 30 10 02 26 08 14 91 df bd d5 7e fe 9f 76 d9 @0??&??????~??v? 50: bd f7 bf ec fd 9d fe 3f de 3d cf 54 1d ff e5 7f ?????????=?T?.?? 60: f9 d3 1c db d2 a1 8b 47 99 0d 02 89 55 c4 c7 75 ???????G????U??u 70: 4c 5a a5 12 a2 35 02 3a 1f 6a e6 e0 c9 34 d9 43 LZ???5?:?j???4?C 80: 40 30 10 02 26 08 14 91 df bd d5 7e fe 9f 76 d9 @0??&??????~??v? 90: bd f7 bf ec fd 9d fe 3f de 3d cf 54 1d ff e5 7f ?????????=?T?.?? a0: f9 d3 1c db d2 a1 8b 47 99 0d 02 89 55 c4 c7 75 ???????G????U??u b0: 4c 5a a5 12 a2 35 02 3a 1f 6a e6 e0 c9 34 d9 43 LZ???5?:?j???4?C c0: 40 30 10 02 26 08 14 91 df bd d5 7e fe 9f 76 d9 @0??&??????~??v? d0: bd f7 bf ec fd 9d fe 3f de 3d cf 54 1d ff e5 7f ?????????=?T?.?? e0: f9 d3 1c db d2 a1 8b 47 99 0d 02 89 55 c4 c7 75 ???????G????U??u f0: 4c 5a a5 12 a2 35 02 3a 1f 6a e6 e0 c9 34 d9 43 LZ???5?:?j???4?C root@Cubian:/home/cubie#
主要看前面的00~06地址的数据,对应的含义请下载DS1307的数据手册查看(这个我已经修改了,要是新的芯片,00地址上的数据为0x80,原因:00h 地址的第 7 位为器件时钟允许位(CH),此位为 1 则芯片未开始工作,即时钟未走时,所以在上电时单片机要先读出秒,并判断位 7(CH)是否为1,如为 1 要把该位清零写入秒寄存器(地址为 0 ), 并把其他的时间单元设定为默认值。 如果上电复位时读出的秒的最高位 CH 为 0,说明时钟已工作(前已对 CH清 0,且停电 后有备用电池),此时不能重写时间单元),现在显示的时间为:14年8月26日星期210时30分40秒
三、寄存器内容写入 如果向I2C设备中写入某字节,可输入指令i2cset -y 1 0x68 0x00 0x01 -y 代表曲线用户交互过程,直接执行指令 1 代表I2C总线编号 0x68 代表I2C设备地址,0x68为DS1307的地址 0x00 代表存储器地址 0x01 代表存储器地址中的具体内容
通过这个指令可以设置DS1307的时间数据
此扩展板上的RTC使用了超级电容为RTC供电保持数据,CB断电后RTC的时间数据也不会错误
485输出的测试:
先要修改script.bin文件,使其支持,具体参考:
http://forum.cubietech.com/forum.php?mod=viewthread&tid=2742&highlight=UART
我使用的是cubian的镜像
修改好后
输入 dmesg | grep tty
root@Cubian:/home/cubie# dmesg | grep tty [ 0.000000] Kernel command line: console=tty0 root=/dev/mmcblk0p1 rootwaitloglevel=8 panic=10 console=ttyS0,115200 hdmi.audio=EDID:0disp.screen0_output_mode=EDID:1280x800p60 panic=10 consoleblank=0 fb0_framebuffer_num=3sunxi_fb_mem_reserve=11 [ 0.000000] console [tty0] enabled [ 1.520104] sunxi-uart.0: ttyS0 at MMIO 0x1c28000 (irq = 33) is aU6_16550A [ 2.357652] console [ttyS0] enabled [ 2.397821] sunxi-uart.3: ttyS1 at MMIO 0x1c28c00 (irq = 36) is aU6_16550A [ 2.441418] sunxi-uart.4: ttyS2 at MMIO 0x1c29000 (irq = 49) is aU6_16550A
可以知道 ttyS1为uart3
ttyS2为uart4
从电路图上可以看到,uart4是和zigbee进行通信的,uart3是485电路
看串口資訊: stty -F /dev/ttyS1 root@Cubian:/home/cubie# stty -F /dev/ttyS1 speed 9600 baud; line = 0; -brkint -imaxbel -echo
加入echo功能 :stty -F /dev/ttyS1 -echo root@Cubian:/home/cubie# stty -F /dev/ttyS1 –echo
发送: root@Cubian:/home/cubie# echo"aaa" > /dev/ttyS1
如第一帖的图片,测试电路接好后,按这些操作,就会有截图的效果了,uart4的测试放入相同
附件里面有修改后的script.bin文件,修改了VGA输出和uart3和uart4 |