連載-iMX6ULL 軟件定制應用筆記 -9個知識點講解
接上篇:
連載-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
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開發板資料豐富,方便二次開發設計。
了解詳情 -
FETMX6ULL-S核心板
飛凌新出的一款采用NXP高性能、高效、低成本處理器的核心板—FETMX6ULL-S核心板,i.MX6ULL核心板采用郵票孔連接方式,ARM Cortex-A7內核,原生兩路網口,兩路Can和八路串口,可以和多種設備同時通訊。i.MX6ULL核心板支持工業級和擴展商業級兩種配置,并且經過了高低溫測試的檢驗,iMX6ULL核心板采用Linux4.1.15+Qt5.6操作系統,方便開發自己的應用程序。 了解詳情 -
FETMX6ULL-C核心板
FETMX6ULL-C核心板采用NXP i.MX6ULL處理器開發設計,是一款高性能Linux核心板,采用低功耗的ARM Cortex-A7架構,運行速度高達800MHz。iMX6ULL核心板29*40mm ,iMX6ULL這款處理器功能接口資源豐富,供貨周期長。
了解詳情 -
OKMX6ULL-C開發板
40*29mm,雙網雙CAN,8路串口| i.MX6ULL開發板是基于NXP i.MX6ULL設計開發的的一款Linux開發板 ,主頻800MHz,體積小,其核心板僅40*29mm,采用板對板連接器,適應場景豐富。 了解詳情