连载-iMX6ULL 软件定制应用笔记 -9个知识点讲解

原创 作者 iMX6ULL 2020-12-16 18:26:00 i.MX6ULL iMX6ULL

接上篇:

连载-iMX6ULL 软件定制应用笔记 -3个常见问题解决思路   点击了解



本文以飞凌OKMX6ULL-S开发板为基础讲解,系统为Linux,一共总结了14个iMX6ULL小知识点,分三期完成,此为第二期


i.MX6ULL应用笔记目录 
1.1 管脚复用的参数配置方法(PINMUX)
1.2 Windows下转换开机LOGO图片格式 
1.3  8189es SDIO WIFI使用及测试 
1.4  USB转串口芯片的支持(PL2303)
1.5  增加串口
1.6  串口配置DMA
1.7  LCD转LVDS模块
1.8  LCD转VGA模块
1.9  硬浮点运算 
1.10  OTG修改模式 
1.11  使用EC20模块实现4G-AP功能 
1.12  SPI转CAN接口 
1.13  ADC接口
1.14  LCD的屏幕参数调整

1.4  USB转串口芯片的支持(PL2303)

内核自带了PL2303的驱动,需要将配置文imx6ull_defconfig中CONFIG_USB_SERIAL_PL2303 设置为y,如下:(默认已经配置)

arch/arm/configs/imx6ull_defconfig


# CONFIG_USB_SERIAL_NAVMAN is not set
CONFIG_USB_SERIAL_PL2303=y
CONFIG_USB_SERIAL_VIZZINI=y
 配置说明:

1. 编译内核,烧写并替换内核。(如果对imx6ull_defconfig配置进行修改需要执行此步骤)

2.启动系统à 插入USB转串口设备。

3.验证,输入以下指令查看,默认在dev下产生ttyUSB0节点:

root@fl-imx6ull:~#ls -la /dev/ttyUSB0

注意:

1.有些USB设备需要将配置文件中CONFIG_USB_PRINTER=y;

2. 测试方法同《用户手册》串口测试章节。

1.5 增加串口

1.此处以uart4配置进行说明。查看IMX6ULLRM.pdf手册中Chapter 4

IMX6ULLRM.pdf手册中Chapter 4 

2.因有调试串口,驱动为同一个,此处不再修改配置configs文件。

3.修改设备树文件imx6ull-S-emmc-1024x600c7.dts

&uart4 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_uart4>;
    status = "okay";
};

PIN control部分:

pinctrl_uart4: uart4grp {
    fsl,pins = <
        MX6UL_PAD_UART4_TX_DATA__UART4_DCE_TX 0x1b0b1
        MX6UL_PAD_UART4_RX_DATA__UART4_DCE_RX 0x1b0b1
    >;
};

因uart4复用为i2c1,此处将i2c1设置为disabled。

&i2c1 {
    clock-frequency = <100000>;
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_i2c1>;
    status = "disabled";

4.编译生成dtb,替换并烧写。

5.查看开发板/dev下有节点ttymxc3,则驱动加载成功。

测试同其他串口的测试方法。此处不再说明。

1.6  串口配置DMA

i.MX6ULL-S源码中,默认除了debug串口uart1之外,其它的都是默认打开的DMA的,如果串口只是接了TXD/RXD,而没有硬件流控RTS/CTS,则使用DMA传输大量数据有可能报DMA错误,所以如果只接TXD/RXD可以只使用PIO模式,参考 uart1设置。以uart7为例:

imx6ull.dts

 uart7: serial@02018000 {
                    compatible = "fsl,imx6ul-uart",
                             "fsl,imx6q-uart", "fsl,imx21-uart";
                    reg = <0x02018000 0x4000>;
                    interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
                    clocks = <&clks IMX6UL_CLK_UART7_IPG>,
                         <&clks IMX6UL_CLK_UART7_SERIAL>;
                    clock-names = "ipg", "per";
                    // dmas = <&sdma 43 4 0>, <&sdma 44 4 0>; //注释掉则该串口不使用DMA
                    dma-names = "rx", "tx";
                    status = "disabled";
                };

1.7  LCD转LVDS模块

关闭电源,将LCD屏幕接至LVDS接口,现阶段支持深圳拓普微的LMT070DICFWD-AKA液晶显示器。

上电即可正常显示,触摸可用,如有需要可联系销售人员。

1.8  LCD转VGA模块

关闭电源,将LCD屏幕接至LCD转VGA模块。需要更改显示的各参数,客户根据实际使用的设备树修改参数即可。如有需要可联系销售人员。

1.9  硬浮点运算

i.MX6ULL的CPU本身有FPU,支持VFPv4-D32。假设测试程序为test.c。

Linux4.1.15内核,按照用户手册描述,配置好交叉编译环境后,直接使用$CC编译即可

$CC -o test test.c

1.10 OTG修改模式

设备树中设置为device模式:

&usbotg1 {
dr_mode = "peripheral"; //默认设置为device模式,所以MFG下载可以用。
status = "okay";
};

设备树中设置为host模式:

&usbotg1 {
    vbus-supply = <®_usb_otg1_vbus>;
    dr_mode = "host";
    status = "okay";
};


未完,接下篇 连载-iMX6ULL 软件定制应用笔记 -4个实用案例操作指南 点击查询

相关产品 >

  • OKMX6ULL-S开发板

    iMX6ULL是飞凌新近推出的一款开发板,iMX6ULL与iMX6UL开发板相比,功能无区别完全兼容,配置升级,性能高,价格低。根据介绍可看出i.MX6ULL参数丰富 ,采用NXP i.MX6ULL处理器芯片,邮票孔封装,支持Linux系统,i.MX6ULL开发板资料丰富,方便二次开发设计。

    了解详情
    OKMX6ULL-S开发板
  • FETMX6ULL-S核心板

    飞凌新出的一款采用NXP高性能、超高效、低成本处理器的核心板—FETMX6ULL-S核心板,i.MX6ULL核心板采用邮票孔连接方式,ARM Cortex-A7内核,原生两路网口,两路Can和八路串口,可以和多种设备同时通讯。i.MX6ULL核心板支持工业级和扩展商业级两种配置,并且经过了高低温测试的检验,iMX6ULL核心板采用Linux4.1.15+Qt5.6操作系统,方便开发自己的应用程序。 了解详情
    FETMX6ULL-S核心板
  • FETMX6ULL-C核心板

    FETMX6ULL-C核心板采用NXP i.MX6ULL处理器开发设计,是一款高性能Linux核心板,采用低功耗的ARM Cortex-A7架构,运行速度高达800MHz。iMX6ULL核心板29*40mm  ,iMX6ULL这款处理器功能接口资源丰富,超长的供货周期。

    了解详情
    FETMX6ULL-C核心板
  • OKMX6ULL-C开发板

    40*29mm,双网双CAN,8路串口| i.MX6ULL开发板是基于NXP i.MX6ULL设计开发的的一款Linux开发板 ,主频800MHz,体积小,其核心板仅40*29mm,采用板对板连接器,适应场景丰富。 了解详情
    OKMX6ULL-C开发板

推荐阅读 换一批 换一批