tag 标签: iMX6ULL

相关博文
  • 热度 2
    2024-1-11 17:55
    287 次阅读|
    0 个评论
    本文基于HD6UL-IOT评估板进行验证。HD6UL-IOT基于HD6UL-CORE工业级核心板设计(双网口、双CAN、7路串口),接口丰富,采用3.5寸工控板标准尺寸,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。 1.查看dtb文件分区 使用cat/proc/mtd命令查看dtb设备树文件在nand中存储的分区。 2.提取dtb设备树文件 输入ddif=/dev/mtd1of=/home/xxx.dtb在mtd1分区中提取dtb设备树文件到home目录下。 3.反编译dtb设备树文件 提取出dtb文件后,将dtb文件拷贝到linux虚拟机内,进入到linux内核目录scripts/dtc下找到dtc工具使用一下目录对dtb设备树文件进行反编译: ./dtc-Idtb-Odts-oxxx.dtsxxx.dtb
  • 热度 5
    2022-12-30 14:37
    1202 次阅读|
    0 个评论
    iMX6ULL应用笔记接口篇主要适用于飞凌OKMX6ULL-S 平台Linux4.1.15 操作系统,主要讲解iMX6ULL系列产品接口的一些DEMO测试例程, 一、SPI 接口 6ull 最多可以支持 4 路原生的 spi 接口,分别为: 其中第一列为接口号,第二列为功能,第三列为可以复用此功能的引脚名称,第四列为引脚的模式。 下面以添加 ecspi1 为例进行添加和测试: 1、从上表中选取 ecspi1 的 4 组引脚,其中 MISO 采用 CSI_DATA07,MOSI 采用 CSI_DATA06,SCLK 采用 CSI_DATA04,SS0 采用 CSI_DATA05。 2、在对应的设备树文件/arch/arm/boot/dts/imx6ull-14x14-evk.dts 中添加 ecspi1 节点。 &ecspi1 { compatible = "fsl,imx51-ecspi"; fsl,spi-num-chipselects = ; cs-gpios = ; pinctrl-names = "default"; pinctrl-0 = , ; status = "okay"; spidev@0{ compatible = "spidev"; spi-max-frequency = ; reg = ; status = "okay"; }; } 3、在&iomuxc 节点下添加 pinctrl_ecspi1 和 pinctrl_ecspi1_cs pinctrl_ecspi1: ecspi1grp { fsl,pins = < MX6UL_PAD_CSI_DATA07__ECSPI1_MISO 0x100b1 MX6UL_PAD_CSI_DATA06__ECSPI1_MOSI 0x100b1 MX6UL_PAD_CSI_DATA04__ECSPI1_SCLK 0x100b1 ; }; pinctrl_ecspi1_cs: ecspi1_csgrp { fsl,pins = < MX6UL_PAD_CSI_DATA05__GPIO4_IO26 0x80000000 ; }; 4、把之前的 csi 功能关闭,避免引脚复用冲突 5、根据用户编译手册中的方法编译设备树后替换之前的.dtb 文件,重新烧录。 6、重新启动开发板,查看/dev 目录下是否生成 spidev0.0 节点,如果生成说明添加 ecspi1 成功。 7、此处只是进行短接 miso 和 mosi 进行的测试,运行 fltest_cmd_spidev -D /dev/spidev0.0 二、SPI 转 CAN 接口 SPI 转 CAN 模块采用的是 mcp2515 芯片,linux4.1.15 内核版本,默认没有配置此芯片的驱动 1、添加 mcp2515 驱动 在配置文件 imx6ull_defconfig(arch/arm/configs/imx6ull_defconfig)文件中设置 CONFIG_CAN_MCP251X=y 2、配置设备树 在设备树根节点下添加 clocks 节点 3、参考应用笔记中的“SPI 接口”,添加 ecspi2,并将其中的 spidev 设备改为 can0:mcp2515 添加 pinctrl_ecspi2、pinctrl_ecspi2_cs 和 pinctrl_can 配置 4、把之前的 csi 功能关闭,避免引脚复用冲突 5、把原生的 flexcan1 和 flexcan2 屏蔽掉 6、重新编译内核和设备树,重新烧写。 7、此 ecspi2 驱动加载成功后,cat /sys/bus/spi/devices/spi1.0/modalias 会出现 spi:mcp2515 8、ifconfig 查看会有 can0 节点。可以参考“用户使用手册”FlexCAN 设备章节进行测试
  • 2022-10-10 11:53
    3 次阅读|
    0 个评论
    “印章”给企业造成的痛点有两点。首先是风险,因为没有相应的制度,印章的管理都是依赖人为,因此对印章的使用是不可控的,或是使用记录丢失,或是因为他人偷盖、偷制印章而造成一些经济损失、法律纠纷;其次是成本,全国政府加企业的手中共有过亿枚印章,而在传统模式中,仅是印章的管理就要投入大量的人力,再加上其中的多个审批流程,由此带来的是过高的人力成本和过低的工作效率,这对于企业而言是不可取的。 终端设备+后台管理平台,让企业知悉每一枚印章的每一次使用细节,且能够简化流程。 基于FETMX6UL - C核心板 实现印控台的 方案 1、USB或者串口 指纹模块:用于录入指纹、指纹验证获取权限; 2、液晶屏:7.0 寸电容触摸屏; 3、红外发射器:发射红外线,控制用印宝在设定的范围内盖章; 4、USB口:摄像头:USB 摄像头用于对盖章后文件拍照,最大可拍 A3 纸; 5、锂电池充放电管理 电路 ; 6、4G、网口、wifi 适用于不同应用场景,上传数据到云平台; 7、蓝牙:与用印宝通信。 相关产品
  • 热度 12
    2022-1-7 10:52
    1715 次阅读|
    0 个评论
    B y Toradex 胡珊逢 Colibri iMX6ULL 是 Toradex 面向低成本设备推出的 Arm 计算机模块。该产品没有音频编解码器,无法直接输出模拟音频信号。本文将介绍如何使用模块的数字音频 I2S 接口扩展 MAX98357A , 包括如何配置 device tree 和时钟。 在 Colibri iMX6ULL 模块上的 i.MX 6ULL SoC 通过 synchronous audio interfaces ( SAI ) 接口提供数字音频接口 , 可以支持 AC97 或者 I2S 以连接外部音频编解码器。 MAX98357A 是一款易于使用的音频解码器,片上带有 D 类功放。无需 I2C 配置和外部 MCLK 时钟,进一步简化电路设计。接下来我们使用 Colibri iMX6ULL 搭配 Colibri Evaluation Board , 安装 Linux BSP 5.4 为例进行说明。 Colibri iMX6ULL 总共有三个 SAI 接口 , 这里使用 SAI2 连接 MAX98357A 。 根据上面的连接关系 , 对应修改 device tree 。在 imx6ull-colibri-eval-v3.dtsi 中首先增加一个 codec_ext 节点。 --------------------------------------------- codec_ext: max98357a@0 { compatible = "maxim,max98357a"; #sound-dai-cells = ; }; --------------------------------------------- 然后再添加一个 simple audio card 的节点 sound 。其中的 sound-dai 引用了上面的定义的 codec_ext 。 --------------------------------------------- sound { compatible = "simple-audio-card"; status = "okay"; simple-audio-card,name = "max98357a"; simple-audio-card,format = "i2s"; simple-audio-card,bitclock-master = ; simple-audio-card,frame-master = ; simple-audio-card,codec { sound-dai = ; }; dailink_master_cpu: simple-audio-card,cpu { sound-dai = ; }; }; --------------------------------------------- 上面的 sound 节点中使用了 sai2 , 因此接下来需要对 sai2 进行初始化。 --------------------------------------------- &sai2 { pinctrl-names = "default"; pinctrl-0 = ; assigned-clocks = , ; assigned-clock-parents = ; assigned-clock-rates = , ; fsl,sai-asynchronous; /*fsl,sai-mclk-direction-output;*/ status = "okay"; }; --------------------------------------------- 这里有几个关键的参数。 pinctrl_sai2 配置了引脚复用关系。对于 MAX98357A 实际上只需要前面三个引脚 , 如前面表格中列出的连接关系。 MX6UL_PAD_JTAG_TMS__SAI2_MCLK 和 MX6UL_PAD_JTAG_TMS__CCM_CLKO1 为了方便测试相关时钟信号。而这两个其实是同一个引脚,只是复用功能选择不同。 sound 节点中 fsl,sai-mclk-direction-output; 参数同样也是为了测试 SAI 的 MCLK 输出 , 配合 MX6UL_PAD_JTAG_TMS__SAI2_MCLK 输出 SAI MCLK , 但该信号并不用于 MAX98357A 。 --------------------------------------------- pinctrl_sai2: sai2grp { fsl,pins = < MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x1F089 MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x17088 MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x11088 /*MX6UL_PAD_JTAG_TMS__SAI2_MCLK 0x17088*/ MX6UL_PAD_JTAG_TMS__CCM_CLKO1 0x17088 ; }; }; --------------------------------------------- sound 节点中还有三个重要属性 , assigned-clocks , assigned-clock-parents 和 assigned-clock-rates 。在介绍这些属性前 , 我们简单了解下 iMX6ULL 的 Clock Controller Module ( CCM ) 。 CCM 负责产生和控制 iMX6ULL 上每个模块运行所需的时钟信号,包括从 Arm CPU 核心到各种外设如 USB 、 Audio 、网络等。由于每个模块需要的时钟各不相同,从高频到低频,因此 CCM 内部有多个 PLL 以及分频器提供多种频率的时钟信号。对于本次使用的 SAI 模块 , 根据 iMX6ULL 芯片手册 Figure 18-2. Clock Tree - Part 1 , 其时钟关系如下。 SAI2_CLK_ROOT 通过 MUX 可以选择三个来源 , 分别是 PLL3 , PLL4 , PLL5 。中间会有多个不同位数的分频器,将 PLL 输出较高的时钟逐级降为较低的频率。这些分频器并不需要手动设置, CCM 驱动会根据期望输出的频率自动计算合适的分频比例。 SAI2_CLK_ROOT 最终为 SAI2 模块提供运行时钟信号。在 SAI 内部 , 时钟信号经过内部的分频器后产生 I2S 的 bit block 以及帧同步信号 sync 。 对于音频文件,可以计算出所需的 bit clock 。例如对于一个双通道, 16bit , 48K 采样率的音频文件, bit clock = 16x2x48000 = 1536000 。这个数值是我们所需的最终目标时钟。根据上面的图示 , bit clock 源自于 PLL4 。根据 iMX6ULL 芯片手册 18.5.1.3.4 Audio/video PLL 章节 , 该 PLL 的频率范围从 650MHz 到 1.3GHz 。以 1536000 为基数,取其整数 512 倍,得到 786432000 。即 786432000 经过总共 512 倍分频后可以产生 1536000 bit clock 信号。这时我们再回顾 sai2 节点中的一些时钟属性。 --------------------------------------------- assigned-clocks = , ; assigned-clock-parents = ; assigned-clock-rates = , ; --------------------------------------------- IMX6UL_CLK_SAI2_SEL 设置的 CCM_CSCMR1 寄存器中的 SAI2_CLK_SEL 位。这里设置为 2, 选择 PLL4 作为时钟源。 IMX6UL_CLK_PLL4_AUDIO_DIV 为 PLL4 分频后的时钟,设置为 19660800 ,这个数值是 1536000 的 24 倍。而 PLL4 在分频前为 786432000 , 这是 IMX6UL_CLK_PLL4_AUDIO_DIV 的 4 倍 , 在其 650MHz 到 1.3GHz 的频率范围内。 完成上面 device tree 修改后 , 重新编译 , 并更新到 Colibri iMX6ULL 。下面命令可以直接在模块上覆盖原来的 dtb 文件。 --------------------------------------------- root@colibri-imx6ull:~# ubiupdatevol /dev/ubi0_1 imx6ull-colibri-eval-v3.dtb --------------------------------------------- 重启后可以看到 max98357a 音频设备。 --------------------------------------------- root@colibri-imx6ull:~# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: max98357a , device 0: 202c000.sai-HiFi HiFi-0 fsl-sai 202c000.sai: clk_rate 0 Hz, mclk_clk id 0 fsl-sai 202c000.sai: clk_rate 24576000 Hz, mclk_clk id 1 fsl-sai 202c000.sai: ratio 16 for freq 1536000Hz based on clock 24576000Hz fsl-sai 202c000.sai: best fit: clock id=1, ratio=16, deviation=0 --------------------------------------------- 1536000Hz 的 bit clock 是通过 24576000Hz 进行 16 分频得到的。这是因为在 SAI 内部还有一个分频器可以对 sai2_clk_root 再次分频从而输出合适的 bit clock 。 I2S2_TCR2 寄存器 ( 地址 0x0202c008 ) 的最后 7 位 DIV 可以配置该分频器。分频数值为 (DIV + 1)x2 。读取该寄存器, DIV 值为 7, 进行 16 分频。对应上面 SAI 驱动调试日志的 “ratio 16 for freq 1536000Hz based on clock 24576000Hz” 。 --------------------------------------------- root@colibri-imx6ull:~# devmem2 0x0202c008 w /dev/mem opened. Memory mapped at address 0x76f4b000. Read at address 0x0202C008 (0x76f4b008): 0x07000007 --------------------------------------------- 最后接上 MAX98357A 和扬声器就可以听到播放的音频文件。 https://v.youku.com/v_show/id_XNTgzMjUxMTg2NA==.html 总结 通过扩展 MAX98357A 我们介绍了 iMX6 ULL SoC 音频驱动 SAI 的工作原理,以及如何配置 device tree 和测试方法。借鉴该方法,用户也可以扩展其他基于 I2S 的音频编解码器。
  • 热度 2
    2020-8-26 14:50
    2150 次阅读|
    0 个评论
    2020年突如起来的新冠肺炎 疫情 使"核酸检测"进入了公众的视野,核酸检测从工艺上来说包括核酸提取、扩增与检测。核酸自动提取仪又名核酸自动纯化仪(Nucleic Acid Extraction S ystem)是应用配套的核酸提取试剂来自动完成样本核酸提取工作的仪器。广泛应用在疾病控制中心、临床疾病诊断、输血安全、法医学鉴定、环境微生物检测、食品安全检测、畜牧业和分子生物学研究等多种领域。 全自动核酸提取系统,是 一类应用配套的核酸提取试剂来自动化完成样本核酸快速提取过程 的仪器。根据其提取方法的不同,可分为 离心柱法核酸提取仪 和 磁珠法核酸提取仪 。离心柱法全自动核酸提取系统主要将离心机(负压装置)、自动移液装置和自动抓取器等功能组件集成于一体。其实现原理是:让核酸吸附到离心柱硅胶膜上,经过洗涤液去除杂质后,再从硅胶模上洗脱核酸。 离心柱法全自动核酸提取原理图 磁珠法核酸提取系统是将吸附在磁珠上的核酸,通过磁分离装置提取出来。根据分离装置的不同,可进一步分为移液式和磁棒式。移液式是通过自动移液装置完成加液裂解、样品混匀、洗涤洗脱、废液移除等步骤,吸附有核酸的磁珠被磁分离装置固定在样品管内,从而实现核酸分离。由于在移除液体时难免残留洗涤液,其中的盐和乙醇可能会影响后续洗脱效率和 P C R反应体系。 磁珠法核酸提取原理图 核酸提取仪需求 1. 仪器的安装环境:正常的大气压(海拔高度应该低于3000m)、温度20-35℃、典型使用温度25℃、相对湿度10%-80%、畅通流入的空气为35℃或以下; 2. 避免将仪器放置在靠近热源的地方,如电暖炉;同时为防止电子元件的短路,应避免水或者其他液体溅入其中; 3. 进风口和排风口均位于仪器背面,同时避免灰尘或纤维在进风口聚集,保持风道的畅通; 4. 核酸提取仪离其他竖直面至少10cm; 5. 仪器接地:为了避免触电事故,仪器的输入电源线必须接地; 6. 远离带电 电路 :操作人员不得擅自拆解仪器,更换元件或进行机内调节必须有持证的专业维修人员完成,不要在接通电源的情况下更换元件。 FETMX6ULL -S 核心板方案 推荐 在新冠病毒肺炎疫情中,核酸检测功不可没, 飞凌嵌入式 为核酸提取仪提供 Cortex - A7 平台显控 方案 ------ FETMX6UL L-S工业级 核心板 。产品采用 NXP Cortex-A7 800MHz主频处理器,通过严格的 EMC 和高低温测试,确保核心板在严酷的环境下保证硬件与系统的稳定性。
相关资源
  • 所需E币: 1
    时间: 2021-9-15 18:48
    大小: 1.07MB
    上传者: Argent
    FPGA是一个技术密集型的行业,没有坚实的技术功底,很难形成有竞争力的产品。从技术上来看FPGA未来的发展有广阔的空间,嵌入式开发需要了解不同领域的产品工作原理,包括快速读懂数据手册,搜集了部分数据手册,第三方教育机构的指导性文档,希望对您有所帮助。
  • 所需E币: 0
    时间: 2020-9-26 03:21
    大小: 3.81MB
    上传者: LGWU1995
    NXPi.MX6ULi.MX6ULL硬件设计注意事项
  • 所需E币: 0
    时间: 2020-9-26 03:21
    大小: 1.44MB
    上传者: LGWU1995
    NXPi.MX6ULL设计资源指南