![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ARM(IMX6U)裸机
文章平均质量分 80
Tree-gg
半仙卖苹果
展开
-
21_I.MX6ULL_PWM背光实验
从采样寄存器PWMx_PWMSAR读取一次数据, FIFO里面的数据就会减一,每产生一个周期的PWM信号, FIFO里面的数据就会减一,相当于被用掉了。设置为0的时候表示FIFO空余位置大于等于1的时候FIFO为空:设置为1的时候表示FIFO空余位置大于等于2的时候FIFO为空:设置为2的时候表示FIFO空余位置大于等于3的时候FIFO 为空。WAITEN(bit23):此位用来设置等待模式下PWM是否工作,为0的话表示在等待模式下PWM继续工作,为1的话表示等待模式下关闭PWM。原创 2023-04-14 21:20:20 · 794 阅读 · 0 评论 -
20_I.MX6ULL_多点电容触摸ICgt9147实验
多点电容触摸简介触摸屏很早就有了,一开始是电阻触摸屏,电阻触摸屏只能单点触摸,在以前的学习机、功能机时代被广泛使用。2007年1月9日苹果发布了划时代的第一代Iphone也就是 Iphone2G, Iphone 2G上使用了多点电容触摸屏,而当时的手机基本都是使用的电阻触摸屏。电容触摸屏优秀的触摸品质和手感瞬间征服了消费者带来了手机触摸屏的大变革后面新出的手机也都采用了多点电容触摸屏。和电阻触摸屏相比电容触摸屏最大的优点是支持多点触摸(后面的电阻屏也支持多点触摸但是为时已晚。原创 2023-04-12 23:24:12 · 1301 阅读 · 0 评论 -
19_I.MX6ULL_SPI实验
SPI简介同I2C一样SPI是很常用的通信接口也可以通过SPI来连接众多的传感器。相比I2C接口, SPI接口的通信速度很快, I2C最多400KHz,但是SPI可以到达几十MHz。I.MX6U也有4个SPI接口可以通过这4个SPI接口来连接一些 SPI外设。I2C是串行通信的一种只需要两根线就可以完成主机和从机之间的通信,但是I2C的速度最高只能到400KHz,如果对于访问速度要求比价高的话I2C就不适合了。原创 2023-04-10 23:33:39 · 663 阅读 · 0 评论 -
18_I.MX6ULL_I2C实验
寄存器I2Cx_IFDR也只有IC(bit5:0)这个位,用来设置I2C的波特率, I2C的时钟源可以选择IPG_CLK_ROOT=66MHz,通过设置IC位既可以得到想要的I2C波特率。这是一个8位的数据,其中高7位是设备地址,最后1位是读写位,为1的话表示这是一个读操作。寄存器就是I2Cx_I2DR,这是I2C的数据寄存器,此寄存器只有低8位有效,当要发送数据的时候将要发送的数据写入到此寄存器。MTX(bit4):传输方向选择位,用来设置是进行发送还是接收,为0的时候是接收,为1的时候是发送。原创 2023-04-09 18:33:04 · 566 阅读 · 0 评论 -
17_I.MX6ULL_内部RTC
包括一个安全的实时计数器(RTC)、一个单调计数器(monotonic counter)和一些通用的寄存器,使用实时计数器(RTC).SNVS里面的外设在芯片掉电以后由电池供电继续运行。因此在需要记录时间的场合就需要实时时钟,可以使用专用的实时时钟芯片来完成此功能,但是现在大多数的MCU或者MPU内部就已经自带了实时时钟外设模块。系统主电源断电以后SNVS_HP也会断电,但是在后备电源支持下, SNVS_LP是不会断电的,而且SNVS_LP是和芯片复位隔离开的。所以使用的是SNVS_LP内部的SRTC。原创 2023-04-08 23:33:51 · 525 阅读 · 0 评论 -
17_I.MX6ULL_LCD实验源码
【代码】17_I.MX6ULL_LCD实验源码。原创 2023-04-07 22:55:56 · 165 阅读 · 0 评论 -
16_I.MX6ULL_eLCDIF接口
eLCDIF接口LCDIF是I.MX6U自带的液晶屏幕接口用于连接RGB LCD接口的屏幕eLCDIF接口特性如下1.支持RGB LCD的DE模式。2.支持VSYNC模式以实现高速数据传输。3.支持ITU-R BT.656格式的4:2:2的YCbCr 数字视频并且将其转换为模拟TV信号。4.支持8/16/18/24/32位LCD。eLCDIF支持三种接口MPU 接口、VSYNC 接口和DOTCLK接口这三种接口区别如下1.MPU 接口。原创 2023-04-06 22:23:51 · 581 阅读 · 0 评论 -
15_I.MX6ULL_LCD显示原理
这就要从显示器的“祖先” CRT显示器开始说起了, CRT显示器就是以前很常见的那种大屁股显示器,在2019年应该很少见了,如果在农村应该还是可以见到的。这四个时间是LCD重要的时间参数,后面编写LCD驱动的时候要用到的,至于这四个时间参数具体值是多少,那要需要去查看所使用的LCD数据手册了。那么在显示的过程中就是用一根“笔”在不同的像素点画上不同的颜色。比如我们常用的24寸显示器基本都是1080P的,而我们现在使用的5寸的手机基本也是1080P的,但是手机显示细腻程度就要比24寸的显示器要好很多!原创 2023-04-05 15:26:59 · 812 阅读 · 0 评论 -
14_I.MX6ULL_内存概念DDR3
这部分是SRAM的数据线,根据SRAM位宽的不同,数据线的数量要不同, 8位宽就有8根数据线, 16位宽就有16根数据线, 32位宽就有32根数据线。SDRAM芯片内部会分为多个BANK,SDRAM在读写完成以后,如果要对同一个BANK中的另一行进行寻址操作就必须将原来有效的行关闭,然后发送新的行/列地址,关闭现在工作的行,准备打开新行的操作就叫做预充电。因此这A0-A12包含了行地址和列地址。不同的SDRAM芯片,根据其位宽、容量等的不同,行列地址数是不同的,这个在SDRAM的数据手册里面会也清楚的。原创 2023-04-03 22:00:39 · 338 阅读 · 0 评论 -
13_I.MX6ULL串口UART实验
UART作为串口的一种,其工作原理也是将数据一位一位的进行传输,发送和接收各用一条线,因此通过UART接口与外界相连最少只需要三条线: TXD(发送)、RXD(接收)和GND(地线)。TXDC(bit3):发送完成标志位,为1的时候表明发送缓冲(TxFIFO)和移位寄存器为空,也就是发送完成,向TxFIFO写入数据此位就会自动清零。停止位:数据传输完成标志位,停止位的位数可以选择1位、1.5位或2位高电平,一般都选择1 位停止位。STOP(bit6):停止位数量,为0的话1位停止位,为1的话2位停止位。原创 2023-04-02 17:11:31 · 644 阅读 · 0 评论 -
12_I.MX6ULL_GPT定时器实现高精度delay实验
GPT定时器全称为General Purpose Timer.GPT定时器是一个32位向上定时器(也就是从0X00000000开始向上递增计数), GPT定时器也可以跟一个值进行比较,当计数器值和这个值相等的话就发生比较事件,产生比较中断。设置GPT定时器首先设置GPT_CR寄存器的SWR(bit15)位来复位寄存器GPT复位完成以后设置寄存器GPTI_CR寄存器的CLKSRC(bit8:6)位,选择GPT的时钟源为ipg_clk。此位为1的时候如果关闭GPT定时器,计数器寄存器就会清零。原创 2023-04-01 17:51:45 · 333 阅读 · 0 评论 -
11_I.MX6ULL定时器按键消抖
定时器按键消抖简介定时器按键消抖简介其实就是在按键按下以后延时一段时间再去读取按键值,如果此时按键值还有效那就表示这是一次有效的按键,中间的延时就是消抖的。但是这有一个缺点,就是延时函数会浪费CPU性能,因为延时函数就是空跑。如果按键是用中断方式实现的,那就更不能在中断服务函数里面使用延时函数,因为中断服务函数最基本的要求就是快进快出!EPIT定时器,定时器设置好定时时间,然后CPU就可以做其他事情去了,定时时间到了以后就会触发中断,然后在中断中做相应的处理即可。原创 2023-04-01 14:53:27 · 248 阅读 · 0 评论 -
10_I.MX6ULL_EPIT定时器
set-and-forget模式: EPITx_CR(x=1, 2)寄存器的RLD位置1的时候EPIT工作在此模式下,在此模式下EPIT的计数器从加载寄存器EPITx_LR中获取初始值,不能直接向计数器寄存器写入数据。经过分频的时钟进入到EPIT内部,在EPIT内部有三个重要的寄存器:计数寄存器(EPIT_CNR)、加载寄存器(EPIT_LR)和比较寄存器(EPIT_CMPR),这三个寄存器都是32位的。EN(bit0): EPIT使能位,为0的时候关闭EPIT,为1的时候使能EPIT.原创 2023-03-31 22:23:40 · 492 阅读 · 0 评论 -
09_I.MX6ULL_GPIO中断实验
完整GPIO中断实验源码。原创 2023-03-29 23:13:38 · 148 阅读 · 0 评论 -
08_I.MX6ULL汇编编写中断向量表
使用汇编编写中断向量表,复位中断服务函数,以及IRQ中断服务函数。原创 2023-03-28 21:44:12 · 265 阅读 · 0 评论 -
07_I.MX6ULL_Cortex-A中断原理
中断使能。原创 2023-03-27 21:50:36 · 306 阅读 · 0 评论 -
06_I.MX6ULL主频时钟配置实验
正常情况下应该选择pll1_main_clk,但是如果要对pll1_main_clk(PLL1)的频率进行调整的话,比如我们要设置PLL1=1056MHz,此时就要先将plll_sw_clk切换到step_clk上。此处是一个选择器,选择pll1_sw_clk的时钟源,由寄存器CCM_CCSR的PLL1_SW_CLK_SEL位决定plll_sw_clk是选择pll1_main_clk还是step_clk。的话PERCLK_CLK_ROOT的时钟源就是IPG_CLK_ROOT=66MHz。原创 2023-03-26 18:20:13 · 522 阅读 · 0 评论 -
05_I.MX6ULL工程管理与蜂鸣器实验
蜂鸣器常用于计算机、打印机、报警器、电子玩具等电子产品中,常用的蜂鸣器有两种:有源蜂鸣器和无源蜂鸣器,这里的有“源”不是电源,而是震荡源,有源蜂鸣器内部带有震荡源,所以有源蜂鸣器只要通电就会叫。冒号后面的大括号里面可以填上要链接到“.text”这个段里面的所有文件, "*(.text)"中的“*”是通配符,表示所有输入文件的.text段都放到".text”中。20行SOBJS变量依赖03_obj/%.o文件下的.o文件,文件下面的.o文件又依赖于.s文件。8行是给变量赋值所有包含源文件.c.s文件路径。原创 2023-03-25 14:17:02 · 388 阅读 · 0 评论 -
04_I.MX6ULL搭建C语言环境
汇编源码。原创 2023-03-22 22:00:11 · 325 阅读 · 0 评论 -
03_I.MX6ULL启动方式
BOOT_MODE0为0的时候此模式使能,在此模式下,芯片会执行内部的boot ROM代码,这段boot ROM代码会进行硬件初始化(一部分外设),然后从boot设备(就是存放代码的设备、比如SD/EMMC、NAND)中将代码拷贝出来复制到指定的RAM中,一般是DDR。和DCD存放的位置,在纪录完成后寄存器都是默认值,是我们不想要,所以在去执行DCD达到我们自己想要初始化的代码,然后再去执行我们用户编写程序。这几个引脚看代码是存放什么类型的设备里面,读取完后去执行代码存储设备里面的代码,此时最开始的就是。原创 2023-03-20 22:37:00 · 474 阅读 · 0 评论 -
02_I.MX6ULL汇编LED驱动实验
对于Cortex-A芯片来讲大部分芯片在上电以后C语言环境还没准备好,以第一行程序肯定是汇编的至于要写多少汇编程序那就看你能在哪一步把C语言环境准备好。所谓的C语言环境就是保证C语言能够正常运行。C语言中的函数调用涉及到出栈入栈出栈入栈就要对堆栈进行操作所谓的堆栈其实就是一段内存这段内存比较特殊由SP指针访问SP指针指向栈顶。原创 2023-03-19 19:46:54 · 470 阅读 · 0 评论 -
01_I.MX6U芯片简介
ARM Cortex-A7内核可达900 MHz,128 KB L2缓存。并行24bit RGB LCD接口,可以支持1366*768分辨率。3.8/10/16位 并行摄像头传感器接口(CSI)。4. 2个MMC 4.5/SD 3.0/SDIO 接口5. 2个USB 2.0 OTG, HS/FS, Device or Host with PHY.6.音频接口3x 12S/SAI, S/PDIF Tx/Rx.7.2个IEEE802.3标准10/100Mbps以太网接口。原创 2023-03-16 21:37:31 · 1862 阅读 · 0 评论