国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 2633|回復: 0
打印 上一主題 下一主題

iMX6ULL 軟件定制應用筆記 -4個實用案例操作指南

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2020-12-22 16:44:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關鍵詞: 飛凌嵌入式 , NXP

本文以飛凌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.11 使用EC20模塊實現4G-AP功能

1. EC20 4G模塊撥號成功并分配IP,可連接外網。設置轉發規則:


root@freescale /$ ./quectel-CM & /*撥號,如果文件系統中無此應用程序,請參考應用筆記中源碼,交叉編譯之后,拷貝到文件系統中*/echo 1 > /proc/sys/net/ipv4/ip_forward /* 打開 IP 轉發 */iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE /*eth2為4G 模塊識別出的網卡,設置轉發規則 */


2.設置WiFi的模式與IP確保模塊8723bu已經加載。


ifconfig wlan0 up /*打開WiFi*/ifconfig wlan0 192.168.0.10 netmask 255.255.255.0 /*設置IP與子網掩碼*/ ifconfig wlan0 promisc /*設置 wlan0 為混雜模式 */


3.開啟AP


udhcpd /etc/udhcpd.conf & /*WiFi 地址、網關等配置信息*/ /home/hostapd -d /etc/hostapd.conf & /*加密方式、用戶名、密碼等設置,此時用戶名為FORLINX,密碼為12345678 */


4. 手機等移動終端可以通過WiFi連接到FCU1101的AP熱點,訪問外網。

5. 如果使用的華為的ME-909s模塊,按軟件手冊中先進行撥號,再配置iptables轉發規則,即可實現通過4G模塊實現熱點功能。

1.12  SPI轉CAN接口

1.其中SPI部分驅動參考“SPI接口”部分。

2.首先搜索一下iMX6ULL-S是否自帶mcp2515驅動。


neo@[color=inherit !important]ubuntu:~$ cd drivers neo@ubuntu: ~/drivers $ find -name "mcp25*" ./net/can/spi/mcp251x.c neo@ubuntu: ~/drivers $ vi ./net/can/Makefile


在Makefile中添加相應配置:


obj-$(CONFIG_CAN_MCP251X) += mcp251x.o


3.在配置文件arch/arm/config/imx6ull_defconfig中設置CONFIG_CAN_MCP251X=y.

4.同時需要配置設備樹。

配置clock時鐘:


