
NXP/TI
文章平均质量分 87
王二车
这个作者很懒,什么都没留下…
展开
-
IMX8QXP SPI CS片选连续传输模式
在开发项目中,换了一个spi安全芯片,发现不能进行通信,查看spi信号波形,时钟,发送数据,片选都是正常的,但没有回复数据。安全芯片技术正常通过查看CS片选波形信号,提出CS片选信号不能在每个字节数据传输完成后拉高,需要整个数据传输完成后才能拉高。查看之前的spi驱动,是安全芯片模块厂商提供的,说明spi驱动有改动过,没有使用IMX8QXP的LPSPI驱动。原创 2023-07-01 17:37:13 · 1107 阅读 · 0 评论 -
spi cpol极性和cpha相位
在spi通信中,需要设置cpol极性和cpha相位,保持master和slave两端时钟一致,相互匹配才能正常通信。主要原因是spi没有握手信号不可靠传输。 参考文章:高手带你理解SPI中的极性CPOL和相位CPHA名词解释CKPOL (Clock Polarity) = CPOL = POL = Polarity = (时钟)极性CKPHA (Clock Phase) = CPHA = PHA = Phase = (时钟)相位...原创 2022-03-30 16:30:24 · 4379 阅读 · 0 评论 -
imx8mm偶现启动内核失败问题分析报告
转载自前同事zhouyuanjie。问题环境project:uboxopenwrt:v18.06.4kernel:4.14.98uboot:2018.03问题现象在openwrt编译ubox镜像后,使用镜像启动偶现镜像卡在“Starting kernel ...”阶段。ubox镜像是通过mkimage工具做的FIT镜像,配置如下:问题分析分析一:因未打包的源文件在uboot中使用的是booti命令启动,FIT镜像需...原创 2021-12-21 09:03:03 · 1475 阅读 · 0 评论 -
IMX8MM IMX8QXP芯片配置GPIO方向和数据
复用查看文档《IMX8MMRM.pdf》第8章节:Chip IO and Pinmux,以设置GPIO1_06为例。复用具体设置可查看:8.2.5.12 Pad Mux Register (IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO06)在uboot中设置:mw 0x30330040 0x0,设置为GPIO模式。方向查看章节:8.3.3 GPIO Memory Map/Register Definition,重点看GPIO1的DIR方向信息。设置原创 2020-09-17 10:49:39 · 4463 阅读 · 0 评论 -
vSE1901A安全芯片调试
vSE1901A安全芯片调试,使用通用的spi协议接口。电路图DTS配置&iomuxc { pinctrl-names = "default"; imx8mm-evk { pinctrl_ecspi2: ecspi2grp { fsl,pins = < MX8MM_IOMUX...原创 2019-11-22 20:03:19 · 1475 阅读 · 3 评论 -
i.MX 8M Mini Cortex-M4 WDOG看门狗
手册《IMX8MMRM.pdf》 - 6.6 Watchdog Timer (WDOG)代码SDK_2.5.0_EVK-MIMX8MM/boards/evkmimx8mm/driver_examples/wdog/wdog.cSDK_2.5.0_EVK-MIMX8MM/devices/MIMX8MM6/drivers/fsl_wdog.cSDK_2.5.0_EVK-MIMX8M...原创 2020-01-07 15:30:38 · 1819 阅读 · 0 评论 -
i.MX 8M Mini rpmsg_lite_str_echo_rtos
A53与M4核通过共享内存方式通信,使用rpmsg机制传递数据,做到系统间的通信;驱动drivers/rpmsg/imx_rpmsg_tty.c static struct rpmsg_device_id rpmsg_driver_tty_id_table[] = { { .name = "rpmsg-virtual-tty-channel-1" }, { .name = "r...原创 2019-12-25 14:40:19 · 1717 阅读 · 3 评论 -
i.MX 8M Mini Cortex-M4程序编译
下载官方SDK SDK_2.5.0_EVK-MIMX8MM:https://mcuxpresso.nxp.com/en/dashboard?uvid=172537,需要登陆 编译参考手册:《docs/Getting Started with MCUXpresso SDK for i.MX 8M Mini.pdf》-《5 Run a demo using ARM® GCC》安装编...原创 2019-12-25 14:31:41 · 1801 阅读 · 5 评论 -
i.MX 8M Mini Cortex-M4 Memory Map
imx8mm在使用M4核测试时,需要使用对应的内存映射,下面测试一些简单的测试项;内存映射由于imx8mm默认是从A53核启动,所以要在M4核跑程序的话,需要把程序加载到A53核对应的映射地址上面,官方对内存地址的要求,需要在TCM or DRAM上面;A53的Memory Map:加载程序时的测试用例:DRAM地址可以从0x40000000开始,dcache ...原创 2019-12-25 14:24:46 · 1056 阅读 · 0 评论 -
Linux新版OpenWrt自动编译加载ko
旧版的OpenWrt系统下,编译出的ko模块,需要自己手写启动脚本加载ko,这种方法比较繁琐,好在新版的OpenWrt能实现自动加载ko操作。需求把PCIE的驱动编译成ko自动加载配置package/kernel/linux/modules/usb.mkXHCI_MODULES := xhci-hcd xhci-pci xhci-plat-hcdifdef CONFIG_T...原创 2019-11-22 19:59:06 · 2996 阅读 · 0 评论 -
Linux GPIO复用问题导致电平拉高拉低异常
在调试过程中,发现使用export出GPIO口拉高拉低电平没有效果,分析原因如下:测试GPIO1_IO15,使用export出GPIO口拉高拉低:echo 15 > /sys/class/gpio/export;cd /sys/class/gpio/gpio15/;echo out > direction,默认0低电平echo 1 > value,输出拉高,有效...原创 2019-11-21 10:08:18 · 3463 阅读 · 6 评论 -
5G模块M.2座子管脚和封装分析
通过对M.2封装座了解,然后分析了《PCIe-M.2-接口规范-V1.0-接口》定义,来分析一下M.2座子在网络通信模块中的应用。下面主要分析WWAN模块,其他模块类型需要自己文档。M.2连接器KEY类型大全WWAN模块的M.2使用的是B-KEY。WWAN模块M.2宽度是标准的,长度是55多,应该是做了扩展;WWAN模块管脚定义WWAN模块管脚定义有三种总线模式:S...原创 2019-11-15 17:09:41 · 12785 阅读 · 2 评论 -
Linux驱动PCIE转USB 3.0调试经验
PCIE转USB 3.0芯片μPD720202K8-701-BAA-A芯片,一个PCIE口转2个USB 3.0,主要用于USB口的扩展;硬件电路电路图电路设计注意事项RXD需要改为0欧电阻,不要ESD器件,OCI1B需要拉高;驱动代码request_firmware内核配置,固件需要拷贝到文件系统的/lib/firmware/;Device Drivers......原创 2019-11-12 22:55:25 · 11960 阅读 · 20 评论 -
i.MX 8M Mini sai_low_power_audio
NXP提供sai_low_power_audio程序,主要功能:A53核负责解码音乐文件然后放入内存中,最后通过SRTM(Simplified Real Time Messaging)通知M4核去内存中获取数据到TCM中,使用SDMA方式把数据传输到SAI和音频解码芯片进行播放。编译安装编译链和SDK:见上一篇imx8mm hello world编译进入目录:SDK_2.5.0_EV...原创 2019-05-22 15:01:32 · 1719 阅读 · 4 评论 -
buildroot-编译imx7d平台
1、源码下载: 第一种方式:git clone git://git.busybox.net/buildroot, git下载最新版本;This should create a buildroot directory with all the latest sources (after a while). 第二种方式:https://buildroot.org/dow...原创 2018-10-21 21:08:01 · 459 阅读 · 0 评论 -
EMMC丢失文件系统数据分析
问题情况 开发板在测试过程中出现多次(目前发现6次)重启后EMMC分区挂载失败问题,有些2个分区数据都丢失,有些只有1个分区数据丢失。偶现2次在不断电测试过程中出现了EMMC分区文件系统数据全部消失的情况。问题现象 出现问题后启动挂载分区失败,查看分区是存在的,如下图所示: 手动进行挂载,挂载失败: 尝试进行修复,修复失败...原创 2019-01-24 10:09:06 · 10142 阅读 · 4 评论 -
IMX6UL存储介质分析
支持种类NAND,eMMC 4.5 1/4/8bit,microSD2 4bit,QSPI 4bit,SD1 4bit。DEMO板电路图 拨码开关DTS配置 SD1,单独的IO脚,没有与谁复用,不参与启动选项。 QSPImicroSD2EMMCNAND,与QSPI,EMMC,microSD引脚复用。...原创 2019-01-08 16:17:56 · 582 阅读 · 0 评论 -
IMX6UL eMMC基础认识
eMMC基本认识https://blog.youkuaiyun.com/terryjourneys/article/details/68488925IMX6UL eMMC配置官方EVK demo板使用MTFC8GACAAAM型号:我们使用的是MTFC8GACAANA-4M IT,参数配置基本一致。由于eMMC的IO脚与NAND、MicroSD复用,在使用后面两个存储介质时需要关闭eMM...原创 2019-01-14 14:50:38 · 2212 阅读 · 0 评论 -
IMX6UL eMMC初始化流程
环境在uboot中分析emmc初始化流程代码,emmc在uboot中方便添加命令和打印调试,uboot版本:2017.03开机打印uboot启动打印 U-Boot 2017.03-g101318f (Jan 09 2019 - 17:37:10 +0800) CPU: Freescale i.MX6UL rev1.2 696 MHz (running at 396 MHz...原创 2019-01-14 15:04:01 · 3631 阅读 · 2 评论 -
IMX6UL eMMC加锁和解锁代码分析与实现
背景最近在使用eMMC作为外部存储设备过程中,出现eMMC两个分区数据全部被清空,文件系统数据和用户数据全部为0 ,在网上看到一篇文件说对eMMC加锁后强制解锁会清除用户数据,这样达到的效果与我遇到的类似,下面实现加锁和解锁代码进行测试。环境在uboot中添加对emmc命令加解锁测试比较方便,uboot版本2017.03命令对emmc加解锁主要是用CMD42命令进行操作,发送的...原创 2019-01-14 16:04:54 · 4667 阅读 · 20 评论 -
IMX6UL eMMC命令分析
CMD0 RESET发送CMD0 eMMC会进入自行复位busy状态后进入idle状态 #define MMC_CMD_GO_IDLE_STATE 0 struct mmc_cmd cmd; int err; udelay(1000); cmd.cmdidx = MMC_CMD_GO_IDLE_STATE; cmd.cmdarg = 0; cmd.resp...原创 2019-01-15 21:06:19 · 2065 阅读 · 0 评论 -
emmc设备节点创建时间太迟原因
背景emmc设备节点创建时间太晚导致启动挂载emmc脚本中判断设备节点不存在挂载失败,后面被hotplug的tf_mount挂载。分析1、查看emmc的VCCQ上电时间,经过测量发现上电开机时就被单片机拉上电,这里正常没有问题。2、查看时间点信息(单位:秒): 驱动加载时间:11:37:03 emmc_mount挂载时间:11:37:09 [没有节点] 设备节点创建时...原创 2019-01-28 09:32:37 · 1014 阅读 · 0 评论 -
emmc没有mmcblk boot0和boot1分区原因
背景在调试EC20开发板时,外挂在mmc0的emmc没有识别出mmcblk boot0和boot1分区,现查询原因。分析查看datasheet中,默认是支持2个boot分区的EXT_CSD Register 开机打印代码mmc_blk_alloc_parts card->nr_parts == 1【所以只有rpmb】 mmc_blk_alloc_...原创 2019-01-23 15:24:30 · 8838 阅读 · 0 评论 -
i.MX 8M Mini Cortex-M4 Hello World
imx8mm除了支持4个Cortex-A53还带1个Cortex-M4核,本文需要在Cortex-M4核运行裸机程序或者系统。运行官方bin文件 u-boot=> tftp 0x7e0000 imx8mm_m4_TCM_hello_world.bin Using ethernet@30be0000 device TFTP from server 192.168.1.99...原创 2019-05-16 17:45:05 · 2595 阅读 · 0 评论 -
uboot-汇编实现点亮LED灯
背景 有时候在调试新项目开发板,上电启动后串口完全没有打印信息,开发板没有一点信息反馈,这时候我们需要在uboot代码的stage1阶段汇编代码中实现LED点亮来测试CPU是否加载了启动代码,以此来判断整个CPU和开发板的状态。实现 整体实现流程:查看LED灯GPIO口、获取GPIO口基地址、获取方向和数据寄存器地址、写汇编代码进行测试;NXP IMX7D 查...原创 2018-10-21 21:01:32 · 2607 阅读 · 0 评论