为了方便客户和测试各种核心模块上的接口,Digi提供一系列可以直接编译和测试的的例程。在开发DEY系统镜像时,如果您在项目配置文件中指定添加dey-examples时,相关的例程就会集成到文件系统中,上电启动相应的Linux系统时,可以在命令行中测试相关例程。

如果您没有在文件系统中预编译好例程,也可以在Digi提供的IDE中新建相关的例程项目,编译后上传到板子上运行。通常地,您可以在英文官方文档的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 格式
    <code> VREAD = VIN * 4095 / VREF </code>
    参考电压
    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会报系统时间错误: <code>system time… hwclock: settimeofday() failed: Invalid </code> 要在Linux Shell中初始化RTC,使用date命令设置一个合适的时间,然后用hwclock -w把系统时间写入到RTC。 rtc_test例程允许您从RTC中读取时间,用系统时间设置它,读取或设置,测试闹钟中断功能。请用rtc_test -h获取它的用法。 * CAN总线 在Linux中,CAN是作为一种网络设备接口来使用的,您可以像网口一样用ip命令来设置它。 <code>ip link set canX up type can bitrate 125000 </code> 您也可以用ifconfig命令来启用或停用它。 can_test是一个用于测试can接口的例程,它的用法可以用can_test –help命令查询。下面这个命令测试用can0发送和接收ID为0x12,数据为0x65的帧。 <code> 作为发送端时,用-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 </code> * GPIO
    未完待更新** 。。。,请参考官方接口文档…