• 功能和接口需求

双以太网口,三个uart(两线,两个485,一个232),两路CAN,一路SPI,一个USB OTG,3路ADC,DIO口若干,SD卡(可选),Wifi/BLE支持,主频400MHz以上ARM处理器,嵌入式Linux系统。 本次设计需要对基于SPI控制的16路输出开关芯片MC33996提供驱动支持。

  • 接口分析

ConnectCore i.MX6UL SBC PRO单板计算机上带有大部分的接口资源,从硬件手册上可以看到板上带有三个uart:uart2,uart3,uart5,两路CAN的数据线和两个串口的流控线复用,但本次设计无需支持流控,因此可直接使用相关的接口引脚,只需在设备树上禁用流控。SPI接口用的是i.MX6UL的SPI1,USB OTG和SD卡接口板上自带,3路ADC板子上自带,DIO口也非常多。

  • 驱动分析

基本上可以直接用单板机的设备树,只需把两个串口的流控禁掉,就可以用两路CAN,SPI驱动可以使用Digi提供的接口API扩展库

  • 硬件设计

硬件部分,直接参考ConnectCore i.MX6UL SBC PRO工控板的设计,外围做些裁减,加上uart转232/485电路和MC33996等相关电路。

  • 软件设计

软件分为系统开发和应用程序开发两个部分,先按DEY系统开发方法搭好能编译出Linux固件的DEY 2.6系统开发环境,并编译出一个默认的DEY开发板的固件,然后我们着手编译一个稍加改动的固件,相关的变化主要在禁掉两个串口的流控,编译出来后的固件除了能在单板机上测试,也能用在自己的硬件板上。 应用程序开发,根据项目上的要求,安装好SDK后可使用Makfile直接编译方式,也可使用集成好的基于Eclipse的IDE环境。在程序开发完成后,利用系统开发中定制文件系统的方法,把程序集成到固件中

  • 项目实战

1. 开发板固件烧写实战:(卡刷,网络刷,linux在线刷)
2. 更改设备树,并测试双CAN在系统中的支持
3. 查看内核选项,并了解如何应用新内核配置,来生成新固件(比如IPV6支持的开关)
4. SPI驱动和Digi XAPI扩展库的应用,MC33996操作

待续…