連載-iMX6ULL 軟件定制應(yīng)用筆記 -9個(gè)知識(shí)點(diǎn)講解
接上篇:
連載-iMX6ULL 軟件定制應(yīng)用筆記 -3個(gè)常見問題解決思路 點(diǎn)擊了解
本文以飛凌OKMX6ULL-S開發(fā)板為基礎(chǔ)講解,系統(tǒng)為Linux,一共總結(jié)了14個(gè)iMX6ULL小知識(shí)點(diǎn),分三期完成,此為第二期
i.MX6ULL應(yīng)用筆記目錄
1.1 管腳復(fù)用的參數(shù)配置方法(PINMUX)
1.2 Windows下轉(zhuǎn)換開機(jī)LOGO圖片格式
1.3 8189es SDIO WIFI使用及測(cè)試
1.4 USB轉(zhuǎn)串口芯片的支持(PL2303)
1.5 增加串口
1.6 串口配置DMA
1.7 LCD轉(zhuǎn)LVDS模塊
1.8 LCD轉(zhuǎn)VGA模塊
1.9 硬浮點(diǎn)運(yùn)算
1.10 OTG修改模式
1.11 使用EC20模塊實(shí)現(xiàn)4G-AP功能
1.12 SPI轉(zhuǎn)CAN接口
1.13 ADC接口
1.14 LCD的屏幕參數(shù)調(diào)整
1.4 USB轉(zhuǎn)串口芯片的支持(PL2303)
內(nèi)核自帶了PL2303的驅(qū)動(dòng),需要將配置文imx6ull_defconfig中CONFIG_USB_SERIAL_PL2303 設(shè)置為y,如下:(默認(rèn)已經(jīng)配置)
arch/arm/configs/imx6ull_defconfig
# CONFIG_USB_SERIAL_NAVMAN is not set CONFIG_USB_SERIAL_PL2303=y CONFIG_USB_SERIAL_VIZZINI=y配置說明:
1. 編譯內(nèi)核,燒寫并替換內(nèi)核。(如果對(duì)imx6ull_defconfig配置進(jìn)行修改需要執(zhí)行此步驟)
2.啟動(dòng)系統(tǒng)à 插入U(xiǎn)SB轉(zhuǎn)串口設(shè)備。
3.驗(yàn)證,輸入以下指令查看,默認(rèn)在dev下產(chǎn)生ttyUSB0節(jié)點(diǎn):
root@fl-imx6ull:~#ls -la /dev/ttyUSB0
注意:
1.有些USB設(shè)備需要將配置文件中CONFIG_USB_PRINTER=y;
2. 測(cè)試方法同《用戶手冊(cè)》串口測(cè)試章節(jié)。
1.5 增加串口
1.此處以u(píng)art4配置進(jìn)行說明。查看IMX6ULLRM.pdf手冊(cè)中Chapter 4
2.因有調(diào)試串口,驅(qū)動(dòng)為同一個(gè),此處不再修改配置configs文件。
3.修改設(shè)備樹文件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復(fù)用為i2c1,此處將i2c1設(shè)置為disabled。
&i2c1 { clock-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c1>; status = "disabled";
4.編譯生成dtb,替換并燒寫。
5.查看開發(fā)板/dev下有節(jié)點(diǎn)ttymxc3,則驅(qū)動(dòng)加載成功。
測(cè)試同其他串口的測(cè)試方法。此處不再說明。
1.6 串口配置DMA
i.MX6ULL-S源碼中,默認(rèn)除了debug串口uart1之外,其它的都是默認(rèn)打開的DMA的,如果串口只是接了TXD/RXD,而沒有硬件流控RTS/CTS,則使用DMA傳輸大量數(shù)據(jù)有可能報(bào)DMA錯(cuò)誤,所以如果只接TXD/RXD可以只使用PIO模式,參考 uart1設(shè)置。以u(píng)art7為例:
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轉(zhuǎn)LVDS模塊
關(guān)閉電源,將LCD屏幕接至LVDS接口,現(xiàn)階段支持深圳拓普微的LMT070DICFWD-AKA液晶顯示器。
上電即可正常顯示,觸摸可用,如有需要可聯(lián)系銷售人員。
1.8 LCD轉(zhuǎn)VGA模塊
關(guān)閉電源,將LCD屏幕接至LCD轉(zhuǎn)VGA模塊。需要更改顯示的各參數(shù),客戶根據(jù)實(shí)際使用的設(shè)備樹修改參數(shù)即可。如有需要可聯(lián)系銷售人員。
1.9 硬浮點(diǎn)運(yùn)算
i.MX6ULL的CPU本身有FPU,支持VFPv4-D32。假設(shè)測(cè)試程序?yàn)閠est.c。
Linux4.1.15內(nèi)核,按照用戶手冊(cè)描述,配置好交叉編譯環(huán)境后,直接使用$CC編譯即可
$CC -o test test.c
1.10 OTG修改模式
設(shè)備樹中設(shè)置為device模式:
&usbotg1 { dr_mode = "peripheral"; //默認(rèn)設(shè)置為device模式,所以MFG下載可以用。 status = "okay"; };
設(shè)備樹中設(shè)置為host模式:
&usbotg1 { vbus-supply = <?_usb_otg1_vbus>; dr_mode = "host"; status = "okay"; };
未完,接下篇 連載-iMX6ULL 軟件定制應(yīng)用筆記 -4個(gè)實(shí)用案例操作指南 點(diǎn)擊查詢
相關(guān)產(chǎn)品 >
-
OKMX6ULL-S開發(fā)板
iMX6ULL是飛凌新近推出的一款開發(fā)板,iMX6ULL與iMX6UL開發(fā)板相比,功能無區(qū)別完全兼容,配置升級(jí),性能高,價(jià)格低。根據(jù)介紹可看出i.MX6ULL參數(shù)豐富 ,采用NXP i.MX6ULL處理器芯片,郵票孔封裝,支持Linux系統(tǒng),i.MX6ULL開發(fā)板資料豐富,方便二次開發(fā)設(shè)計(jì)。
了解詳情 -
FETMX6ULL-S核心板
飛凌新出的一款采用NXP高性能、高效、低成本處理器的核心板—FETMX6ULL-S核心板,i.MX6ULL核心板采用郵票孔連接方式,ARM Cortex-A7內(nèi)核,原生兩路網(wǎng)口,兩路Can和八路串口,可以和多種設(shè)備同時(shí)通訊。i.MX6ULL核心板支持工業(yè)級(jí)和擴(kuò)展商業(yè)級(jí)兩種配置,并且經(jīng)過了高低溫測(cè)試的檢驗(yàn),iMX6ULL核心板采用Linux4.1.15+Qt5.6操作系統(tǒng),方便開發(fā)自己的應(yīng)用程序。 了解詳情 -
FETMX6ULL-C核心板
FETMX6ULL-C核心板采用NXP i.MX6ULL處理器開發(fā)設(shè)計(jì),是一款高性能Linux核心板,采用低功耗的ARM Cortex-A7架構(gòu),運(yùn)行速度高達(dá)800MHz。iMX6ULL核心板29*40mm ,iMX6ULL這款處理器功能接口資源豐富,供貨周期長。
了解詳情 -
OKMX6ULL-C開發(fā)板
40*29mm,雙網(wǎng)雙CAN,8路串口| i.MX6ULL開發(fā)板是基于NXP i.MX6ULL設(shè)計(jì)開發(fā)的的一款Linux開發(fā)板 ,主頻800MHz,體積小,其核心板僅40*29mm,采用板對(duì)板連接器,適應(yīng)場(chǎng)景豐富。 了解詳情