freetech

kinetis下的NRF24L01+通信例程

有了前面的SPI例程,我们再来看一个实际应用SPI的例子。NRF24L01是工作在2.4GHz公共频段的射频芯片,其接口是SPI的,虽然kinetis的SPI有自动片选功能,但每发完一串比特流(本例中是1字节)片选信号要变成一次无效电平,NRF24L01要求同一命令和数据中间片选信号要一直有

kinetis的SPI例程

kinetis有多达3个SPI接口,收发各带4个16位的FIFO,可支持自动片选。可工作于主、从模式。SPI是同步串口,发一个字节(或字)时也收一个字节(或字),其通信通过4种功能的线来完成:SCK-时针线,用于主设备向从设备提供时钟。SIN-串行数据输入SOUT-串行数据输出PCSn-片

kinetis的UART串口(DMA模式)

前面的例子中,串口的收发采用中断模式,虽然在一定程度上解放了CPU,但每个字节都要中断一次,在115200波特率下,约8.7uS就要中断一次,CPU仍然很累。直接存储器访问(DMA)方式可以进一步解放CPU,本例采用DAM方式实现每次100字节数据发送与接收。DMA处理发送是最有效

kinetis的UART串口(中断模式)

前面的例子中,串口的收发采用查询模式,程序要不断查询串口状态,这样不利于将CPU解放出来做其它事情。本例采用中断方式实现数据发送与接收。要使用中断方式,需做下面3件事情:1、UART5_C2寄存器的接收中断使能,发送中断使能。2、NVICISER寄存器使能UART对应中断。3

kinetis的触摸按键TSI

使用硬件触摸感应接口之前,我们先看看软件通过GPIO实现触摸的方法:如上图,GPIO接个上接电阻(可用内部的或外部的),PCB上画个触摸盘即可。触摸盘等效于一个对地的电容,手指也等效于一个对地的电容,手指按上时相当于2电容并联,不按时只有一个电容。程序先向IO口写

kinetis的DAC例程

kinetis内置12位DAC,可实现模拟量输出。本例用DAC实现1个锯齿波输出。在使用DAC之前要先配置系统集成模块,打开DAC的时钟。下面介绍相关寄存器:DACx_DATnH-数据寄存器高字节,仅低4位有效。DACx_DATnL-数据寄存器低字节。DACx_C0-控制寄存器0。DACx_C1-控制寄存器1。D

kinetis的RS485例程

RS485是半双工通信协议,是个UART经RS485电平转换芯片后用差分信号实现远距离传输。RS485电平转换芯片有个发送使能引脚,为了获得发送权发送数据前要将该引脚设成使能状态(本例中是高电平),发送完毕再将该引脚设成低电平以释放总线。下图中第1路(黄线)是数据引脚,

kinetis的模拟比较器例程

模拟比较器(Comparator)模块提供了一个电路,可以比较两路模拟电压。在过电压、过电流、欠压判断电路中经常用到。kinetis内置了模拟比较器,且为方便应用增加了些增强功能:1、内置6位DAC:可以用DAC产生一个比较阀值而省去一些外部分压电阻。从1/64参考电压到参考电

kinetis的UART串口(查询模式)

kinetis有多达6个UART串口,可支持MODEM、红外、ISO7816等操作模式。UART寄存器有很多,但基本应用只关注其中的几个就够了。下面介绍常用寄存器:UARTx_BDH:UARTx_BDL-低13位是波特率发生器,UARTx_BDH的第6位是RXD输入引脚有效边沿中断使能位,为1时使能;UARTx_BD

kinetis的时钟分配——32.768石英晶体产生96MHz系统时钟

kinetis有4种振荡源,分别是4MHz内部RC振荡器、32kHz内部RC振荡器、外部主振荡器、外部RTC时钟振荡器。工作时又需要核时钟/系统时钟、总线时钟、FlexBus总线时钟、FLASH时钟、USB时钟等多种不同频率的时钟。这些时钟是通过MCG模块选择4种振荡源经或不经过FLL或PLL输出的

kinetisADC例程

kinetis内置16位逐次逼近ADC,下面通过一个例子说明其用法。在使用FTM之前要先配置系统集成模块,打开ADC的时钟。下面介绍相关寄存器:ADCx_SC1n-状态和控制寄存器1,0~4位是通道选择位,第5位是差分/单端选择位,第6位是中断允许位,第7位是转换完成标志位。AD

kinetis的RTC报警中断例程

实时时钟是个32位秒计数器,一次溢出时间为4294967296秒=71582788分钟=1193046小时=49710天=1657月=138年>1世纪。一般我们只用其1个世纪以内,计的时年份的后2位。和其他时钟芯片一样,百年虫问题依然存在(目前笔者还未发现不存在百年虫问题的时钟芯片)。下面介绍

低功耗定时器LPTMR

低功耗定时器可以在各种低功耗模式下工作,并且可以选择在中断时唤醒MCU。下面介绍相关寄存器:LPTMRx_CSR-低功耗定时器控制状态寄存器。第0位定时器使能,为0时禁止并且复位内部逻辑,为1时开启定时器。第1位是定时器模式选择,为0时工作在时间计数器模式;为1时工

kinetis的PIT例程——跑马灯

FTM虽然功能较多,但因是16位定时器,故不能做长周期定时,PIT是个32位定时器,可实现比FTM周期长很多的定时,且可工作的菊花链模式,相当于一个128位定时器,可以实现相当长时间的定时。需要注意的是PIT是个递减计数器,下面介绍相关寄存器:PIT_MCR-定时器模块控制寄

kinetis的FTM例程——联合PWM

在电机控制、逆变电源等应用中常会用到半桥,半桥的上、下管PWM需要相同或互补的PWM来驱动。PWM的联合模式刚好适合此类应用。下面介绍相关寄存器:FTMx_COMBINE-联合模式寄存器,每8位控制一组PWM,要使PWM工作在联合模式,相应的COMBINE要置1。需要说明的是当工作在