clocks{   mcp251x_clock : mcp251x_clock{    compatible = “fixed-clock”;   #clock-cells = <0>;   clock-frequency = <8000000>;   };  };


配置參考電壓


reg_can_3v3: regulator@0 {    compatible = "regulator-fixed";    reg = <0>;    regulator-name = "can-3v3";    regulator-min-microvolt = <3300000>;    regulator-max-microvolt = <3300000>;    gpios = <&gpio_spi 3 [color=inherit !important]GPIO_ACTIVE_LOW>;   startup-active-us = <20000>;   enable-active-high; };


配置PIN MUX:


pinctrl_ecspi2: ecspi2grp {   fsl,pins = <  MX6UL_PAD_CSI_DATA03__ECSPI2_MISO 0x100b1 MX6UL_PAD_CSI_DATA02__ECSPI2_MOSI 0x100b1 MX6UL_PAD_CSI_DATA00__ECSPI2_SCLK 0x100b1 >; };  pinctrl_ecspi2_cs: ecspi2_csgrp {   fsl,  pins = <  MX6UL_PAD_CSI_DATA01__GPIO4_IO22 0x80000000  >; }; pinctrl_can: can {  fsl, pins = < MX6UL_PAD_ CSI_DATA07__ GPIO4_IO28 0x100b1>;};


配置ecspi2的配置項:


&ecspi2{    compatible = "fsl,imx51-ecspi";    fsl,spi-num-chipselects = <1>;    cs-gpios = ;    pinctrl-names = "default";    pinctrl-0 = <&pinctrl_ecspi2>,<&pinctrl_ecspi2_cs>;    status = "okay";    can0: mcp2515@0 {        pinctrl-names = "default";        compatible = "microchip,mcp2515";        pinctrl-0 = <&pinctrl_can>;        cs-gpios = <&gpio4 22 0>;        reg = <0>;        status = "okay";        spi-max-frequency = <10000000>;        clocks = <&mcp251x_clock>;        interrupt-parent = <&gpio4>;        interrupts = <28 0x2>;        vdd-supply = ;        xceiver-supply = ;    };}


5. 驗證

步驟1:按軟件手冊編譯內核和設備樹。注意查看編譯完內核之后,是否在drivers/spi/下生成spi-imx.o,是否在drivers/net/can/下生成mcp251x.o,如果沒生成,查看配置是否出錯?生成*.o文件說明已經編譯進內核。

步驟2 :替換燒寫工具中的設備樹和內核,重新燒寫。開機選擇剛替換的設備樹。

步驟3 :此ecspi2驅動加載成功之后,cat /sys/bus/spi/devices/spi1.0/modalias會出現spi:mcp2515。

步驟4 :查看打印信息是否生成can0節點。

1.13  ADC接口

以將電阻觸摸的4路觸摸用作ADC為例。

1. 查看IMX6ULLRM.pdf手冊中Chapter 13.2有:

采用GPIO1_IO01、GPIO1_IO02、GPIO1_IO03、GPIO1_IO04作為四路ADC。

2. 怎么查找用哪個驅動,采用config中的哪個進行配置呢?

3. 查找ADC的驅動和配置選項。

設備樹文件arch/arm/boot/dts/imx6ull-14x14-evk.dts中有


#include #include "imx6ull.dtsi"


打開imx6ul.dtsi文件,此文件為通用設備樹配置文件


adc1: adc@02198000 {    compatible = "fsl,imx6ul-adc", "fsl,vf610-adc";    reg = <0x02198000 0x4000>;    interrupts = ;    clocks = <&clks IMX6UL_CLK_ADC1>;    num-channels = <9>;    clock-names = "adc";    status = "disabled";            };


在drviers路徑下查找相關文件,如下:


neo@ubuntu:~$ grep "fsl,vf610-adc" -nrBinary file built-in.o matchesBinary file iio/built-in.o matchesBinary file iio/adc/built-in.o matchesBinary file iio/adc/vf610_adc.o matchesiio/adc/vf610_adc.c:596:        { .compatible = "fsl,vf610-adc", },


查看drives/spi/Makefile文件。此文件將adc路徑下的驅動文件和配置文件中具體哪個配置聯系起來。vf610_adc.c文件編譯之后為vf610_adc.o文件。  


obj-$(CONFIG_VF610_ADC)        += vf610_adc.o


查看6ULL-S的配置文件arch/arm/config/imx6ull_defconfig中CONFIG_VF610_ADC=y。

查看drivers/iio/Makefile中,要編譯ADC下的文件,需要有:


obj-y       += adc/


查看`,要編譯iio下的文件,需要有:


obj-$(CONFIG_IIO)       += iio/


查看6ul emmc的配置文件arch/arm/config/imx6ull_defconfig中CONFIG_IIO=y。

至此驅動配置完成。

4. 修改設備樹文件arch/arm/boot/dts/imx6ull-14x14-evk.dts,添加adc1.


&adc1 {    pinctrl-names = "default";pinctrl-0 = <&pinctrl_adc1>;vref-supply = <®_vref_3v3>;    status = "okay";};


需要用到參考電壓,添加reg_vref_3v3,如圖:


reg_vref_3v3: regulator@3 {            compatible = "regulator-fixed";            regulator-name = "vref-3v3";            regulator-min-microvolt = <3300000>;            regulator-max-microvolt = <3300000>;            reg = <3>;};


在&iomuxc中添加所用到的具體[color=inherit !important]引腳。此處關于上下拉電阻配置部分,參考“PINMUX說明”部分進行設置。如圖:


pinctrl_adc1: adc1grp {                    fsl,pins = <                        MX6UL_PAD_GPIO1_IO01__GPIO1_IO01   0xb0                        MX6UL_PAD_GPIO1_IO02__GPIO1_IO02   0xb0                        MX6UL_PAD_GPIO1_IO03__GPIO1_IO03   0xb0                        MX6UL_PAD_GPIO1_IO04__GPIO1_IO04   0xb0                    >;        };


并將其他復用GPIO1_IO01、GPIO1_IO02、GPIO1_IO03、GPIO1_IO04的地方注釋掉或者disabled。

5. 編譯生成dtb zImage,編譯內核,查看drivers/iio/adc/是否生成vf610_adc.o,如果生成,已編譯進內核。如果未生成,查看是否配置出錯?

6. 替換dtb zImage,并燒寫,啟動。

7. 查看開發板/dev下有節點iio:device0,則驅動加載成功。

或者進入cd /sys/bus/iio/devices/iio\:device0/路徑查看。

1.14  LCD的屏幕參數調整

以修改4.3吋為3.5吋屏為例。

1.修改內核設備樹。

arch/arm/boot/dts/imx6ull-S-emmc-480x272r4dot3.dts找到&lcdif。



&lcdif {    pinctrl-names = "default";        pinctrl-0 = <&pinctrl_lcdif_dat                     &pinctrl_lcdif_ctrl>;        display = <&display0>;        status = "okay";    display0: display {        bits-per-pixel = <24>;        bus-width = <24>;        display-timings {            native-mode = <&timing0>;            timing0: timing0 {            clock-frequency = <9000000>;            hactive = <480>;            vactive = <272>;            hfront-porch = <2>;            hback-porch = <2>;            hsync-len = <41>;            vback-porch = <2>;            vfront-porch = <2>;            vsync-len = <10>;            hsync-active = <0>;            vsync-active = <0>;            de-active = <1>;            pixelclk-active = <0>;            };        };    };};


2.參考屏體手冊中有:

3.修改設備樹中

其中clock-frequency= fframe*(hfront+hback+hsync+xres)*(vfront+vback+vsync+yres)其中fframe=60



&lcdif {    pinctrl-names = "default";        pinctrl-0 = <&pinctrl_lcdif_dat                     &pinctrl_lcdif_ctrl>;        display = <&display0>;        status = "okay";    display0: display {        bits-per-pixel = <24>;        bus-width = <24>;        display-timings {            native-mode = <&timing0>;            timing0: timing0 {            clock-frequency = <6410256>;            hactive = <320>;            vactive = <240>;            hfront-porch = <20>;            hback-porch = <38>;            hsync-len = <30>;            vback-porch = <15>;            vfront-porch = <4>;            vsync-len = <3>;            hsync-active = <0>;            vsync-active = <0>;            de-active = <1>;            pixelclk-active = <1>;            };        };    };};


4.編譯dtb文件。


neo@ubuntu:~$ make dtbs


生成arch/arm/boot/dts/imx6ull-S-emmc-320x240r3dot5.dts替換燒寫工具中的dtb中文件。燒寫。在uboot選擇5-4.3吋屏。重啟。發現uboot顯示不正常,內核顯示正常。

5.如果發現屏幕閃爍,根據分頻設置,適當調整頻率。


clock-frequency = <6410256>;


或未在中心位置。微調下面6個參數。


hfront-porch = <20>;hback-porch = <38>;hsync-len = <30>;vback-porch = <15>;vfront-porch = <4>;vsync-len = <3>;


6. 修改文件系統目錄下/etc/rc.d/qt_env.sh,根據實際需求調整QWS_SIZE的大小。

     

原文鏈接:https://www.forlinx.com/article_view_604.html


您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产欧美日韩精品一区二 | 五月天婷婷在线播放 | 一道本高清香蕉网 | 亚洲永久视频 | 国产高清在线精品免费 | 亚洲国产精品一区二区久久 | 99久久精品无码一区二区毛片 | 999在线视频| 欧美日韩在线播放一区二区三区 | 男女性关系视频免费观看软件 | 在线观看网站国产 | 中文字幕日韩女同互慰视频 | 国产麻豆91在线 | 四虎影视2022入口网址 | 四虎激情 | 四虎影视永久费观看在线 | 亚洲国产高清视频 | 日韩欧美精品综合一区二区三区 | 亚洲一区二区三区高清不卡 | 国产在线视频在线观看 | 亚洲第一色网站 | 一区二区三区高清 | 成人国产一区二区 | 国产亚洲婷婷香蕉久久精品 | 青青青激情视频在线最新 | 欧美另类亚洲一区二区 | 国内精品亚洲 | 91视频下载网址 | 日本精品久久 | 91极品哺乳期女神挤奶在线 | 草莓丝瓜视频下载 | 向日葵app看片版免费观看 | 97视频在线观看视频在线精品 | 免费在线观看毛片 | 男人天堂2022 | 男女午夜视频在线观看 | 神马我不卡影视 | 这里只有久久精品视频 | 久久久久免费视频 | 在线观看日韩视频 | 欧美片网站 |