====Digi ConnectCore 6ul嵌入式Linux例程和测试说明====
为了方便客户和测试各种核心模块上的接口,Digi提供一系列可以直接编译和测试的的例程。在开发DEY系统镜像时,如果您在项目配置文件中指定添加dey-examples时,相关的例程就会集成到文件系统中,上电启动相应的Linux系统时,可以在命令行中测试相关例程。
如果您没有在文件系统中预编译好例程,也可以在Digi提供的IDE中新建相关的例程项目,编译后上传到板子上运行。通常地,您可以在[[https://www.digi.com/resources/documentation/digidocs/90002285/|英文官方文档]]的Digi Embedded Yocto>System development>Linux kernel>Linux 4.x Board Support Packages>Devices and Interfaces中找到相关的接口和例程说明。
* ADC
CC6UL模块提供了两种类型的ADC接口:i.mx6ul CPU上的ADC和协处理器上的ADC,它们都是12位精度,右对齐,无符号格式。协处理器上的ADC适用于10Hz以下的低频采样,更高的采样频率建议您使用CPU的ADC通道。当前ADC驱动仅支持“单次”采样模式。\\
10个CPU引脚 (GPIO1_IO00..GPIO1_IO09) 可配置成ADC通道(同其它功能复用) \\
5个MCA协处理器引脚可配置成ADC通道(MCA_IO0 .. MCA_IO5)\\
CC6UL SBC PRO单板计算机上,可以通过GPIO扩展槽连接器访问下面ADC通道:
EXP_GPIO_1 (i.MX6UL ADC channel 5) \\
EXP_GPIO_2 (i.MX6UL ADC channel 3) \\
EXP_GPIO_3 (i.MX6UL ADC channel 2) \\
MCA_IO1 (MCA ADC channel 1) \\
MCA_IO3 (MCA ADC channel 3) \\
IOEXP_IO3 (I/O Expander ADC channel 3) \\
IOEXP_IO4 (I/O Expander ADC channel 4) \\
IOEXP_IO5 (I/O Expander ADC channel 5) \\
CC6 SBC Starter单板机也接出三路ADC。对于CC6 SBC PRO单板机来说,板子上还有IO扩展的单片机ADC资源可以用,请参考官方文档。\\
**ADC 格式** \\
VREAD = VIN * 4095 / VREF
**参考电压** \\
i.MX6UL ADC通道参考电压是PMIC输出的vdda_adc_3v3,默认为3.3V ;
协处理器ADC通道参考电压为MCA_VCC 。请阅读官方文档了解更多细节。
* RTC
CC6UL使用的是协处理器来作为一个高效的RTC,在Linux系统中,它的文件描述符是/dev/rtc0。系统启动时,Linux会根据RTC时间来设置系统时间。
当连接到网络时,DEY会使用NTP服务设置并保持RTC为最新的时间。首次使用或是电池没电时,您需要初始化RTC。当没有初始化或是日期设置到1970年之前,Linux会报系统时间错误:
system time... hwclock: settimeofday() failed: Invalid
要在Linux Shell中初始化RTC,使用date命令设置一个合适的时间,然后用hwclock -w把系统时间写入到RTC。
rtc_test例程允许您从RTC中读取时间,用系统时间设置它,读取或设置,测试闹钟中断功能。请用rtc_test -h获取它的用法。
* CAN总线
在Linux中,CAN是作为一种网络设备接口来使用的,您可以像网口一样用ip命令来设置它。
ip link set canX up type can bitrate 125000
您也可以用ifconfig命令来启用或停用它。
can_test是一个用于测试can接口的例程,它的用法可以用can_test --help命令查询。下面这个命令测试用can0发送和接收ID为0x12,数据为0x65的帧。
作为发送端时,用-m,表示master
can_test -l 1 -b 8 -d can0 -i 0x12 -p 0x65 -m
默认是接收模式
can_test -l 1 -b 8 -d can0 -i 0x12 -p 0x65
* GPIO
**未完待更新** 。。。,请参考官方接口文档...