連載-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開發板

推薦閱讀 換一批 換一批