寄存器shift后门怎么用

shift后门怎么用  时间:2021-04-04  阅读:()

臣翁咏吹仕文档下载免费文档下载http://www.
1mpi.
com/本文档下载自文档下载网,内容可能不完整,您可以点击以下网址继续阅读或下载:http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56FAQ_Kinetis常见问题与解答(第十四版)关于Kinetis常见问题与解答常见问题与解答目录常见问题与解答1目录.
1一KL系列FAQ8时钟系统8.
1KL25内部快速时钟是否为4MHz8调试相关8.
1FRDM-KL25Z板载OPENSDA支持板下KL系列芯片的调试吗8.
2OpenSDA接口坏了吗http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56.
.
.
.
.
.
.
8.
3KL2x系列芯片支持的仿真调试器9.
4KL2x系列芯片SWD连接9.
5OpenSDA调试接口支持Windows810低功耗模式11.
1KL25Z在VLPR模式最小电流消耗下的核心频率11.
2应用CMP作为KL14的VLLS3唤醒源11.
3LLS和VLLSn低功耗模式唤醒12.
4低功耗进入及退出设置函数编写需注意的细节12FLASH12://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56ar4.
1KL25ZFLASH擦写12.
2KL25被加密,芯片锁死13.
3Kinetis芯片安全设置14.
4KL25flash模块关于ACCERR错误14.
5KL25flashFTFA_FSEC寄存器疑问14.
6KL25FTFA模块问题15.
7Kinetis芯片解锁15.
8AN4379应用手册问题15.
9ProgramFlashIFR问题.
.
.
.
.
http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56.
16.
10模拟EEPROM的问题16ADC/DAC模块16.
1KL25中AD模块的Vrefh和Vrefl是什么16.
2KL25中DADPx,DADMx两个AD差分通道有什么区别16.
3KL15中AD差分输入问题17.
4KL02怎么没VDDA、VSSA引脚17.
5ADC采样Bandgap得到的数值不准确18位操作BME19.
1KL25的位操作例程http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56.
19.
2KL25的位操作如何查看减少代码19USB20.
1KL25的usb例程20内核模块20.
1Systick使用介绍20.
2KL系列中Systick的可选时钟源有哪些20.
3Systick的工作模式21.
4Systick的参考代码http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56.
21TPM模块21.
1TPM频率配置21.
2TPM模式配置22.
3中心对齐(Center-aligned)PWM生成23GPIO.
24.
1KL25的IO口最高翻转频率24.
2KL05引脚复用问题25.
3KL05如何选择引脚功能.
.
http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56.
25.
4KL25的IO口边沿变化斜率26.
5KL25的IO口是否支持外部中断26.
6KL25的IO口外部中断区分27.
7KL25的IO口外部中断触发方式28.
8KL25的IO口电平触发外部中断28RTC模块29.
1KL25ZRTC模块初始化失败29.
2RTC模块使用内部时钟在PE中如何配置30工具篇.
.
.
.
.
.
http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56.
30.
1make_new_proj_l2k_pe.
exe工具编译不正常30.
2在Codewarrior中生成Hex文件31.
3Codewarrior生成Hex文件大小32.
4CodewarriorV10.
4相对路径设定33.
5CodewarriorV10.
4浮点运算34.
6PE生成代码调用34.
7Keil生成S19格式的文件34LPTMR.
http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56.
35.
1LPTMR计算公式35.
2LPTMR时钟源36.
3LPTMR脉冲计数器模式下滤波器功能37.
4LPTMR脉冲计数器模式下输入脚状态解释38模拟比较器CMP39.
1KL25模拟比较器迟滞电压39综合问题39.
1KL25芯片UID作用3http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd569二K系列FAQ40调试相关40.
1TWR_K60F120M使用JLINK.
40.
2IAR中Flashloader问题41.
3K70下载程序出错.
41时钟系统42.
1K60芯片150M的与100M的时钟配置不同42.
2K60使用50M有源晶振无法配置到150M42.
3Dehttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56bug时总是进入hardfault中断44.
4振荡器模块时钟功耗模式44.
5芯片启动模式工作频率44ProcessorExpert工具44.
1K10,IDE是CW10.
3,有多个模块驱动,用不用PE呢44.
2如何使用PE生成的LDD设备驱动函数的帮助文档45.
3如何配置ComponentInspector选项卡的显示级别46.
4如何配置ComponentInspector选项卡中的Properties46.
5如何查看ComponentInspector选项卡Properties设置对应寄存器47.
6如何配置ComponentInspector选项卡中的Methods48.
7如何理解Componenhttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56tInspector选项卡中的Events49.
8如何让ProcessorExpert生成代码50.
9如何在PE工程中选择使用的芯片封装50.
10Codewarrior的断点问题51.
11ProcessorExpert安装问题51.
12PE中使用PDD无定义问题51UART模块51.
1CW10.
3的PE配置K60串口问题51.
2K60串口中断问题.
http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56.
.
52Ezport模块53.
1K60Ezport如何使用53USB模块53.
1K60关于usbhost的例程53.
2USB模块供电问题53.
3如何处理未用USB模块的相关电源引脚54.
4USB模块数据线拉电阻54CRChttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56.
54.
1K60的CRC计算54综合问题55.
1K40开发中遇到的问题.
55.
2Kinetis100MHzRev1toRev2区别57.
3Kinetis100Mhz芯片硅版本号.
58.
4Kinetis芯片何如选择对应手册58.
5Kinetis芯片何如选择对应勘误表58.
6飞思卡尔芯片选型及对应信息查询59.
7Kinetis快速指南代码.
.
.
.
.
.
.
.
http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56.
59.
8K60芯片的SIM_SDID寄存器问题59GPIO.
59.
1如何处理未使用的数字、模拟口59.
2未用RTC模块该如何处理相关引脚59Flexbus模块60.
1NANDFlash控制器(NFC)和FlexBus模块60.
2Flexbus模块片选配置60.
3Flexbus模块突发模式提高数据传输速度http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56.
.
60.
4Flexbus设计地址缓存地址60.
5NDNDFlash应用61FTM模块61.
1FTM模块时钟61.
2FTM模块counter的时钟源62.
3FTM输入捕捉最高频率62.
4FTM配成输入捕捉时CnV有何作用62.
5FTM配成输入捕捉时counter溢出周期62.
6FTM的DualEdgeCapture与InputCahttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56pturemode区别63.
7FTM的DualEdgeCapture捕捉边沿顺序63.
8FTM的捕捉延时63.
9eDMA传输FTM捕获的时钟值64.
10FTM寄存器分类说明65.
11FTM寄存器操作65.
12FTMEN位的作用65RTC模块66.
1RTC的寄存器锁定控制与寄存器进入控制的区别66.
2RTC模块最大中断时间.
.
http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56.
66.
3RTC模块是否具有日历功能66.
4RTC模块的精度66.
5RTC模块TPR读取问题67.
6RTC模块未用引脚连接67I2C模块67.
1K60的I2C内部上拉问题67FLASH67.
1flashIFR相关问题http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56.
67.
2flash加密68.
3EzPort烧写flash与JTAG烧写的异同点69.
5EEPROM的分区问题69.
6EEPROM的寿命69.
7使用PE中的Flash_LDD模块配置EEPROM70LCDC模块70.
1TWR_K70F120M配合TWR_LCD_RGB的代码.
70CAN模块http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56.
71.
1K60FX512VLQ15芯片CAN通讯问题.
71ENET模块71.
1以太网工作频率71内核模块71.
1K系列的Systick相关文档71.
2K系列中Systick的可选时钟源有哪些71三KE系列FAQ73调试相关http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56.
73.
1FRDM-KE02Z板载OpenSDA为何无法调试73.
2Keil-MDK软件如何选择OpenSDA作为调试工具73.
3FRDM-KE02Z板子是否支持SWD调试74驱动库74.
1FRDM-KE02Z是否有驱动库函数74集成开发环境75.
1CodeWarrior软件限定版和评估板区别75.
2为何在CodeWarrior10.
4软件下无法创建KE02的工程75.
3CodeWarrior软件如何安装新产品的补丁包75GPIO.
http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56.
75.
1单周期GPIO翻转例程75.
2特殊的GPIO复位状态76.
3KE02的GPIO口输入filter76.
4KE02引脚功能选择76FLASH77.
1KE系列EEPROM与K系列EEPROM的区别77时钟系统77.
1KE02外部晶振频http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56率范围77.
2KE02中的FLL的锁频系数79一KL系列FAQ时钟系统.
1KL25内部快速时钟是否为4MHz问题:我在测试KL25内部振荡器(4Mhz快速时钟)时,官方手册标注4Mhz,然而实测只有略>2Mhz,请问,这个偏差是设计问题还是手册标注有误答案:片内快速时钟源频率的确是4MHz,不过如下图示4MHzIRC输出要经过MCG_SC[FCRDIV]寄存器所设置的分频器,因为寄存器默认设置成二分频,所以测出时钟频率为2MHz.
如果对芯片时钟系统还是不清楚可以阅读芯片对应参考手册(ReferenceManual)中的时钟分配(ClockDistribution)章节.
调试相关.
1FRDM-KL25Z板载OPENSDA支持板下KL系列芯片的调试吗问题:如果把板上的KL25的调试接口断开,可否把FRDM-KL25Z(K20)当做调试器,调试用户的KL系列芯片答案:如果断开板上的KL25,是可以当调试器用的.
但是不断开直接调试其他KL芯片是不可以的,因为我们的OPENSDA是不能同时连两个KL芯片的.
.
2OpenSDA接口坏了吗问题:我是个初学者,前几天才刚刚得到一块FRDM-KL25Z开发板,并按照FRDM-KL25ZUser'Manual的介绍开始使用,使用过程都还挺顺利的,没出什么故障,但今天不知怎么的,在OpenSDA的MSD模式下,当我跟往常一样将已编译的例程拷贝到FreedomKL25Z硬盘中,发现MCU并没有运行相关的例程,但却发现LED闪烁颜色和http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56频率会根据拷贝的例程不同而有所变化,请问这是什么故障,难道是OpenSDA报废了啊答案:根据你说的现象,FRDM-KL25Z开发板还存在LED闪烁,表明造成现象的原因可能是:(1)拷贝到FreedomKL25Z硬盘的预编译例程格式不对;(2)OpenSDA固件库文件加载有误;[此处图片未下载成功][此处图片未下载成功]故障产生的原因绝大多数是由于操作者操作不当造成的,你可以尝试将FRDM-KL25Z重新变为Bootload模式,接着加载相应的固件库文件,使得OpenSDA进入MSD模式或可支持进行MCU的Debug调试.

.
3KL2x系列芯片支持的仿真调试器问题:在FRDM-KL25Z板上本身集成了OpenSDA调试接口,请问除了OpenSDA调试器KL25芯片还支持哪些调试工具答案:KL25芯片支持许多常见的仿真调试器,如OpenSDA、JLink、AK100Pro等.
具体芯片系列支持的仿真器/调试器在飞思卡尔官网都有列出,KL2x系列芯片支持的仿真调试器见以下网址.

://www.
1mpi.
com/zh-/webapp/sps/site/prod_summary.
jspcode=KL2x&nodeId=01624698C9E3EC&fpsp=1&tab=Design_Tools_Tab#.
4KL2x系列芯片SWD连接问题:在KL的板子中使用SWD连接调试的时候,发现MDM-AP状态寄存器的Flashreadybit总是不置位,这种状态是什么意思[此处图片未下载成功]答案:Flashreadybit总是不置位,说明flash还没有初始化好,此时flash还是不能访问的,一般情况下,如果芯片是好的,这个位肯定是可以置位的,所以如果不能置位,首先要检查芯片的http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56电源是否达到了LVDH的电压,另外Flash初始化时需要一段时间的,不能芯片一上电就立即访问flash.
关于SWD连接的步骤,官方有一个应用笔记可以参考,连接如下:://www.
1mpi.
com/files/microcontrollers/doc/app_note/AN4835.
pdf.
5OpenSDA调试接口支持Windows8问题:FRDM-KL25Z板上OpenSDA调试接口,为什么在XP的电脑上可以用,在Windows8的电脑上就无法正常使用答案:PEmicro于2013年12月推出了最新的OpenSDA固件包FirmwareApps.
在按固件包中BOOTUPDATEAPP_release_notes说明把Bootloader升级到版本1.
11,并将FRDM-KL25Z板的OpenSDA固件程序(MSD-DEBUG-FRDM-Z_Pemicro_v114.
SDA)放入bootloader盘使固件程序版本升到1.
14后.
Windows8的用户就能正常使用OpenSDA调试接口了.
[此处图片未下载成功]低功耗模式.
1KL25Z在VLPR模式最小电流消耗下的核心频率问题:KL25Z数据手册在VLPR工作模式给出了电流消耗与核心频率的关系图,那么其在最小电流消耗下的核心频率具体值为多少关系图如下:答案:首先需要说明的是这张图并不是功率与频率关系的连续变化曲线,而只是描述了几个特定频率点上的典型功率值.
从横坐标上的说明可以看到,这张图给出的内核频率分别为1M、2M和4M,原则上是频率越高,功耗越大.
但是对于某个内核频率,选择不同的FLASH与内核频率比也会影响芯片的功耗.
总的来说,也是FLASH频率越高,功耗越大.
所以此图会呈现这种V字的形状.
从这张图上来看,就是选择1M的内核频率,500K的FLASH频率时,功耗最低.

.
2应用CMP作为KL14的VLLS3唤醒源问http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56题:最近我正在使用KL14开发项目,当KL14进入到VLLS3模式后,需要设置唤醒源将其唤醒,参考KL25_SC.
exe中的low_power_demo例程,想将其中的按键唤醒变成CMP作为唤醒源,初步想法是这样:当CMP的外接电压输入引脚所接的电压低于某个电压时,即可唤醒MCU,请问有相关的例程代码提供吗答案:在low_power_demo例程的基础上,按照以下步骤操作即可:.
设置CMP作为唤醒源_configure(0x0000,LLWU_PIN_FALLING,0x2);.
使能CMP时钟_SCGC4|=(SIM_SCGC4_CMP_MASK);.
使能CMP中断_EnableIRQ(CMP0_IRQn);.
添加[此处图片未下载成功]cmp_init(0x18);.
3LLS和VLLSn低功耗模式唤醒问题:请问LLS和VLLSn低功耗模式是如何经过中断唤醒的,与唤醒WAIT或STOP一样吗答案:唤醒LLS和VLLSn需要专门设置的唤醒源,而且MCU唤醒后,不是接着进入低功耗模式前的代码运行,而是相当于给单片机复位,具体操作流程参考AN4503://www.
1mpi.
com/files/32bit/doc/app_note/AN4503.
pdffsrch=1&sr=1.
4低功耗进入及退出设置函数编写需注意的细节问题:请问编写不同的低功耗进入及退出设置函数有哪些需要注意的细节,因为经常出现低功耗模式进不去或者低功耗模式无法退出的现象答案:(1)进入低功耗模式:使能PMPROT寄存器中的VLLSx模式.
这里要注意的是,PMPROT是onlywriteonce的寄存器检查SMC寄存器组中的其他寄存器的设置LLWU唤醒设定http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56LLWU中断使能,并且在LLWU的中断服务程序中清除pending标识位确认引脚是一个数字输入引脚(2)唤醒设置:VLLSx的唤醒是要reset的确认软件写ACKISO.
这个必须要在最开始处写入参考应用手册AN4503链接:://www.
1mpi.
com/files/32bit/doc/app_note/AN4503.
pdffsrch=1&sr=1FLASH.
1KL25ZFLASH擦写问题:在KL系列数据手册中,Flash擦一个扇区需要时间14-114ms,请问,在这个擦过程中,芯片还能否执行程序或响应中断(擦的扇区未放程序代码)答案:在进行sector擦除时,内核是可以继续执行代码和响应中断的,前提条件是所执行代码和中断服务程序必须要放在RAM中.
如果你的程序是放在Flash里面了,由于只有一个bank,那么就不可以了.

.
2KL25被加密,芯片锁死问题:(1)在新板子KL25中,用CW10.
3写入经常会遇到写不进程序的情况,CW10.
3提示该芯片被加密.
我想请问有没有什么办法解锁,我看芯片手册里面有密钥,这个有什么用处吗(2)密钥匹配之后,不是只能临时解锁芯片吗,但是复位之后,你的芯片还是处于加密状态.
所以密钥匹配到底起了什么作用(3)使用软件是指使用Flash命令吗比如说擦除一个扇区命令.
但是即使不进行芯片解锁,我也可以通过Flash命令对Flash配置区域进行擦除和写入吧.
因为芯片在secure模式下,在NVM正常模式下,所有Flash命令都是可以用的.
所以我在编程的时候,如果写了两个函数,加密和解密函数,我把0x40c的值设成x80,这样就把芯片设成加密状态,允许后门密钥访问,允许Masserase,同时我给0x400-0x407复制1,2,3,4,5,6,7,8作为密钥;我通过串口给MCU一个命令.
这样,芯片就加密了,但是我串http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56口再发一个命令,使MCU执行解密操作,把0x40c字段写成0xFE不就成了,根本没有用到密钥匹配啊是不是我对密钥匹配的理解错误啊你能给我详细地讲一下,密钥匹配的使用例子吗答案:(1)你需要查看Flash地址0x40C对应的值,这个值将会在芯片启动时加载到FSEC(FLASH安全寄存器)中.
如果是FSEC[MEEN]位为Masserase使能,这可以通过masserase命令去解锁芯片.
Backdoorkey方式是Flash安全级别最高的保护方法,只有通过软件接收外部输入的backdoorkey来解锁芯片,通常后门key通过串口输入.
(2)密钥匹配之后,芯片就会临时解锁,这时候你可以使用软件更改Flash地址0x40C值(这个需要代码支持编程Flash特定地址),改成未保护.
之后上电复位芯片就会处在未保护状态.
(3)你可以访问下面的链接,下载KinetisFlash驱动软件,其中提供backdoor的例程:://www.
1mpi.
com/files/32bit/software/C90TFS_FLASH_DRIVER.
exe.
3Kinetis芯片安全设置问题:Kinetis芯片安全设置分为几级答案:Kinetis芯片安全设置分为4级.
芯片安全设置位于FTFL_FSEC寄存器中,【KEYEN】设置是否使能后门锁;【MEEN】设置是否使能MassErase;【FSLACC】设置是否使能工厂入口;【SEC】设置芯片状态.
安全级别如图所示:级别0,[SEC]为unsecure,芯片处于未安全保护状态;级别1,[SEC]为secure,由于masserase使能,芯片可以通过Flashmasserase命令来解锁;级别2,[SEC]为secure,由于masserase使能,芯片可以通过Flashmasserase命令来解锁;级别3,[SEC]为secure,由http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56于仅是后门锁使能,除非在软件中设置了后门锁和相应Flash解锁操作,否则芯片将无法解锁.

.
4KL25flash模块关于ACCERR错误问题:Thiscommandislaunchedandthebackdoorkeyhasmismatchedsincethelastpowerdownreset.
这句话是说引起FSTAT[ACCERR]错误的原因之一.
那么thelastpowerdownreset通常由于什么引起答案:掉电复位,即POR(power-onreset).
.
5KL25flashFTFA_FSEC寄存器疑问问题:FTFA_FSEC寄存器中,KEYEN位有四中状态,10是后门秘钥使能,但是00、10、11都是后门秘钥禁止,有什么区别吗也是同样的情况,10是禁止,00、01、10是使能.
位也是,00、11使能;01、10禁止;:10不安全;00、01、11安全;答案:FTFA_FSEC寄存器设定使用哪种值去secureFlash都可以,没有任何区别,其他寄存器位类似.
之所以用两位来表示两种状态,是为了提高可靠性.
[此处图片未下载成功].
6KL25FTFA模块问题问题:(1)ProgramFlashIFRMAP,地址为0xC0–0xFF的64字节区域内存的是什么数据到底有什么用(2)Read1sSection,ProgramCheck这两个命令什么意思,不太懂看了芯片手册也感觉不太懂答案:(1)ProgramFlashIFRMAP0xC0-0xFF这64字节不在Flash存储空间之内,是单独与Flashmemory存在的.
客户可以自己定义这块单次写入区域的用途,通过Flash提供的ReadOnce命令和Prograhttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56mOnce命令来进行读写.
(2)Read1sSection命令是用来检查特定Flash区域是否被擦除过.
Check命令是用来检查Flash区域的使用寿命,有两个margin设定,一般用户使用usermargin.
通常是在Flash某个区域写入4个字节数据,然后执行programcheck命令看实际写入的4个字节与期待值是否一致.
如果不一致,则说明这块Flash使用寿命快到期了.
.
7Kinetis芯片解锁问题:如何解锁secure状态的Kinetis芯片答案:根据Kinetis芯片安全级别设置来决定是否能够解锁Kinetis芯片.
通常处于安全级别1和2的芯片,可以通过运行FlashMassErase命令来解锁.
目前SeggerJ-Link工具和P&EUniversalMunltilink工具支持解锁Kinetis芯片:J-Link工具提供Commander工具,可以在Commander界面下输入"unlockKinetis"命令来解锁.
运行IAR、CodeWarrior工程进入调试界面会弹出芯片处于加密状态的信息,询问是否通过masserase去解锁芯片.
使用SeggerJ-Link工具和P&EUniversalMunltilink工具点击"是"选项以解锁Kinetis芯片.
.
8AN4379应用手册问题问题:AN4379将Flash区域0x0至0xBFFF保护,其中包括了Flash配置区域,如何解除保护答案:Flash配置区域一旦被保护,就不能通过常用的Flash擦写命令修改Flash保护寄存器的值,其中包括masserase命令.
只能进入EzPort模式下执行bulkerase命令来擦除Flash配置区域.
也可以运用SeggerJ-Link提供的命令行(J-LinkCommander)软件运行"unlockKinetis"命令来擦除Flash配置区http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56域.
KinetisL系列产品同样存在这样的问题,解决方法是通过外部的SWD调试器执行全擦除操作.
.
9ProgramFlashIFR问题问题:ProgramFlashIFR主要功能是什么如何访问答案:ProgramFlashIFR是一个非易失的存储空间,独立于Flash存储空间之外,提供64字节的仅可单次写入的存储器.
可以写于一些重要的信息,可以通过ReadOnce命令进行多次读取操作,也可以通过ProgramOnce命令进行单次写入操作.
.
10模拟EEPROM的问题问题:K系列是可以使用FlexRAM以及FlexNVM模拟EEPROM的,但是KL系列是不带有FlexNVM模块的,是否可以利用flash模拟EERPOM呢答案:KL系列是可以使用利用flash模拟EEPROM的,在我们官网论坛中,有一篇文章讲了KL25Z的模拟EEPROM的内容,并且还有相关代码,是基于C90TFS例程改编的,具体的链接为:://http://www.
1mpi.
com/docs/DOC-94593ADC/DAC模块.
1KL25中AD模块的Vrefh和Vrefl是什么问题:KL25中AD模块的Vrefh和Vrefl代表什么意思有何作用答案:VrefH和VrefL是ADC的参考电压高电平和参考电压低电平.
简单来说,如果ADC的输入信号大于参考电压高电平,则ADC输出为满量程;如果输入信号小于参考电压低电平,则ADC输出为零.
所以,这两个信号是用来限定输入信号的测量范围的.

.
2KL25中DADPx,DADMx两个AD差分通道有什么区别问题:KL25中DADPx,DADMx两个差分模拟通道有什么区别,应该怎么用答案:KL25中的DADPx和DADMx是差分模拟信号的两个输入端.
每一组差分信号都是用来测量两个信号之间的电压差的.
是通过ADC进行测量的.
差分信号的输入引脚也可以http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56做为单端的ADC输入来使用.
有差分通道功能的ADC通道,当你使能了差分功能时,就做差分功能用,如果没有使能差分功能,那就做单端功能,这个时候和铺铜的单端输入效果是一样的.

.
3KL15中AD差分输入问题问题:KL15的AD配置为4路差分输入,支持交流输入的范围是多少啊手册里AD输入范围为VREFL~VREFH,可差分输入是/-REFH啊答案:差分输入时,差分输入的电压差不能超过VDDA,每个差分输入端的单端电压也不能超过VDDA.
差分采样支持符号位,不过要注意不能接负电压.
即单端输入范围只能在VREFL和VREFH之间.
具体参看下图.
4KL02怎么没VDDA、VSSA引脚问题:我用的芯片是32引脚的MKL02Z8VFM4,以前用别的芯片一般都有VDDA、VDDS这种模拟部分用的电源引脚,但怎么我的芯片上找不到[此处图片未下载成功]答案:有些封装的芯片将VDDA与VDD、VSSA与VSS内部相连了,所以你从芯片引脚图上找不到VDDA引脚.
你可以阅读参考手册KL02P32M48SF0RM其中"3.
7.
1.
3ADCanalogsupplyandreferenceconnections"章节有提到这一点.
哪怕是同一系列的芯片,不同引脚不同频率的芯片有时也具有差别,这种差别一般都以在芯片参考手册(ReferenceManual)的ChipConfiguration章节看到具体该芯片的配置.
.
5ADC采样Bandgap得到的数值不准确问题:我按照温度传感器测量应用手册AN3031操作步骤,打算使用FRDM-KL25开发板测量周围温度.
用PE建立工程,在工程中配置ADC的通道29,27分别采样VFREH和Bandgap,在代码运行后发现,采样VFREH后可转换成稳定的数字值,但却不能得到稳定的Bandgap数字转换值,其偏差程度已远远大于数据手册标出的±3%准确度.
工程代码很简单,其中ADC采样部分代码http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56列出如下:AD1_MeasureChan(1,0);_GetChanValue16(0,&adcvalue);("ADCvalue:%d,",adcvalue);_MeasureChan(1,2);_GetChanValue16(2,&adcvalue);("Bandgap:%d",adcvalue);_MeasureChan(1,1);_GetChanValue16(1,&adcvalue);("Temperaturesensor:%d,",adcvalue);_MeasureChan(1,2);_GetChanValue16(2,&adcvalue);("Bandgap:%d",adcvalue);_MeasureChan(1,3);_GetChanValue16(3,&adcvalue);("Vrefh:%d",adcvalue);答案:参考KL25的参考手册Chapter3ChipConfiguration说明,配置ADC采样Bandgap之前,请确保置位PMC_REGSC[BGBE].
[此处图片未下载成功]位操作BME.
1KL25的位操作例程问题:哪里有KL25的位操作例程答案:KinetisL系列提供BME模块,提供位操作.
例程可以从下面的链接下载::FRDM-KL25ZandTWRKL25Z48MSampleCodehttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56Package.
://www.
1mpi.
com/webapp/sps/site/prod_summary.
jspcode=KL2&nodeId=01624698C9E3EC&fpsp=1&tab=Design_Tools_Tab.
2KL25的位操作如何查看减少代码问题:官方KL25的位操作例程,可以看到使用BME代码相对普通C代码运行时间少了,那么如何查看代码是否减少呢答案:要看BME的代码相对普通C代码是否减少,只需要查看它们生成的汇编代码是否有减少.
这里以BME的XOR操作为例.
首先将编译器的优化等级调为0,然后BME和普通C代码生成的汇编代码分别如下:普通C代码:用了2*16个字节.
代码:用了2*3=6个代码.
[此处图片未下载成功]从生成的代码量上面看,使用BME减少了一般的代码USB.
1KL25的usb例程问题:请问有没有MKL25Z128芯片的USB-HID设备代码答案:飞思卡尔官网KL25的Demo代码KL25_SC中有USB_Host的例子,下载地址:http://www.
1mpi.
com/files/32bit/software/KL25_SC.
exe内核模块.
1Systick使用介绍问题:想使用KL25的Systick时钟,但却找不到Systick的具体介绍文档答案:Systick时钟是ARMCortex架构的可裁剪模块,存在于NVIC中(但大多数IC厂商都没有将其裁剪掉).
Kinetis系列MCU的参考手册没有包含Systick的详细介绍,但你可以通过ARM官网的ARMInformationCenter了解Systick时钟的寄存器组成和具体介绍.
.
2KL系列中Systick的可选时http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56钟源有哪些问题:KL系列的Systick可选时钟源为哪些分别为多少答案:KL系列的Systick时钟源可以通过内核的systick的控制状态寄存器中的位来选择,如果CLKSOURCE=1,则表示时钟选择为芯片内核时钟;如果CLKSOURCE=0,则时钟由具体的MCU设计决定,kinetis的L系列为芯片内核时钟除以16.
[此处图片未下载成功].
3Systick的工作模式问题:Systick是否可以作为普通的定时器使用可以工作在哪些模式下答案:systick是可以作为普通的定时器使用的,关于systick可以工作在哪些模式下,由于Systick时钟都是由内核时钟或者内核时钟的16分之1决定,而内核时钟的只能在RUN模式以及VLPR模式下可以工作,其他模式下都是关闭的.
所以systick也只能工作在RUN模式以及VLPR模式下.

.
4Systick的参考代码问题:官方是否有关于Systick相关的代码答案:目前虽然没有独立关于systick的工程,但是在官方的KL25的samplecode中还是有关于systick的代码可以参考,比如在KL25_SC中的low_power_demo工程的low_power_demo.
c中就有关于systick的代码.
关于systick代码的初始化,也可以参考如下的代码:vfnPSYSTICK(void)/*SetthecoreclkasclksourceandpendtheSysTickinterrupt*/_CSR|=SysTick_CSR_CLKSOURCE_MASK|SysTick_CSR_TICKINT_MASK;/*setthereloadvalue*/_RVR=0x000000FF;://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56ar/*EnabletheSysTick*/_CSR|=SysTick_CSR_ENABLE_MASK;TPM模块.
1TPM频率配置问题:我用PE工具新建了一个关于TPM应用的工程,在工程中将TPM模块配置成中心对齐PWM模式,所以我想知道PWM的频率设置与哪些寄存器有关根据用户手册给出的TPM输出PWM周期计算公式(如下图1所示),即T=(MODxTimeStep)/2.
图1但这与参考手册中关于TPM模块的Up-DownCounting计数模式(图2所示)相矛盾.
我觉得PWM周期计算公式为:T=(MODxTimeStep)×2.
图2答案:已确认图1所示的TPM周期计算公式为用户手册的文档错误,我会联系飞思卡尔文档部门尽快予以修改,感谢你的问题.
.
2TPM模式配置问题:在设置TPM模块的时候,使用下面的操作一个寄存器,_C1SC|=TPM_CnSC_ELSA_MASK;_C1SC|=TPM_CnSC_ELSB_MASK;运行第二句的时候,就不起作用了,为什么答案:你需要这样操作:_C1SC=TPM_CnSC_ELSA_MASK|TPM_CnSC_ELSB_MASK;因为,根据referencemanual中的一句话:"Whenswitchingfromonemodetoadifferentchannelmode,thechannelmustfirstbedisabledandthismustbeacknowledgedintheLPTPMcounterclockdomain.
"所以你上面的操作方式会被视为一次模式切换http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56,建议使用一条语句操作.
[此处图片未下载成功][此处图片未下载成功].
3中心对齐(Center-aligned)PWM生成问题:请问在CW10.
4下,使用PE配置TPM输出Center-alignedPWM,当工程编译成功并烧录到MCU后,利用示波器观察输出的PWM,发现并无任何的PWM波输出,这是怎么回事呢答案:PE生成的TPM代码有个Bug,这将在下一版的PE中更正.
你需要将Channel(n)StatusandControl(TPMx_CnSC)寄存器相关代码改成如下配置:/*TPM0_C0SC:=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,CHF=0,CHIE=0,ELSB=1,ELSA=0,=0,DMA=0*/_C0SC=(uint32_t)((TPM0_C0SC&(uint32_t)~(uint32_t)(_CnSC_CHF_MASK|_CnSC_CHIE_MASK|_CnSC_ELSA_MASK|_CnSC_DMA_MASK|xFFFFFF02U))|(uint32_t)(_CnSC_ELSB_MASK|TPM_CnSC_MSB_MASK));具体信息参看下图:[此处图片未下载成功][此处图片未下载成功]GPIO.
1KL25的IO口最高翻转频率问题:请问KL25的IO口翻转,最高能到达多少频率答案:如果使用FGPhttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56IO寄存器也就是单周期快速IO口,那么翻转频率可以到达Coreclock的一半,如果你把CoreClock设置成48MHz那么你的IO口翻转频率最快能到达24MHz.
我用官网下载的KL25-SC例程包中make_new_cw_project工具创建了一个基于platinum的新工程(该工具路径为E:…Sample_sc_rev9sc-baremetal).
并在该工程下写了如下图示代码并测得波形,波形图中IO口每翻转6次后将有一段时间的延时,这个延时其实是while循环经编译器编译后执行到最后行时添加的跳转指令使程序能够从while循环第一句重新开始执行导致的.

[此处图片未下载成功].
2KL05引脚复用问题问题:在KL05Z32的参考手册中,有个关于引脚复用的问题,如下图:的时候是GPIO,但是000以及默认的时候有四种功能,到底是哪个功能呢答案:默认的时候虽然对应了4种功能,但是每种功能的实现都需要打开相应模块的时钟才能实现.
即需要哪种功能就打开哪个模块的时钟,这样芯片内部就会打开相应的通道.
如果这四种功能的时钟都同时打开,那么就会引起该引脚的冲突,因此需要避免在同一个引脚同时打开四种功能的时钟.

.
3KL05如何选择引脚功能问题:在KL05Z32的参考手册中,如何将引脚功能选择成上图中ALT0~ALT3其中一种功能[此处图片未下载成功][此处图片未下载成功]答案:通过查看参考手册"Portcontrolandinterrupts(PORT)"章节PORTx_PCRn寄存器的MUX位可知,某个引脚选择哪种ALT功能是根据MUX值决定的.
该寄存器如图示:.
4KL25的IO口边沿变化斜率问题:请问KL25数字IO口输出的边沿变化斜率怎么无法改变根据参考手册http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56上PORTx_PCRn寄存器的SRE位功能描述,SRE=0时应为快速变化斜率,SRE=1为慢速变化斜率.

答案:你需要注意SRE位功能描述处有这么一句话"Thisbitisreadonlyforpinsthatdonotsupportaconfigurableslewrate.
"其实就是说如果芯片不支持斜率控制,那么该位将是只读的.
通过查看参考手册第三章"PortControlandInterruptSum-mary"端口控制和中断概要的表格可以看到,其中因为SlewRateEnablecontrol行全为No所以这些端口都不支持斜率控制.
.
5KL25的IO口是否支持外部中断问题:请问KL25的GPIO口是否支持外部触发中断答案:通过查看参考手册KL25P80M48SF0RM第三章"Table3-49.
PortsSummary"表格末尾"InterruptandDMARequest"行可以看出,该参考手册所列的芯片仅有PortA、PortD口支持外部触发中断.
由于每款芯片的具体配置不同,所以当需要使用参考手册中描述的功能时,建议先在参考手册第三章ChipConfiguration处确认.
[此处图片未下载成功].
6KL25的IO口外部中断区分问题:如果我把KL25的PortA、PortD口引脚配置了外部中断,是否每个引脚都有自己的中断服务函数答案:通过查看参考手册KL25P80M48SF0RM第三章"Table3-7.
Interruptvectorassignments"表可知:PortA、PortB分别有自己的中断向量,PortA端口引脚触发的外部中断将会进PortA的中断服务函数.
但如果是同组IO口的不同引脚(如PortA组的PTA0、PTA1引脚)触发的外部中断都会进入PortA的中断服务函数.
只能通过整组中断状态标志(PORTx_ISFR)或单个引脚的中断状态标志(PORTx_PCRhttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56n的ISF)去判断到底是哪个引脚触发了该组IO口的外部中断.
[此处图片未下载成功][此处图片未下载成功].
7KL25的IO口外部中断触发方式问题:请问KL25的PortA、PortD口支持哪些外部中断触发方式答案:通过查看参考手册KL25P80M48SF0RM第十一章"11.
6.
3Externalinterrupts"描述可知:这两组IO口支持高电平、低电平、上升沿、下降沿、双边沿中断触发.
另外检测到上升沿、下降沿、双边沿还可以用于DMA.
触发方式可以通过PORTx_PCRn寄存器的IRQC配置(如图).
.
8KL25的IO口电平触发外部中断问题:参考手册上看KL25的PortA、PortD口支持边沿、电平方式触发中断.
在电平触发方式下,如果输入的外部信号始终满足触发条件,是否会连续触发中断答案:通过查看参考手册KL25P80M48SF0RM第十一章"11.
5.
1PinControlRegis-tern(PORTx_PCRn)"寄存器的ISF位描述可知:如果引脚被配置成电平触发外部中断且引脚始终满足触发条件,那么中断状态标志ISF一旦被写1清除将会立刻再次被置1以表明中断被检测到,并再次触发中断.

[此处图片未下载成功][此处图片未下载成功]RTC模块.
1KL25ZRTC模块初始化失败问题:KL25Z用内部32K时钟初始化RTC模块就会使芯片晶振设置失败.
附上程序rtc_init(uint32_tSecendTimes,uint32_tAlarmTimes)i;_SCGC6|=SIM_SCGC6_RTC_MASK;//使能RTC时钟门控制_CR|=OSC_CR_ERCLKEhttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56N_MASK;_SOPT1|=SIM_SOPT1_OSC32KSEL(0);_CR=RTC_CR_SWR_MASK;//软件复位RTC寄存器_CR&=~RTC_CR_SWR_MASK;//软件复位之后清SWR位_CR|=RTC_CR_CLKO_MASK|RTC_CR_SC8P_MASK;_CR|=RTC_CR_OSCE_MASK;//使能32.
768kHz振荡器(i=0;i<0x600000;i);//在使能32.
768kHz振荡器之后,使能计数器//之前等待一段时间,来稳定32.
768kHz时钟.
_TCR=RTC_TCR_CIR(0)|RTC_TCR_TCR(0);//配置定时器补偿寄存器的时间间隔与时钟周期数_TSR=SecendTimes;//初始化定时器秒寄存器_TAR=AlarmTimes;//初始化定时器报警寄存器_TPR=0;//复位RTC定时器预分频器寄存器_SR|=RTC_SR_TCE_MASK;//使能秒计数器一旦经过RTC_CR|=RTC_CR_OSCE_MASK;//使能32.
768kHz振荡器这句之后就会死机答案:从手册中(如下图)可以清楚的看出,RTC模块一共有3个clock的来源.
它们分别是LPO,RTC的时钟输入脚和OSC32KCLK,可以通过_SOPT1[OSC32KSEL]选择(如下图).
其中LPO是内部的1KHz频率的时钟;OSC32KCLK也是外部的时钟产生的,而且在使用RTC选择OSC32KCLK时,只有外部晶振为32.
768kHz时才可以;选择RTC_CLKIN时,RTC_CLKIN必须是有源32.
768kHz时钟源.
所以说RTC的时钟是不能用内部32.
768kHz产生的.
不过有人利用内部32.
7http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd5668kHz通过外部引脚输出然后引到RTC_CLKIN引脚这样的方法,从而使用内部32.
768kHz作为RTC的时钟源.

.
2RTC模块使用内部时钟在PE中如何配置问题:FRDM_KL25Z板上的RTC_IN引脚没有有源晶振,如果想使用内部的慢速时钟来作为RTC的时钟源,在PE中该如何配置实现答案:内部的慢速时钟和RTC从芯片内部是没有连接线路的,所以,需要在外部用引线将两个模块相连.
思路:把板子上的PTC1配置为RTC_CLKIN,用作RTC的时钟输入引脚.
然后将PTC3配置为CLKOUT,通过SIM_SOPT2[CLKOUTSEL]选择MCGIRCLK,并且配置MCGIRCLK为内部的慢速时钟32.
768khz.

下面来配置PE中的模块参数了.
首先,配置CPU部件的相关RTC参数,这些都是在expert中操作:(1)使能RTC时钟输入并选择PTC1.
(2)MCGIRCLKsource选择为slow,选择32KHz的时钟频率.
(3)选择ERCLK32Kclocksource为RTCclockinput,即选择RTC_CLKIN作为RTC模块32khz输入.
(4)选择PTC3作为CLKOUT引脚,引脚输出信号配置为MCGIRCLK.
然后,添加RTC_LDD,并对其配置,需要注意,clocksource选择为ERCLK32K.
其实,官方论坛有一个关于这方面的文章,并且附上了代码,具体链接为:工具篇.
1make_new_proj_l2k_pe.
exe工具编译不正常问题:MKL25提供例程,使用Keil软件可以正常编译<klxx-sc-><klxx-sc-pex>目录中提供的例程,但是使用【make_new_proj_l2k_pe.
exe】工具生成的例程却不能正常编译[此处图片未下载成功]://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56[此处图片未下载成功][此处图片未下载成功]答案:首先需要检查所用Keil软件license类型,如果使用Cortex-MMDK-ARMLicense,Keil软件存在'bug',不能正常编译使用【make_new_proj_l2k_pe.
exe】工具生成的例程.
需要修改Keil项目Linker文件<ProcessorExpert.
scf>,增加在<ProcessorExpert.
scf>文件中增加一行"--cpuCortex-M0"(最好增加在第一行).
Keil将会在新的版本中修正这个问题.
.
2在Codewarrior中生成Hex文件问题:请问如何在Codewarrior中生成Hex文件答案:选择CW工程,单击右键选择【Properties】,接着单击【C/CBuild】>【Setting】>【AdditionalTools】,选中【CreateFlashImage】.
下一步还需在【ARMLtdWindowsGNUCreateFlashImage】中选择对应的【Outputfileformat】,最后按顺序单击【Apply】及【OK】图[此处图片未下载成功]A图B.
3Codewarrior生成Hex文件大小问题:使用Codewarrior编译Demo工程,然后生成了对应的Hex文件和.
map文件.
.
map文件不像Keil生成的一样,有列出code的大小,请问在Codewarrior中如何查看code的大小呢答案:选择CW工程,单击右键选择【Properties】,接着单击【C/CBuild】>【Setting】>【AdditionalTools】,选中【PrintSize】.
下一步按顺序单击【Aphttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56ply】及【OK】.
最后重新编译CW工程,查看结果.

[此处图片未下载成功]图A图B.
4CodewarriorV10.
4相对路径设定问题:CodeWarriorV10.
4工程如何设定项目的相对路径答案:CW项目工程编译过程中经常会碰到路径无法找到的错误,大部分情况下都是因为工程路径使用的是绝对路径,如果要解决这类问题,需要使用相对路径.
例如工程【helloworld】的绝对路径是:D:.
4_V2_SC_world_hello_world下面就是使用相对路径来指定驱动的位置:[此处图片未下载成功][此处图片未下载成功]"$PROJECT_LOC/src/drivers/smc"".
.
/"是回退目录,这样回退四层就回到D:.
4_V2_SC目录,这样就可以找到src及其对应代码的位置.
12.
5CodewarriorV10.
4浮点运算问题:CodeWarriorV10.
4基于KL25芯片创建项目如何支持浮点运算答案:可以在项目配置中使用【c9x】库,详情如下图:.
6PE生成代码调用问题:请问使用PE生成GPIO_LDD的代码后,如何配置LDD_TDeviceData*GPIO1_Init(LDD_TUserData*UserDataPtr)参数使得I/O口输出低电平答案:可通过以下步骤查看PE生成的代码函数的应用实例:①选中对应的组件模块并右键,单击HelponComponet②在弹http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56出的Help框中,选择Componetxxxx_LDDTypicalUsage,即可查看相关的例程.
.
7Keil生成S19格式的文件问题:如何使用KeilIDE软件编译产生S19格式的image文件答案:使用格式转换工具"fromelf.
exe"可以转换输出S19格式的image文件.
[此处图片未下载成功]LPTMR.
1LPTMR计算公式问题:在FRDM-KL25Z开发板上需要做个周期1s的定时器,用到了LPTMR模块的定时器模式,请问如何计算比较寄存器LPTMRx_CMR的值答案:通过查看参考手册KL25P80M48SF0RM第三十三章LPTMRx_CMR寄存器COMPARE位的功能描述可知:当LPTMR的计数器CNR等于CMR并增加时,TCF将置位.
根据这个描述就可得到计算公式:fclkDN1TneedLPTMR所选时钟源频率分频系数,若旁路分频器则D=1[此处图片未下载成功][此处图片未下载成功]comparevalue的值,即LPTMRx_CMR寄存器值期望定时时间公式中采用N1,而不是N,是因为当LPTMR使能,CNR值要等于CMR值并增加才会使TCF标志位置位,触发硬件定时中断.
如果时钟源选择1kHz的LPO即fclk=1kHz,不分频即D=1,期望定时1s即Tneed=1s,代入公式如下:N111103N=999即LPTMRx_CMR寄存器COMPARE值.
2LPTMR时钟源问题:在FRDM-KL25Z开发板上需要做个周期1s的定时器,用到了LPTMR模块的定时器模式,在计算比较值时如何确定LPTMRhttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56的时钟源频率答案:通过查看参考手册KL25P80M48SF0RM第三十三章LPTMRx_PSR寄存器PCS位的功能描述可知LPTMR定时器模式所需的分频器时钟源、计数器模式所需的毛刺滤波器时钟源可通过该寄存器选择.
PCS必须在LPTMR禁止时才可改变.
具体时钟源连接参见chipconfigurationdetails章节(因为时钟源连接可能随芯片不同而不同)根据上图NOTE提示信息,查询手册第三章"3.
8.
3.
3LPTMRprescaler/glitchfilterclockingoptions"部分可知LPTMR的时钟源可以下四选一:MCGIRCLK、LPO、ERCLK32K、OSCERCLK(如下图示)[此处图片未下载成功].
3LPTMR脉冲计数器模式下滤波器功能问题:在FRDM-KL25Z开发板上想用LPTMR模块的脉冲计数器模式,但不明白LPTMRx_PSR寄存器PRESCALE位描述的滤波器配置.
红线划出应如何理解答案:通过查看参考手册KL25P80M48SF0RM第三十三章LPTMRx_PSR寄存器PRESCALE位的功能描述可知:当LPTMR处于脉冲计数器模式时,该位用于选择滤波器宽度.
如果结合参考手册33.
4.
3.
3Glitchfilter章节描述(如下图),就能更清楚地了解红线所表达意思是:若输入引脚电平在LPTMR时钟源的2个上升沿时间内保持不变,则毛刺滤波器输出状态将取决于输入引脚状态.
[此处图片未下载成功][此处图片未下载成功].
4LPTMR脉冲计数器模式下输入脚状态解释问题:在FRDM-KL25Z开发板上想用LPTMR模块的脉冲计数器模式,但不明白参考手册33.
4.
3.
3Glitchfilter章节描述中提到的asserted、deasserted意思.
答案:根据参考手册KL25P80M48SF0RM的33.
http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd562.
1Detailedsignaldescriptions描述(如下图示)以及LPTMRx_CSR寄存器TPP位描述可知脉冲计数器模式下:如果将输入配置成active-high则Assertion(输入上升沿)将导致CNR增加.
如果将输入配置成active-low则Deassertion(输入下降沿)将导致CNR增加.

再看参考手册33.
4.
3.
3Glitchfilter章节表格描述就容易理解毛刺滤波器工作机理:如果所选输入引脚至少在2个LPTMR时钟源上升沿时间内保持低电平(高电平),则毛刺滤波器也将输出低电平(高电平).
[此处图片未下载成功][此处图片未下载成功]n模拟比较器CMP.
1KL25模拟比较器迟滞电压问题:KL25芯片的CMPx_CR0寄存器HYSTCTR为从手册上看可以设置不同等级的迟滞电压,这个迟滞电压将会对模拟比较器产生什么样的效果答案:参考手册上提到了迟滞电压分为四种等级,从数据手册KL25P80M48SF0的"Table21.
Comparatorand6-bitDACelectricalspecifications"表中可以看到这四种电压等级分别为5mV、10mV、20mV、30mV.
迟滞电压将避免模拟比较器两端的输入压较接近时,因为波动或噪声而频繁改变比较器输出问题.
以20mV迟滞电压为例,参考下图.

综合问题.
1KL25芯片UID作用问题:像SIM_SDID寄存器有相应介绍,知道可以通过读取SIM_SDID获得芯片系列、SRAM大小、硅版本号、引脚数等信息.
但是KL25参考手册"12.
2Memorymapandregisterdefinition"中的SIM_UIDMH、SIM_UIDML、SIM_UIDL这些寄存器是用来干什么的答案:SIM_UIDMH、SIM_UIDML、SIM_UIDL这几个寄存器是用于存放芯片唯http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56一识别号的,每个芯片这几个寄存器的值都是唯一的.

[此处图片未下载成功]二K系列FAQ调试相关.
1TWR_K60F120M使用JLINK问题:板子上如何使用JLINK要自己接出所需要的口吗板子上的接口好象是那个简化版的Jlink,普通的Jlink的接口好象是和这个不兼容的,板子上的USBDM在IAR和KEIL下不能实时的查看内存,如何解决答案:(1)TWR-K60F120M板子提供了JTAG接口,编号为:J11.
可以用J-Link19-Cortex-MAdapter连接.
(2)TWR-K60F120M板上集成了P&EOSBDM调试工具.
塔式开发板上的OSJTAG没有接入TRACEn管脚,不能实现实时TRACE功能.
板不能直接接JlinkV8,需要先接一个适配器(J-LINK19-pincortex-MAdapt-er),具体信息查看链接:http://www.
1mpi.
com/jlink-adapters.
html.
具体的连接方式如下图:[此处图片未下载成功][此处图片未下载成功][此处图片未下载成功].
2IAR中Flashloader问题问题:"FlashK60Dxxx128K.
board"文件在哪可以下载,如何将它整合到工程项目中呢答案:这个文件是IAR软件FlashLoader要调用的,默认路径为:C:FilesSys-temsWorkbench6.
5选择方法,如图所示:.
3K70下载程序出错问http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56题:现在在用TWR-K70F120M板子,在用飞思卡尔原厂的例程时,例程编译时没有问题,但是烧写时不成功,出现以下提示,请问该如何解决这个问题提示1.
Missormalformedflashloaderspecificationfile:C:FilesSystemsWorkbeach6.
4Evaluationxxx.
board提示2.
Thedebuggingsessioncouldnotbestarted.
Eitherthedebuggerintializationfailed,orelsethefile"C:_120MHZ_SC_120MHZ_SC_demo_1M_demo_k70_tower.
out"wascorruptorofanunsupportedformat.
mightbemoreinformationintheDebugLogwindow.
提示3.
WedJul03,201310:38:23:Missingormalformedflashloaderspecificationfile:C:FilesSystemsWorkbench6.
4Evalua-Xxxx.
board答案:请参考下图,选择【FlashK70Fxxx128K.
board】文件替代之前的【FlashK70Xxxx.
board】.
[此处图片未下载成功]时钟系统.
1K60芯片http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56150M的与100M的时钟配置不同问题:我最近得了几片MK60FX512片子,用原来的老程序结果串口波特率不对了!
害得我折腾了几天,最后才通过看E文原版资料找到问题了,原来和老片子比至少改变了两点::MCG_VDIV0的倍频因子变成16起步而不是原来的24了:MCG的结构都升级了,PLL0多了个2分频,时钟输出也分成了MCGPLL0CLK和MCGPLL0CLK2X,而那串口0和1以及其他外设显然是用的1X的.

这是为什么答案:KinetisK系列100MHz产品有两种芯片版本,Silicon1.
x和Silicon2.
x.
飞思卡尔官网提供应用手册AN4445介绍两种版本芯片的不同处.
如果客户使用K系列100MHzMCU用于新产品设计,推荐使用Silicon2.
x版本芯片.
其中MCG模块做了相应改变.
://www.
1mpi.
com/files/32bit/doc/app_note/AN4445.
pdfK系列不同主频产品(50MHz,72MHz,100MHz,120/150MHz)所用时钟模块也有一些差别,飞思卡尔官网提供不同主频产品的MCG模块驱动,客户可以使用我们提供的驱动.
.
2K60使用50M有源晶振无法配置到150M问题:芯片是K60FX512VLQ15,板子上是50M的有源晶振,以下是我的程序,然后我通过trace管脚查看的频率只有18.
75M,用PWM什么的输出以后检查,也发现时钟频率只有150的1/4.

pll_init(void)//进入FBE模式_C2=0x28;[此处图片未下载成功]SIM_SCGC4|=SIM_SCGC4_LLWU_MASK;_REGSC=PMC_REGSC_ACKISO_MASK;_C1=MCG_C1_CLKS(2)|MCG_C1_FRhttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56DIV(5);//MCGOUTCLK选择外部参考时钟设置一个FRDIV分频,其实不必要.
因为FLL不会用到_C6=0;(MCG_S&MCG_S_IREFST_MASK);//等待FLL参考时钟变成externalref-erenceclock(((MCG_S&MCG_S_CLKST_MASK)>>MCG_S_CLKST_SHIFT)!
=0x2);//等待时钟状态显示为外部参考时钟(extrefclk)//进入PBE模式_C5=MCG_C5_PRDIV0(5);//设置PLL匹配晶振的参考分频数_C6=0x0;_sys_dividers(0,1,2,5);//core=150M,bus=75M,FlexBus=50M,FlashClk=25MMCG_C6=MCG_C6_PLLS_MASK|MCG_C6_VDIV0(2);//VDIV=15(8.
3*18)150MHz//pll_freq=150;(!
(MCG_S&MCG_S_PLLST_MASK));//waitforPLLstatusbittosetwhile(!
(MCG_S&MCG_S_LOCK0_MASK));//WaitforLOCKbittoset//NowrunningPBEMode//TransitionintoPEEbysettingCLKSto0//CLKS=0,FRDIV=3,IREFS=0,IRCLKEN=0,IREFSTEN=0_C1&=~MCG_C1_CLKS_MASK;//Waitforclockstatusbitstoupdate(((MCG_Shttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56&MCG_S_CLKST_MASK)>>MCG_S_CLKST_SHIFT)!
=0x3);//NowrunningPEEMode答案:通过MCG模块图可以看到PLL输出时钟实际上是VCO时钟的一半,所以要让PLL输出150MHz时钟,需要把VCO时钟配置为300MHz.
由于PLL参考时钟为10MHz,所以,你需要配置MCG_C6[VDIV0]的值为b01110(30).
另外,Flextimer模块使用的时钟是总线时钟,而不是系统(内核)时钟.
Traceclock可以输出系统(内核)时钟的1/2.
[此处图片未下载成功][此处图片未下载成功].
3Debug时总是进入hardfault中断问题:为什么我在CodeWarrior10.
4环境下创建的工程,在Debug调试时总进入hardfault中断呢答案:Kinetis绝大部分模块时钟默认为关闭状态,如果需要访问特定模块寄存器需要先使能模块时钟,再进行寄存器读写,否则会产生hardfault异常.
模块时钟的使能一般在芯片对应参考手册(ReferenceManual)的SystemIntegrationModule章节中可以找到.
.
4振荡器模块时钟功耗模式问题:K60参考手册中MCG_C2寄存器的HGO0位可以配置晶体振荡器(crystaloscillator)功耗模式,其低功耗模式和高增益模式有何区别答案:高增益模式主要用于电磁噪声环境,通过提高晶振电压幅度,提高抗干扰能力,同时功耗也会加大.
在高增益模式,电压幅度会达到VCC级别,可能存在过激现象,可以通过串接电阻解决过激问题.
低功耗模式是电压幅度在1V左右,容易受到噪声干扰,优势是功耗低.
16MHz晶振,工作在高增益模式,功耗为.
5mA;工作在低功耗模式,功耗为700uA.
.
5芯http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56片启动模式工作频率问题:为了降低功耗,芯片启动模式工作频率是否可以调低答案:Kinetis芯片默认启动时钟模式为FEI模式,MCG输出时钟频率为20.
97MHz.
可以通过配置Flash选项寄存器设置低功耗模式启动,这时内核和总线时钟为.
62MHz,外部总线和Flash时钟为1.
31MHz.
ProcessorExpert工具.
1K10,IDE是CW10.
3,有多个模块驱动,用不用PE呢问题:新手入门,感谢各位大大回答,感觉PE也要一段时间上手,不如直接自己参考官方示例程序来写因为担心后面工程会很大,PE的话生成文件好像有点多吧:另外,觉得官方给的示例不够啊,也比较粗糙.
.
请问还有没有更好一点的函数库答案:(1)关于例程:需要查看你所用K10芯片主频,飞思卡尔提供K系列产品例程,其中包括大部分模块驱动.
50MHz例程:://www.
1mpi.
com/files/32bit/software/KINETIS_50MHZ_SC.
zip72MHz例程:://www.
1mpi.
com/files/32bit/software/KINETIS_72MHz_SRC.
zip100MHz例程:://www.
1mpi.
com/files/microcontrollers/software/app_software/code_examples/CW_MCU_v10_1_Examples.
zip120MHz例程:_120MHZ_SC://www.
1mpi.
com/webapp/sps/site/prod_summary.
jspcode=TWR-F120M&fpsp=1&tab=Design_Tools_Tab://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56r(2)关于PE使用使用起来比较方便,但是由于PE是一个自动生成代码的工具,所以是会产生一些代码的冗余.
另外,如果是新接触K10,建议重写驱动开始.
这样会更好的理解各个模块的使用,出现问题也能够更快的解决问题.

.
2如何使用PE生成的LDD设备驱动函数的帮助文档问题:经常听说CodeWarrior软件附带的ProcessorExpert很好用,只要对模块简单配置即可自动生成代码.
我用GPIO_LDD生成的代码LDD_TDeviceData*GPIO1_Init(LDD_TUserData*UserDataPtr)不会用啊,我配置了半天也没找到合适的输入参数答案:ProcessorExpert的确非常好用,关键是要入门学会怎么使用这个工具.
通过PE生成的LDD驱动函数,一般都有该Component的帮助文档介绍Properties、Methods、Events、TypicalUsage等.
如果对PE生成的代码不清楚怎么使用,一般可以通过以下步骤,查看函数应用实例:.
选中对应组件模块并右键,单击HelponComponet.
在弹出的Help框中,选择Componetxxxx_LDDTypicalUsage,即可查看相关的例程.
[此处图片未下载成功][此处图片未下载成功].
3如何配置ComponentInspector选项卡的显示级别问题:我已经用ProcessorExpert创建了GPIO_LDD,但Properties那栏里选项怎么那么少,比我在ReferenceManual中看到的功能少好多答案:ComponentInspector选项卡分为Basic、Advanced、Expert三种级别的界面,默认的是Basic这种基本功能界面,如果我们想要对Component进行专业级别配置需要在ComponentInspector选项卡右上角选择Expert,这样一来相关的所有功能应http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56该都被列出来了.

.
4如何配置ComponentInspector选项卡中的Properties问题:我已经用ProcessorExpert创建了GPIO_LDD,但Properties那栏里选项名字怎么和在ReferenceManual中看到的寄存器联系不上,不明白那么选择到底会改变哪些寄存器答案:Properties中列出的那些功能选项其实都是和ReferenceManual中寄存器一一对应的,只不过用了功能名称去描述而非寄存器名称.
从GPIO的Properties可以看出,这些选项全以实现的功能如:输入输出功能的选择、输入捕捉上升沿还是下降沿供我们选择,这样我们只需根据实际需求去选择即可.
如果移动到这些选项上不动,还会跳出来黄底黑字的对该选项的详细说明.
对整个Properties的详细说明也可以通过问题3.
2中提到的类似操作查看,步骤如下:.
选中对应组件模块并右键,单击HelponComponet.
在弹出的Help框中,选择Componetxxxx_LDDProperties,即可查看相关的例程.
[此处图片未下载成功][此处图片未下载成功].
5如何查看ComponentInspector选项卡Properties设置对应寄存器问题:使用ProcessorExpert创建了TimerUnit_LDD并将其配置成了PIT模式,但Properties那栏里选项名字与ReferenceManual中寄存器联系不上,怎样更直观地查看因Properties设置变化导致的哪些寄存器的值需要改变、变成何值答案:有时Properties中一项设置的变化将改变相关多个寄存器值,如果按下图示调出Hardware观察窗后变化某项设置,则对应需改变的寄存器将以黄色底色高亮显示、寄存器值也将相应变化.

[此处图片未下载成功][此处图片未下载成功][此处图片未下载http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56成功].
6如何配置ComponentInspector选项卡中的Methods问题:我已经用ProcessorExpert创建了GPIO_LDD,并配好ComponentInspector选项卡的Properties那些模块功能了,但Methods列出的那些名称Name是干嘛的,怎么有些对应的Value是generatecode、有些则是don'tgeneratecode答案:Methods中列出的那些其实是ProcessorExpert根据用户对Properties的配置生成的对该模块的操作函数.
如果你需要函数名称的Value对应don'tgeneratecode就说明PE未生成该函数,你可以自己将Value改成generatecode使PE生成相应功能函数.
是否让PE生成这些函数,也可以在如图示蓝底M小方框的函数名称处右键Enable/Disable选项切换,蓝底小方框打绿色勾即允许生成,打叉则不生成.
那些允许生成的函数即可通过拖拽蓝色方框,将相应函数移动到你自己的程序中使用.
如果不会使用这些函数同样可以通过移动到该函数名称处静止,以显示该函数详细信息.
如果想要看整个Methods列出函数详细描述,可选中对应组件模块并右键,单击HelponComponet,在弹出的Help框中选择Componetxxxx_LDDMethods.
[此处图片未下载成功][此处图片未下载成功].
7如何理解ComponentInspector选项卡中的Events问题:我已经用ProcessorExpert创建了GPIO_LDD,配好了ComponentInspector选项卡中Properties的那些模块功能,Methods的函数也已经拖进自己的子函数了,但Events我该如何理解答案:Events中列出的是ProcessorExpert根据用户对Properties配置的中断生成的中断事件函数(其实就是中断服务函数http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56的一个子函数).
如果我们在Properties设置时开启了中断和对应的事件如:GPIO口的上升沿触发,则对应中断函数将在Event.
c中生成一个可供编写内容的中断事件函数,如:void_OnPortEvent(LDD_TUserData*UserDataPtr).
而真正的中断服务函数你可以通过右键单击GPIO1_OnPortEvent这个子函数查看被谁调用了,从而追踪到真正的中断服务函数.
下图示如何查看该中断事件函数GPIO1_OnPortEvent()被谁调用:下图示双击红框跟踪到调用该中断事件函数的中断服务函数PE_ISR(GPIO1_Interrupt):[此处图片未下载成功][此处图片未下载成功].
8如何让ProcessorExpert生成代码问题:我已经用ProcessorExpert创建了GPIO_LDD,配好了ComponentInspector选项卡中Properties的那些模块功能,Methods的函数也已经拖进自己的子函数了,那么如何使PE生成模块代码呢答案:当你使用ProcessorExpert配置好模块组件后,只需单击Components窗口右上角GenerateProcessorExpertCode按键即可根据你的设置生成模块组件代码.
.
9如何在PE工程中选择使用的芯片封装问题:在使用CodeWarrior10.
5软件创建MCUBareboard工程的时候已经选择了MK60DN512芯片且使用ProcessorExpert工具,但是该工程Components栏中芯片不是我板子上的芯片,请问如何选择144脚MAPBGA封装形式的芯片答案:你可以通过点击ComponentInspector选项卡Properties中CPUtype来选择你所需封装形式的芯片,如下图.
[此处图片未下载成功][此处图片未下载成功]http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56.
10Codewarrior的断点问题问题:在使用Codewarrior进行仿真的时候,设置断点,如果断点多的时候会出现警告,所以Codewarror的断点到底能支持多少呢另外,还看到说CW有软件断点的功能,如何设置呢答案:对于有些系列的芯片具有"fullchipsimulation"软件仿真功能的,CW是可以支持无数个断点的.
但是对于要硬件调试,具体的断点数就需要查看相关手册,一般会说明芯片能支持多少个硬件断点.
硬件断点的数据是由芯片本身的资源决定,而不是codewarror决定的.
CW是具有软件断点的功能,具体设置是:run->breakpointtype里面选择softwarebreakpoint类型,这个时候断点就会变成一个四边形的小点,个数没有限制,但是要求是程序在RAM中运行起效,否则同样不会有作用.
.
11ProcessorExpert安装问题问题:当安装了PE之后,不能正常打开,提示要安装JAVA环境,这个问题如何解决答案:可以到下面的链接下载是用于Windows的JAVA,就可以解决这个问题.
http://www.
1mpi.
com/zh_CN/download/chrome.
jsplocale=zh_CN.
12PE中使用PDD无定义问题问题:在PE中使用PDD语句,比如ADC_PDD_StartCalibration,编译后提示该函数没有定义,如何解决答案:没有定义是因为没有包含相应的头文件,这里还是以ADC_PDD为例,需要在主函数中添加PDD.
H如下:#include"ADC_PDD.
h"因为ADC_PDD_StartCalibration()在该头文件中有定义,定义为:#defineADC_PDD_StartCalibration(PeripheralBase)(_SC3_REG(PeripheralBase)|http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56=_SC3_CAL_MASK)另外,要确定外设的基准地址是否正确,比如使用ADC0_BASE_PTR,而ADC0_BASE_PTR可以在IO_Map.
h中找到.
UART模块.
1CW10.
3的PE配置K60串口问题问题:使用10.
3版本的codewarrior时,发现非常方便,即使不知道K60的寄存器也可以编程,可是当用到串口时,发现PE生成的接口函数里的参数看不懂,如_TErrorAS1_SendBlock(LDD_TDeviceData*DeviceDataPtr,LDD_TData*BufferPtr,uint16_tSize),这个是串口的发送函数,但是对其中的几个指针变量完全看不懂,也不知道该怎么设置,看他的英文注释看了半天还是弄不来,有没有朋友能解决我这个问题,比如说我要发送一个数据怎么办答案:_TDeviceData*DeviceDataPtr是指要用到的串口设备;_TData*BufferPtr是指需要传输数据的首地址;_tSize是指需要传输的数据大小;你可以通过下面的例程了解如何调用这个函数:boolDataReceivedFlg=FALSE;OutData[]="Helloworld";InpData[10];_TErrorError;_TDeviceData*MySerialPtr;main(void).
.
.
=AS1_Init(NULL);/*InitializationofAS1component*/(;;)://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56par=AS1_ReceiveBlock(MySerialPtr,InpData,1U);/*Startreceptionofonecharacter*/(!
DataReceivedFlg)/*Waituntil'e'characterisreceived*/(InpData[0]=='e')=AS1_SendBlock(MySerialPtr,OutData,sizeof(OutData));/*Sendblockofcharacters*/=FALSE;.
2K60串口中断问题问题:请问K60串口中断,是不是中断一次接收一个字符如果我要接收一串字符串呢,如何将不断接收过来的字符存到一个buff里面答案:(1)可以用DMA传输,缓存定义两个或多个,长度为字符串最大长度,这样在运行中就会发生DMAdone的中断即收到的字符串为最大长度的情况,或者发生UART的idle中断,即收到的字符串小于最大长度的情况,不管发生哪个中断,在中断里进行DMA缓存的切换,把收到数据的缓存放入消息队列,并通知上层应用处理.

(2)在UART中断服务程序中需要清掉UARTStatusRegister1(UARTx_S1)[RDRF]bit.
否则会再次进入UART中断服务程序.
清除UARTx_S1[RDRF]位的办法:读取S1寄存器的值,再读出UARTx_D寄存器的数值.
例程如下:/*ReadandsavetheS1value*/=UART_S1_REG(channel);/*Checktoseeiftherxfullflagisset*/://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56r(status&UART_S1_RDRF_MASK)/*Readdataregistertocleartheflag*/=UART_D_REG(channel);Ezport模块.
1K60Ezport如何使用问题:K60Ezport如何使用,是否有相关资料答案:Ezport就是使用SPI的通信方式,来通过ezport的接口来对芯片进行编程官网上针对这个接口提供了一个AN.
具体可参看下列链接:://www.
1mpi.
com/files/microcontrollers/doc/app_note/AN4406.
pdfUSB模块.
1K60关于usbhost的例程问题:想利用k60的主模式做将数据转存到U盘,fat格式,如何做答案:飞思卡尔提供USB协议栈,其中包括K60USBHOSTMSD带文件系统(FAT32)的例程,你可以参考一下.
USBStack可以从下面的网址下载:://www.
1mpi.
com/webapp/sps/site/prod_summary.
jspcode=MEDICALUSB&fsrch=1&sr=8.
2USB模块供电问题问题:我需要用USB模块,但在看相关文档的时候发现USBregulator有输入(VREGIN)、输出(VOUT33)这两个引脚,应该怎么接答案:Kinetis系列带USB模块的芯片里有一个USBregulator.
这个regulator的输入电压范围是2.
7V到5.
5V.
这个输入电压必须加,不论是从VBUS上给出还是VDD给出,都是可以的.
输出的VOUT33必须加电容,因为USB收发器的供电来自于这个regulator.
这两个脚的接法你可以看参考手册(Referenchttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56eManual)的第三章内"UniversalSerialBus(USB)FSSubsystem"部分,其中有不同供电方案的应用.
关于USBregulator的详细介绍你可以看下参考手册的"USBVolt-ageRegulator"章节.
.
3如何处理未用USB模块的相关电源引脚问题:我的设计没有用到USB模块,其中USB0_DM、USB0_DP、USB_CLKIN作为IO口我知道可以不接.
但我看到USB模块中那个5v转3.
3v的稳压器USBregulator的输入(VREGIN)、输出(VOUT33)电源引脚该怎么办答案:未用到的GPIO口的确可以悬空不作处理.
如果使用这个USBregulator来给USB模块或芯片供电,那么这两个引脚的处理类似外部稳压电源一样需要外接耦合电容.
如果不使用USB模块,也不用USBregulator给芯片供电,那么这两个引脚悬空即可.
芯片的参考手册(ReferenceManual)中有提到该引脚如何处理,详见USBcontrollerconfiguration章节末尾的NOTE.
.
4USB模块数据线拉电阻问题:Kinetis全速USB控制器是否需要在USB数据线上外接上拉或者下拉电阻答案:Kinetis全速USB控制器内部提供数据线上需要的上拉或者下拉电阻,USB控制器工作在HOST或者Device模式均不需要外接上下拉电阻.
USBx_OTGCTL寄存器控制使能上下拉电阻.

CRC.
1K60的CRC计算问题:k60的CRC计算,是否可以不读CRC的中间计算结果而连续向CRC_CRC寄存器写数据,等所有的byte都写完,在最后读一下CRC的最后计算结果答案:是可以不理会中间的过程结果的.
K60的例程中给出的就是这样的操作的.
最后读出最后结果的.
从飞思卡尔的官网上下载KINETIS512_SC这个例程.
里面的crc_demo就是关于CRC模块的例程的.
下载地址:://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56://www.
1mpi.
com/webapp/sps/site/prod_summary.
jspcode=K60_100&nodeId=01624698C9DE2DDDAF&fpsp=1&tab=Design_Tools_Tab综合问题.
1K40开发中遇到的问题问题:一共有3个问题,分别如下:(1)3V供电的MCU无法驱动5V的液晶问题:电路设计如;我的初始化代码如下://enableIRCLK_C1|=0x02;//enableLCDclocks_SCGC3=0x40000000;//enableLCDpins16-31,37-38,40-46,_PENL=0xFFFF0000;_PENH=0x00007F60;//enableLCDbackplanes16,17,18,19_BPENL=0x000F0000;//assignbackplanes-0isBP1,1isBP2etc//LCD_WF3TO0=0x08040201;_WF19TO16=0x08040201;_GCR|=LCD_GCR_VSUPPLY(1);//vll3internal3vlcd//LCD_GCR|=LCD_GCR_VSUPPLY(01);//internal5vlcd//LCD_GCR|=LCD_GCR_HREFSEL_MASK;//5VLCD//enableVIREGandSetTRIM//LCD_GCR|=LCD_GCR_RVEN_MASK;//5VLCD//LCD_GCRhttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56|=0x0F000000;_GCR|=LCD_GCR_CPSEL_MASK;//chargepump_GCR|=LCD_GCR_DUTY(3);//1/4duty_GCR|=LCD_GCR_SOURCE_MASK;//selectaltclockIRC32k_GCR|=LCD_GCR_LCLK(4);//LCD_GCR|=LCD_GCR_RVEN_MASK;//EnableLCD_GCR|=LCD_GCR_LCDEN_MASK;液晶显示很浅,不仔细看看不出来,请问还有哪里需要注意呢(2)看门狗复位问题:我的初始化代码如下://给看门狗模块解锁,以便写寄存器_unlock();//预分频_PRESC=0x0400;//看门狗使用的频率为48MHz/5=9.
6MHz//阈值//看门狗超时时间设置为1s_TOVALH=0x0092;_TOVALL=0x7C00;//使用总线时钟,禁止窗口模式,禁止看门狗中断,开启看门狗_STCTRLH=0x01D3;看门狗已开启就复位,喂狗操作也不管用,不知道是什么问题.
(3)TSI模块问题:我是直接移植的例程,但是操作过程中设置断点可以检测进入TSI中断,但是无法检测到具体键值,请问这是什么原因答案:(1)3V供电驱动5V段码LCD屏的问题通用控制寄存器LCD_GCR[VSUPPLY]位需要配置成0x0或者0x3.
具体请参考手册Table53-38.
LCDpowersupplyoptions,http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56或者下面链接文档page154table17-1http://www.
1mpi.
com/files/32bit/doc/quick_ref_guide/KQRUG.
pdf(2)关于看门狗复位的问题一般Kinetis例程都会在初始阶段关掉看门狗,不知道你的程序是否在代码启动阶段运行了如下代码:/*Disablethewatchdogtimer*/_disable();下面的代码是用来测试看门狗复位的,位于main()函数中.
你可以参考一下.
#defineTIMEOUT_VALUE_BUS(1000*periph_clk_khz)//unlocktheWDOG_unlock();//enablewdogandusebusclockascountersource_STCTRLH=WDOG_STCTRLH_WDOGEN_MASK|_STCTRLH_CLKSRC_MASK|WDOG_STCTRLH_ALLOWUPDATE_MASK|_STCTRLH_IRQRSTEN_MASK;//settimeroverflowtimetoTIMEOUT_VALUE_BUS_TOVALH=TIMEOUT_VALUE_BUS>>16;_TOVALL=TIMEOUT_VALUE_BUS;_delay(500);//waitforWDOGreset_counter();wdog_delay(uint32delaycnt)u32TestDelay,dummy;://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56u32TestDelay=delaycnt;=WDOG_TOVALL;while(--u32TestDelay);wdog_counter(void)u32TestDelay;TestDelay=0xFFFF;("CurrentWDOGcount:0x%x",(WDOG_TMROUTH<<16)_TMROUTL);while(--u32TestDelay);(3)关于TSI模块问题模块只提供一个中断入口地址,需要软件判断产生中断原因.
可以通过查看TSI控制和状态寄存器查看产生中断的类型.
对于判断键值也需要读取对应计数器寄存器看看是否达到按键门限.
这些都要通过软件来判断.
飞思卡尔提供touchsensor软件库,你可以参考一下.
:TouchSensingSoftwareSuiteinstaller.
://www.
1mpi.
com/webapp/sps/site/prod_summary.
jspcode=K60_100&nodeId=01624698C9DE2DDDAF&fpsp=1&tab=Design_Tools_Tab.
2Kinetis100MHzRev1toRev2区别问题:请问MK60DN512ZVMD10和MK60DN512VMD10有什么区别,如果我想买块开发板选哪个芯片比较好答案:芯片名字中的数字、字母分别代表着不同的含义,你可以参看芯片对应的数据手册(datasheet).
从数据手册的Partidentification章节可以看到:这个"Z"代表着硅版http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56本(Siliconrevision)的区别,带Z的是初期硅版本产品.
如果开发新产品我们推荐选择MK60DN512VMD10这种不带Z的芯片,如果想要将DN512ZVMD10的程序移植到MK60DN512VMD10上将会遇到一些问题,因为这两种硅版本的芯片寄存器有所不同,具体可以参考这篇应用手册AN4445.
://www.
1mpi.
com/files/32bit/doc/app_note/AN4445.
pdffpsp=1这也就是为什么我们去飞思卡尔官网下载Kinetis100MHz芯片数据手册(datasheet)、参考手册(ReferenceManual)、SampleCode都会发现文档名称后面有跟个V2.
比如K60芯片144引脚100MHz的数据手册分P144M100SF2V2、K60P144M100SF2两种,名字后面跟了个V2的就是最新硅版本Rev2的资源.
.
3Kinetis100Mhz芯片硅版本号问题:我手头有一块K60芯片,如何才能知道这个芯片是新还是老硅版本的答案:下右图中芯片正面第一行刻的是芯片具体型号,第二行刻的是芯片的MaskSet编号.
通过观察芯片上刻的MaskSet编号为4N30D,对照AN4445中的表格橙线划出那行可以得知该芯片硅版本号是V1.
4的.
若使用图中芯片就应该下载K60、Pin脚数144、主频100MHz、V1版本的参考手册:K60P144M100SF2RM.

.
4Kinetis芯片何如选择对应手册问题:请问如何才能下载我使用的芯片对应的参考手册、数据手册答案:飞思卡尔的参考手册(ReferenceManual)、数据手册(DataSheet)主要是根据Kinetis系列、引脚数、频率、硅版本号划分的.
Kinetis芯片型号命名规则参考数据手册的Partidentification章节.
若芯片具体型号如上表格末行中的DN512VMD10这种不带"Z"的,且MaskShttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56et编号为2N22D,则可知该芯片硅版本号是V2.
2的.
就该下载K10、Pin脚数144、主频100MHz、V2版本的参考手册:K10P144M100SF2V2RM,以及对应的数据手册:K10P144M100SF2V2.

.
5Kinetis芯片何如选择对应勘误表问题:请问如何才能下载我使用的芯片对应的勘误表答案:飞思卡尔的勘误表(Errata)主要是根据Kinetis芯片的MaskSet编号划分的.
通过查看芯片正面刻的MaskSet编号,就能下载到芯片对应的勘误表.
如果芯片使用时遇到不符合手册的问题可以查看对应的勘误表,根据勘误表中方法解决问题.
[此处图片未下载成功][此处图片未下载成功].
6飞思卡尔芯片选型及对应信息查询问题:请问在不知道具体芯片型号的情况下,如何凭借使用需求快速找到符合自己要求的芯片及其对应的芯片资料呢答案:(1)飞思卡尔在线选型工具SolutionAdvisor:(2)飞思卡尔在线信息查找工具FreescaleInforcenter:8.
7Kinetis快速指南代码问题:发现kinetis快速指南KQRUG中7.
1.
5Example-PIT-gatedDMArequests对应的代码在KINETIS512_SC.
zip中没有找到,这个代码在哪里答案:在KINETIS512_SC.
zip中确实是没有PIT-gatedDMA这个例程代码.
但是在CW的安装目录下可以看到基于PE的这个代码.
如果是CW是默认安装的话,这个例程的位置是::MCU.
4_Examples_ExpertK60N512.
8K60芯片的SIM_SDID寄存器问题问题:参考手册里有说明通过读SIM_SDID寄存器的REVID、FAMID、PIhttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56NID可以分别获得芯片硅版本号、K哪个系列、引脚数信息.
但是为什么我看论坛中有几篇手把手官方例程,明明是TWR-K60D100M的开发板,串口打印出来的却是"K51andK53"呢答案:这个其实是MaskSet为2N22D这一批次的bug.
在勘误表KINETIS_2N22D的e6029项有相关描述称这些位在出厂时固化错了.
GPIO.
1如何处理未使用的数字、模拟口问题:在设计K60外围电路时,那些没有用到的GPIO口、模拟口该怎么处理答案:未用到的数字口默认是disable状态(高阻)无内部上、下拉,除非软件使能这些引脚的功能.
模拟口默认为模拟功能.
没有用到的引脚可以不接.
.
2未用RTC模块该如何处理相关引脚问题:如果我不用K60的RTC模块功能,那与之相关的XTAL、EXTAL、VBAT引脚该怎么处理答案:如果你不用RTC模块功能,那么RTC振荡器的输入EXTAL、输出XTAL引脚可以悬空不处理,因为内部RTC的振荡器需要软件使能才会工作.
RTC的电源引脚VBAT也可以悬空不为RTC模块供电,如果你不使用RTC模块.

Flexbus模块.
1NANDFlash控制器(NFC)和FlexBus模块问题:K70产品提供NANDFlash控制器(NFC)和FlexBus模块,其中NFC数据线,/WE(写使能)管脚与Flexbus模块AD数据线,读写线共用管脚,是否K70可以同时接NANDFlash和外部SRAM答案:K70应用内部仲裁机制允许Flexbus与NANDFlash共用管脚.
.
2Flexbus模块片选配置问题:Flexbus模块使用片选0可以正常工作,使用完全相同的配置,为什么片选1不能工作答案:FlexbusCS0的CSMR比较特殊,仅当它的有效位V置1后,其他的片选设置才有效.
.
3Flexbus模块突发模式提http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56高数据传输速度问题:Flexbus模块为什么突发模式可以提高数据传输速度答案:突发模式下通过8bit外设端口读32bit最少需要7个时钟,而写32bit最少需要8个时钟,非突发模式下通过8bit外设端口读或写32bit最少需要13个时钟.
因此突发模式节省了5~6个时钟,如果总共需要传输4000字节,则可节省5000~6000个时钟,以60MHz的FCLK为例,节省时间83~100ms.

.
4Flexbus设计地址缓存地址问题:为什么Flexbus需要外接地址缓存,如何设计地址缓存地址答案:Kinetis产品Flexbus总线使用数据地址共用管脚模式,由于芯片管脚数量现在,并不能提供完全独立的32位数据和地址总线,所以在使用32位地址线(数据线)时需要使用地址缓存器.
地址缓存电路需要使用FB_ALE信号作为地址缓存触发信号,具体线路如下图所示.
.
5NDNDFlash应用问题:K20120MHz产品NDNDFlash控制器提供两个片选信号和一个RB信号,如何在实际应用中使用答案:使用NFC控制三星2GB的flash,型号为K9WAG08U1M,三星2GB的flash内含两片1GB的FLASH,由引脚CE0,CE1控制使能,状态反馈由R/B0和R/B1引脚给出.
K系列控制器的NFC有片选CE0,CE1,和一个状态采集脚R/B,硬件电路三星2GB的flash的两个R/B0和R/B1引脚一同连接到NFC的R/B,使用飞思卡尔官方DEMO,当NFC片选CE0时,即选择第一片1G时,块擦除、页编程、页读取都是正常的,但是当选择CE1选择第二片1G时,出现写错误标志,具体现象为:不管是块擦除还是页写入,再读出相应地址的值为前几十个为x30303030,接着是写入正确的数据左移位后的数据.
管脚配置代码也提高了管脚驱动能力.
问题是由于NFC模块没有收到正确的R/B信号,导致NFC开始送出读数据时钟的时候Flash那边还没有准备好数据.
由于芯片只引出一个RB管脚,所以无论使能CE0还是CEhttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd561,NFC_RAR中的RB0和RB1都enable,尤其是RB0一定要enable.
FTM模块.
1FTM模块时钟问题:我100MHz144pin的K60芯片FTM模块时钟从ReferenceManual的40.
4.
1Clocksource介绍来看仅为systemclock.
但从ReferenceManual第五章的Moduleclocks表格中怎么看到FlexTimers模块时钟源是Busclock答案:FTM模块章节中提到的Systemclock其实是FTM模块的系统时钟,不是ReferenceManual第五章图Clockingdiagram中值等于Coreclock的systemclocks(整个芯片的系统时钟).
你可以看下ReferenceManual第三章FlexTimerConfig-uration的ExternalClockOptions介绍部分,其中提到了默认情况下FTM[此处图片未下载成功]模块是由芯片busclock供给时钟的(FTM将其视为该模块的系统时钟Systemclock).
你这种芯片的参考手册ReferenceManual是K60P144M100SF2V2RM.
pdf.
2FTM模块counter的时钟源问题:从K60芯片FTM模块FTMx_SC寄存器的CLKS可以看出有三种时钟源可供选择,可ReferenceManual的40.
4.
1Clocksource介绍来看仅有一种选择且其为systemclock答案:FTM模块章节中提到的Systemclock其实是FTM模块的系统时钟(即芯片busclock).
所以CLKS=0x01时选择的counter时钟源其实就是芯片的busclock.
FTMx_SC寄存器的CLKS位选择的其实是FTM模块counter的时钟源,而非FTM模块的时钟源.
你可以看下40.
4.
1.
1Counterclocksource这http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56才是介绍counter时钟源的.
.
3FTM输入捕捉最高频率问题:K60芯片的FTM模块设置成InputCapturemode时,待捕捉的输入信号最高频率是多少答案:你可以看下ReferenceManual第四十章的"40.
4.
4InputCapturemode"介绍部分提到"Notethatthemaximumfrequencyforthechannelinputsignaltobedetectedcorrectlyissystemclockdividedby4,whichisrequiredtomeetNyquistcriteria"因为FTM的系统时钟systemclock等于busclock,所以输入信号的最高频率不能超过busclock/4.
.
4FTM配成输入捕捉时CnV有何作用问题:FTM模块设置成InputCapturemode,为何要将捕捉到配置沿口跳变时刻的Counter值保存到CnV中,这个counter值什么作用答案:如果想要计算两次跳变发生的时间间隔,这个CnV中的值就可以用于计算.
我们可以开启counter溢出中断和通道事件中断,一旦捕捉到沿口跳变就进入通道事件中断将CnV值存入一个变量,(如果counter期间没有溢出)那么两次CnV差值乘以counterclock周期就是时间间隔了.
如果两次捕获期间发生counter溢出中断,则可根据FTMcounter溢出周期(FTMx_MOD值)、溢出次数、第一次CnV、第二次CnV计算出时间间隔.
.
5FTM配成输入捕捉时counter溢出周期问题:FTM模块设置成InputCapturemode,如何计算counter的溢出周期答案:因为FTM配置成该模式时,CNTIN的值必须为0且counter工作在Upcounting的方式.
所以根据手册第四十章FlexTimerModule(FTM)中"40.
4.
3.
1Up://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56arcounting"介绍,溢出周期为(MOD–CNTIN0x0001)×periodoftheFTMcoun-terclock.
如果我counter时钟源选择CLKS=0x01即busclock、且busclock配置成50MHz,MOD配置成49999,那么溢出周期为(49999-01)×0.
02us=1ms.
11.
6FTM的DualEdgeCapture与InputCapturemode区别问题:FTM模块输入捕捉可以设置成InputCapturemode或DualEdgeCapture,这两种输入捕捉模式有何区别答案:从参考手册"40.
4.
24DualEdgeCapturemode"可以看出,如果我们需要只用单引脚输入同时测量一个PWM波的占空比以及周期,那么DualEdgeCapturemode将再适合不过了.
因为InputCapturemode如果设置成单边沿捕捉,那么只能测出周期.
如果设置上、下沿都捕捉虽然能够测出脉冲宽度,但是无法得知是高电平还是低电平宽度.
而对于DualEdgeCapturemode来说,如果ELS(n)B:ELS(n)A配置成上升沿、ELS(n1)B:ELS(n1)A配置成下降沿,那么当CH(n)F置1后捕捉到的上升沿时刻counter值将存于C(n)V,CH(n1)F置1后下降沿时刻counter值存于C(n1)V.
将C(n1)V与C(n)V差值乘以counterclock周期就得出高电平脉冲宽度.
使用DualEdgeCapturemode的ContinuousCapturemode情况下,两次C(n)V差值就可以推算出PWM波周期.
同问题11.
4一样,需注意期间是否有counter溢出,如果溢出就需根据溢出次数、counter溢出周期、C(n)V、C(n1)V值加以计算.
.
7FTM的DualEdgeCapture捕捉边沿顺序问题:FTM模块DualEdgeCapture模式下当捕捉到channel(n)配置的边沿后对应的CH(n)F将置http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd561,捕捉到channel(n1)配置的边沿后对应的CH(n1)F将置1.
那如果channel(n1)配置的边沿先发生使CH(n1)F先置1,此时CnV的值因为还未捕捉到所以默认为0.
是否会发生以上描述的这种情况,导致C(n1)V与CnV差值无法体现真正的时间差答案:从参考手册"40.
4.
24.
1One-ShotCapturemode"可以看到ELS(n)B:ELS(n)A选择了第一个需被捕捉的边沿,ELS(n1)B:ELS(n1)A选择了第二个需被捕捉的边沿.
及"40.
4.
24.
2ContinuousCapturemode"中ELS(n)B:ELS(n)A选择了初始需被捕捉的边沿,ELS(n1)B:ELS(n1)A选择了最终需被捕捉的边沿.
结合以上两处可以看出不会发生问题描述的情况,双边沿捕捉是分先后顺序的,其总是先捕捉channel(n)配置的边沿再捕捉channel(n1)配置的边沿.
.
8FTM的捕捉延时问题:FTM模块配置成输入捕捉模式时,从输入匹配的信号跳变发生到程序响应是否有延时答案:从参考手册"40.
4.
4InputCapturemode"可以看到从匹配的信号跳变发生到CHnF标志置1,至少有3个FTM系统时钟上升沿的延时.
2个FTM系统时钟延时用于输入信号同步,1个延时用于边沿检测.
如果开启了手册"40.
4.
4.
1FilterforInputCapturemode"提到的输入信号滤波器,那么其总延时将根据滤波器设置及输入信号毛刺状态而定.
换而言之CHnF标志置1时CnV存入的FTMcounter并不是真正信号发生匹配边沿跳变的counter值,这是存在硬件延时的.
.
9eDMA传输FTM捕获的时钟值问题:配置FTM0的Channel0为上升沿捕获模式,然后利用eDMA传输到已定义的数组中,但是经过测试发现,Channel0可在上升沿发送时,捕获时钟,却无法经eDMA传输到指定的数组中FTM配置代码如下所示.
[此处图片未下载成功]http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56[此处图片未下载成功]答案:根据K60参考手册关于FTM支持DMA功能的描述所得,需要在初始化函数中,同时配置DMA与CHnIE位(下图所示).
.
10FTM寄存器分类说明问题:最近,正在使用K10的PTMS输出边沿对齐的PWM,但对于如何操作寄存器有点迷糊,K10的参考手册将FTM寄存器分为两类:第一类寄存器与L系列的TPM寄存器一致,另一种就是FTM所独有的,用于FTM增强功能操作的寄存器.
但是我好像在K10的参考手册中,没有发现两者寄存器分类的说明啊由于本人没有使用过TPM的经验,所以需要两类寄存器分类的说明,谢谢!

答案:第一类寄存器:FTM_SCFTM_C7V;第二类寄存器:_CNTINFTM_PWMLOAD,这是K10参考手册没有写清楚,我会尽快通知文档部门更正的.
.
11FTM寄存器操作问题:K60参考手册的945页的注释强调:当FTMx_MODE[FTMEN]=0时,不能对FTM的特定寄存器进行写操作,我想使用FTM输出中心对齐PWM,即FTMx_MODE[FTMEN]=0,当对FTMx_SC进行操作时,我发现对_SC[CLKS]及FTMx_SC[PS]进行写操作都需要在FTMx_MODE[WPDIS]=1的条件下,但是根本不能对FTMx_MODE[WPDIS]进行写操作,在_MODE[FTMEN]=0的条件下啊,所以我觉着文档说明有矛盾啊答案:其实文档部分并不矛盾的,因为FTMx_MODE在复位后,_MODE[WPDIS]=1(如下图所示).
12FTMEN位的作用问题:KinetisK系列的FTMx_MODE[FTMEN]位在参考手册中解释为:置1是FTM使能,即增强FTM功能,而在官方的Democode中,FTMEN位为1表示禁止,清0表示使能,不知如何使用FTMEN到底为何功能答案:KinetisK系列的http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56的FTM模块是L系列的TPM模块的增强版,FTMEN的作用是控制是否使用FTM增强的功能.
当FTMEN被置位,FTM的特殊寄存器就生效了,如果FTMEN清零的话,FTM的特殊寄存器不能被使用.
具体如下图所示:[此处图片未下载成功]RTC模块.
1RTC的寄存器锁定控制与寄存器进入控制的区别问题:RTC模块中有寄存器锁定控制以及寄存器进入控制,那么这两种控制有什么区别为什么要在RTC模块中添加这两种控制答案:寄存器锁定控制,只控制4个寄存器的写操作,而读操作不受影响.
寄存器的进入控制,控制了8个寄存器,并且控制读和写的操作.
寄存器锁定控制只受VBARPORT或者RTC软件复位的影响,而寄存器进入控制不受VBARPORT或者RTC软件复位的影响,但是受其他系统复位的影响,比如外部引脚复位,电源上电复位等.
加入寄存器锁定控制欲寄存器进入控制的原因是RTC模块和其他模块不一样,它可以在主电源掉电的时候,利用外部的VBAT电源继续工作.
所以加入寄存器锁定控制是为了保护主要的寄存器(RTC计数值)不受主电源的上电或者掉电的影响.
寄存器进入控制可以保护在电池状态改变时的RTC计数值.
.
2RTC模块最大中断时间问题:RTC模块在VLLS/VLLS3模式下的最大中断时间是多少答案:RTC模块提供了定时报警寄存器与秒计数器相比较,并产生报警中断,这些时间是以秒为单位.
定时报警寄存器是32为的,所以最大的溢出值为XFFFFFFFF秒.
具体细节,请查看用户手册的RTC章节.
.
3RTC模块是否具有日历功能问题:K20芯片的RTC模块是否具有日历功能答案:K系列的RTC模块没有硬件日历功能,但是可以使用软件去完成日历的功能.
Codewarrior中的PE带有RTC_LDD模块,可以生成软件方式的日历程序.
另外,在codewarrior的安装目录下,有一个基于PE的RTC例程,具体路径为:C:://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56eMCU.
3_Examples_ExpertK20D72M.
4RTC模块的精度问题:KinetisK系列芯片的RTC的精度为多少[此处图片未下载成功]答案:目前还没有确切的数据,但是kinetisRTC模块提供了时间补偿功能.
时间补偿逻辑模块可以提供准确、宽范围的时间补偿,能够纠正误差高达3906ppm,最低到0.
12ppm.
补偿的时间范围为0.
01秒/天到337.
5秒/天.

.
5RTC模块TPR读取问题问题:RTC_TPR寄存器是累加寄存器,除非发生溢出,否则连续读取不会出现最后读取值小于之前读取值.
但为何还会发生最后读取值小于之前读取值的情况答案:RTC_TPR寄存器的值在增加过程中是可以被读取的,如果在TPR寄存器增加过程中同时读取寄存器的值,会由于数据总线的限制,读到不正确的值.
建议连续两次读取TPR寄存器的值,然后软件进行验证,只取两次读取完全相同的值作为TPR寄存器的值.

.
6RTC模块未用引脚连接问题:不准备使用MK20DX256VLL7的RTC模块,下面的引脚该如何链接呢(1)VBT(PIN30)(2)XTAL32(PIN28)(3)EXTAL32(PIN29)答案:可以将VBAT,XTAL32以及EXTAL32都浮空,还可以将XTAL引脚接地.
13I2C模块.
1K60的I2C内部上拉问题问题:I2C模块应该都是OD输出,那就必须要有上拉存在,可是为什么很多的库函数里面的写法都是没有配置内部上拉的,直接在PORT寄存器里设置哪个口用作I2C就可以了,为什么不配置上拉呢答案:在写程序的时候,可以不用设置I2C模块的内部上拉.
但是因为已经设置成了OD了,就必须要有上拉电路,所以I2C模块的外部上拉电阻必须要有.
http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56FLASH.
1flashIFR相关问题问题:programflashIFR和DataflashIFR的地址是重复的,都是0x00-0xff,另外programflashIFR的64B只能写一次,这有什么特殊的用处吗答案:programflashIFR和DataflashIFR都是独立于programflash或Dataflash的存储区,所以它们的地址也是独立的,并且需要专门的读写命令才可以访问,programflashIFR确实是只能写一次的,用户可以用来保存一些不会改变又不想被masserase影响到的数据,比如产品的序列号等数据.
.
2flash加密问题:如果要对flash加密,初始后门密码从哪里获取是否有加密的例程代码答案:这里的后门密码是backdoorcomparisonkey,它们是在0x0_0400-0x0_0407的位置,一般不初始化全是0xFF,即masserase后的状态.
如果想要加密的话,可以参考KINETIS512_V2_SC,直接修改vector.
h中的宏定义就可以了,如下图所示:可以把FE改为FF就加密了.
另外,还要在flashloader里面添加一个命令行参数,如下:[此处图片未下载成功][此处图片未下载成功].
3EzPort烧写flash与JTAG烧写的异同点问题:EzPort和JTAG都可以烧写flash,那么它们有哪些异同点呢答案:JTAG上的有些管脚是和Ezport复用的,可以进行烧写和调试功能;EzPort只能用于烧写,不能用于debug.
关于EzPort的文档,官网有一个应用笔记AN4406,下载地址为:://www.
1mpi.
com/files/microcontrollers/doc/app_note/AN4406.
pdf://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56ar14.
5EEPROM的分区问题问题:K系列的生成EEPROM,就需要执行flexRAM以及FlexNVM的分区操作,但是在操作这个只能从RAM中执行,如果大批量芯片需要具有EEPROM功能,可能就需要先烧写RAM程序,实现分区,然后再烧写Flash程序,比较麻烦,是否有其他方法直接从flash中执行一次性实现答案:由于操作分区指令的时候,flash模块是禁止操作的,所以分区指令必须放到RAM中执行,如果大批量的程序,也可以使程序直接从flash中执行,首先做一个分区判断,如果已经分区则不用再分区,如果没有分区,这时候,将分区操作拷到RAM中执行,这样就可以实现分区功能,具体的拷贝方法,官网有一个应用笔记AN4695,下载链接为:://www.
1mpi.
com/files/32bit/doc/app_note/AN4695.
pdffsrch=1&sr=1关于EEPROM的程序,IAR安装目录下有个相应的程序可以参考,默认安装的文件位置为::FilesSystemsWorkbench6.
5_demo.
6EEPROM的寿命问题:K系列使用FlexRAM做EEPROM,这种EEPROM的实际最大使用寿命是多少答案:一般普通的EEPROM的寿命大概只有10万次擦写,但是kinetisK系列的芯片通过使用FlexNVM作为EEPROM的数据备份区,很大程度上提高了EEPROM的寿命,根据数据手册,不同的备份区大小可以达到不同的擦写寿命,如下图:[此处图片未下载成功]具体的寿命还可以按照下面的公式计算:其中,:每个FlexRAM区域平均最小的写次数.
flash:FlexNVM中每个Subsystem中用于EEPROM的备份区域大小.
://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56EEESPLIT:subsystem的分配因子,值有1/8,1/4,1/2.
:总的EEPROM的大小.
Efficiency:写32bit与16bit为0.
5;写8bit为0.
25.
.
7使用PE中的Flash_LDD模块配置EEPROM问题:K20DX256芯片,使用PE中Flash_LDD初始化代码,模块配置1KB的和16KB的D_Flash,但是使用NAME_EraseBlock或者NAME_Write对EEPROM地址0x14000000操作的时候,出现了错误137=ERR_PARAM_ADRESS,这个问题如何解决是否还有相关资料可以参考答案:不能直接使用Flash_LDD模块对EEprom区域写操作,可以使用如下的代码操作:*(word*)0x14000000=0xAA;另外,官网有一篇应用笔记AN4282讲了kinetisEERPOM的知识,下载地址为:http://www.
1mpi.
com/files/32bit/doc/app_note/AN4282.
pdffsrch=1&sr=1在读写操作的时候,根据"3.
3.
1EEEwrites"和"3.
3.
2EEEreads"章节检查相关的标志位.
其余详细信息,还可以参考我们的英文论坛中的一个帖子:https://http://www.
1mpi.
com/message/307170#307170LCDC模块.
1TWR_K70F120M配合TWR_LCD_RGB的代码.
问题:新买的TWR_K70F120M配合TWR_LCD_RGB,烧写了官方120M程序包里面的lcdc程序,插上电LCD只有4个方块,中间有个黑块,并会消失,debug期间还出现了一个ExternalPinReset的错误,这个怎么解决答案:其实TWR_LCD_RGB是具有两个版本的,新的LCD版本的时钟极性转变是下降沿,而旧版本的LChttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56D是上升沿,所以,首先你需要查看你的LCD版本,在现在的官方例程KINETIS_120MHZ_SC中在lcdc_init_screen()程序里面是有[此处图片未下载成功]LCD版本区分的,具体的版本对应的程序段是使用条件编译确定,所以可以通过选择相应的版本代码就可以解决这个问题.
CAN模块.
1K60FX512VLQ15芯片CAN通讯问题.
问题:现有三台机子(id是1,2,3),程序都是一样的.
两台机子(2,3)同时向另外一台(1)机子发送数据,1号机子总只能接收到2号机子的数据,而相应的3号机子的数据总丢掉.
其错误计数都是为0.
2号或3号机子单独向1号机子发送,1号机子接收都正常.

如何正确接收2和3号同时发过来的数据,要注意哪些地方答案:两个CAN节点要同时发送数据是不可能出现的,因为CAN总线是抢占式的,同时只能有一个CAN节点发送数据.
你需要注意2号节点发送CAN帧的密度,如果2号节点一直发送CAN帧,长期占用CAN总线,3号节点是没有机会发送CAN帧的.
多个MB配置相同的ID,可以在CANx_MCR使能队列模式【IRMQ】,这样多个MB可以按队列顺序依次接收相同ID的CAN帧.
最后一个MB有可能会出现OVERRUN的情况,即没有及时读取接收到的数据.
ENET模块.
1以太网工作频率问题:以太网控制器最小工作频率答案:无论以太网控制器工作于MII/RMII模式100Mbps,以太网控制器最小工作频率为50MHz.
低于这个频率会引起数据错误和FIFO存取问题.
注意这里所指时钟频率为以太网控制器工作频率,而不是RMII/MII外部PHY参考时钟频率.
18内核模块.
1K系列的Systick相关文档问题:在K系列的referencemanual中找不到关于Systick的寄存器介绍,是否有相关文档答案:Systick时钟是ARMCortex架构的http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56可裁剪模块,存在于NVIC中(但大多数IC厂商都没有将其裁剪掉).
KinetisK系列MCU的内核为cortex_M4内核,所以可以查看cortex_M4内核文档,可以参考如下链接:://www.
1mpi.
com/help/topic/com.
arm.
doc.
dui0553a/DUI0553A_cortex_m4_dgug.
pdf.
2K系列中Systick的可选时钟源有哪些问题:K系列的Systick可选时钟源为哪些,是否和KL一样有两种选择[此处图片未下载成功]答案:K系列的Systick时钟源和KL系列的有些区别,并不是有两种选择,根据K系列的referencemanual只能选择为内核时钟.
三KE系列FAQ调试相关.
1FRDM-KE02Z板载OpenSDA为何无法调试问题:刚收到FRDM-KE02Z开发板,怎么无法调试,总是显示未检测到OpenSDA调试接口(如图)答案:如果首次使用P&EOpenSDA调试接口,需要安装WindowsUSBDrivers驱动.
该驱动可以去pemicro网站下载:http://www.
1mpi.
com/opensda/index.
cfmFRDM-KE02Z板载OpenSDA接口出厂默认的是MSD引导模式,如果想要Debug调试需要安以下步骤操作:1.
按住复位键再上电(插上USB线),这时在计算机资源管理器里会看到一个"BOOTLOADER"的磁盘硬件;2.
把FRDM-KE02Z_QSP文件夹下OpenSDAAppli-cations文件夹下的DEBUG-APP_Pemicro_v106文件拖入上面的BOOTLOADER磁盘内;3.
断电再上电,设备管理器里即可看到PEMicroOpenSDA的硬件了.
这时你就可以正常调试了.
FRDM-KE02Z_QSP可以去该网页下载:://www.
1mpi.
com/zh-http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56Hans/webapp/sps/site/prod_summary.
jspcode=FRDM-KE02Z&fpsp=1&tab=Design_Tools_Tab.
2Keil-MDK软件如何选择OpenSDA作为调试工具问题:为什么我的FRDM-KE02Z开发板用KeilMDK472开发环境配置调试工具时找不到OpenSDA这种调试工具的选项,只看到J-LINK、ULINK这么几个调试工具[此处图片未下载成功][此处图片未下载成功]答案:KeilMDK需要在安装"FSLKINETISDRIVERSV113.
EXE"这个补丁后才能选择使用OpenSDA调试工具.
如图示Debug选项卡中选择PemicroOSJtag后点击设置对OpenSDA调试进行相关设置以后就可以debug了.
://www.
1mpi.
com/download/docs/408.
asp.
3FRDM-KE02Z板子是否支持SWD调试问题:FRDM-KE02Z开发板上有个标着SWD的排针,是否我自己设计电路板的时候就可以不用OpenSDA调试口而用SWD调试仿真程序答案:如果你的FRDM-KE02Z开发板上已经焊了该SWD排针,且手头有JLink这类仿真器,那么只需在编译器中选择使用SWD接口即可调试.
驱动库.
1FRDM-KE02Z是否有驱动库函数问题:FRDM-KE02Z开发板有驱动库函数吗答案:飞思卡尔从KE系列开始推出底层函数库了,大部分的外设都有了标准库(提供统一的API接口)而且还附带参考demo,方便嵌入式开发者,缩短开发周期.
该驱动库函数可以去以下网站上点击下载"KEXX_DRIVERS_V1.
0.
1_DEVD"http://www.
1mpi.
com/webapp/sps/site/prod_summary.
jspcode=FRDM-://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56E02Z&fpsp=1&tab=Design_Tools_Tab[此处图片未下载成功]集成开发环境.
1CodeWarrior软件限定版和评估板区别问题:最近想玩一下FRDM-KE02Z开发板,以前没用过CodeWarrior软件,请问在哪可以下载答案:CodeWarrior10.
5集成开发环境最近刚推出,分为评估板(Evaluation)和限定版(SpecialEdition).
评估板可以免费试用30天,之后就需要购买了.
限定版是对工程产生的代码大小限制小于64KB,只要工程文件小就可以免费用.
限定版和评估板还分别提供离线下载安装包和在线更新安装包:http://www.
1mpi.
com/zh-Hans/webapp/sps/site/prod_summary.
jspcode=CW-MCU10&fpsp=1&tab=Design_Tools_Tab.
2为何在CodeWarrior10.
4软件下无法创建KE02的工程问题:什想用CodeWarrior10.
4软件下的ProcessorExpert创建KE02的工程,找不到KE系列的芯片选项答案:KE系列是最新推出的,当时的CodeWarrior集成开发环境还未将其添加进去,你可以下载KE02Z补丁包"PExDrv10.
2KE02Z20MHzServicePack(Win)".
http://www.
1mpi.
com/zh-/webapp/sps/site/prod_summary.
jspcode=KE02&fpsp=1&tab=Design_Tools_Tab.
3CodeWarrior软件如何安装新产品的补丁包问题:我已经下载了KE02Z的补丁包"PExDrv10.
2KE02Z20MHzServicePack(Win)",请问该如何安装它答案:你可以去官http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56网下载"CW_MCU_SP_QS.
pdf"该文档描述了CodeWarrior(Windows版)软件在线、离线两种安装更新ServicePack补丁包的操作步骤http://www.
1mpi.
com/files/soft_dev_tools/doc/support_info/CW_MCU_SP_QS.
pdf4GPIO.
1单周期GPIO翻转例程问题:在FRDM-KE02Z板上测试FastGPIO_demo的例程,为什么例程的for循环中要连续写那么多行FGPIOA_PTOR=0x400;我删掉多余的只留一行后IO口翻转频率较之前10MHz怎么就慢了呢我用的是官网上KE02-SC示例代码IAR环境下的FastGPIO_demo程序.
答案:通过反汇编可以看出每条C语言写的FGPIOA_PTOR=0x400;对应一条编语句STRR1,[R0,#0x4].
然而在for循环最后行FGPIOA_PTOR=0x400;对应的STRR1,[R0,#0x4]后还跟了一句B.
Nmain_0.
这句话其实就是for循环执行到最后行时的跳转指令,使其能够跳回for循环开头重新开始执行代码.
如果你在for循环中只留一句FGPIOA_PTOR=0x400;翻转IO口的语句,就会导致每次执行完IO翻转都要调用跳转指令.
执行跳转指令也是需要时间的,汇编指令执行时间可以参考ARM公司的Cortex-M0DevicesGenericUserGuide.
.
2特殊的GPIO复位状态问题:在FRDM-KE02Z板上使用IO口模拟4线SPI方式驱动oled,为何用PORTE的0~4可以但换到PORTB、PORTC、PORTA口就不行呢答案:通过查看参考手册"MKE02Z64M20SF0RM"的第11章PortControl(PORT)介绍部分可以得知,PTA4,PTA5,PTB4和PTC4复位后分别是SWD_DIO,_CLK,NMhttp://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56IandRESET功能,所以在使用时需要额外注意.
.
3KE02的GPIO口输入filter问题:看到KinetisL系列的GPIO的输入有filter,KE02芯片是否也有答案:通过查看参考手册"MKE02Z64M20SF0RM"的11.
4Inputglitchfiltersetting可以看出,KE02也有输入毛刺滤波器.
大家可以把它理解成一个小脉冲的计时器,就是相当于把一些保持时间不够的小脉冲给过滤掉.
比如目前GPIO是一个高电平,如果产生了几个时间很短的低脉冲,那么这个filter使能后,就会不识别这种短暂的低脉冲.

.
4KE02引脚功能选择问题:KE02芯片的同一个引脚上有许多种功能,参考手册中没找到可以切换引脚功能的相应寄存器,要如何才能将引脚配置成某种功能呢[此处图片未下载成功]答案:KE02芯片不像KinetisL、K系列由PORTx_PCRn寄存器的MUX位来选择引脚配置成哪种功能.
如要将KE02的引脚配置成某种功能,需使能相应模块功能.
若同时使能了某一引脚上两种模块功能,则优先级高的模块功能获得对该引脚控制权.
以图中PTD1引脚为例,如要将该引脚配置成Alt1列功能则需使能KBI1_P1模块功能.
若同时还使能了SPI1模块,则该引脚将变为优先级较高的SPI1_MOSI功能.

FLASH.
1KE系列EEPROM与K系列EEPROM的区别问题:KE02的EEPROM和K系列的EEPROM有什么区别呢答案:KE02的EEPROM是芯片内部自带的,从系统内存分别地址中可以看到,EEPROM的地址为0x1000_0000-0x1000_00FF,一共具有256个字节,这个以2byte为一个sector,一共具有128个sector.
可以通过EEPROM的操作指令直接读写,擦除等.
但是当一个sector中有数据时,再更新数据,需要先擦除了之后才可以写.
K系http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56列的EEPROM和KE系列不一样,它的EEPROM只有带有flexNVM模块才可以生成EEPROM,这里的EEPROM其实是采用flexRAM和FlexNVM模块的组合模拟成,真正的EEPROM的地址是FlexRAM的地址,然后将FlexNVM作为EEPROM的备份区实现EEPROM的功能,这种EEPROM相对于普通EEPROM,寿命大大的增加了.

时钟系统.
1KE02外部晶振频率范围问题:我的KE02选用了11.
0592MHz的外部晶振,为何FEE模式下外部参考时钟频率不是连续,且无11.
0592M所在的范围下图表格截于参考手册Z64M20SF0RM.
[此处图片未下载成功]答案:通过参考手册MKE02Z64M20SF0RM的"20.
1.
2Blockdiagram"章节看到FLL在时钟系统中的位置如下图示,FLL可以选择内部或外部时钟(橙线标出),这两种时钟源都必须经过RDIV分频至31.
25kHz~39.
0625kHz范围.
.
0592MHz的外部晶振属于4-20MHz频率范围,根据ICS_C1寄存器RDIV位描述,分频系数应为表格中OSC_CR[RANGE]=1那列.
但11.
0592MHz无法通过OSC_CR[RANGE]=1那列的分频系数降频到31.
25kHz~39.
0625kHz范围.
[此处图片未下载成功][此处图片未下载成功].
2KE02中的FLL的锁频系数问题:KE02ICS模块中的FLL的锁频系数是多少如下图中红框内的FLL.
答案:KE02ICS模块中的FLL的锁频系数为1024.
即ICSFLLCLK的频率为ICSFFCLK频率的1024倍,这点可以从KE02的referencemanual的20.
4.
1.
1FLLengagedinternal(FEI)以及20.
4.
1.
2http://www.
1mpi.
com/doc/b1cdad590863e13c2b83dd56FLLengagedexternal(FEE)看出.
[此处图片未下载成功][此处图片未下载成功]文档下载网是专业的免费文档搜索与下载网站,提供行业资料,考试资料,教学课件,学术论文,技术资料,研究报告,工作范文,资格考试,word文档,专业文献,应用文书,行业论文等文档搜索与文档下载,是您文档写作和查找参考资料的必备网站.

乌云数据(10/月),香港cera 1核1G 10M带宽/美国cera 8核8G10M

乌云数据主营高性价比国内外云服务器,物理机,本着机器为主服务为辅的运营理念,将客户的体验放在第一位,提供性价比最高的云服务器,帮助各位站长上云,同时我们深知新人站长的不易,特此提供永久免费虚拟主机,已提供两年之久,帮助了上万名站长从零上云官网:https://wuvps.cn迎国庆豪礼一多款机型史上最低价,续费不加价 尽在wuvps.cn香港cera机房,香港沙田机房,超低延迟CN2线路地区CPU...

半月湾hmbcloud升级500Mbps带宽,原生VPS,$4.99/月

关于半月湾HMBCloud商家之前也有几篇那文章介绍过这个商家的产品,对于他们家的其他产品我都没有多加留意,而是对他们家的DC5机房很多人还是比较喜欢的,这个比我们有些比较熟悉的某商家DC6 DC9机房限时,而且半月湾HMBCloud商家是相对便宜的。关于半月湾DC5机房的方案选择和介绍:1、半月湾三网洛杉矶DC5 CN2 GIA同款DC6 DC9 1G内存 1TB流量 月$4.992、亲测选择半...

bgpto:BGP促销,日本日本服务器6.5折$93/月低至6.5折、$93/月

bgpto怎么样?bgp.to日本机房、新加坡机房的独立服务器在搞特价促销,日本独立服务器低至6.5折优惠,新加坡独立服务器低至7.5折优惠,所有优惠都是循环的,终身不涨价。服务器不限制流量,支持升级带宽,免费支持Linux和Windows server中文版(还包括Windows 10). 特色:自动部署,无需人工干预,用户可以在后台自己重装系统、重启、关机等操作!bgpto主打日本(东京、大阪...

shift后门怎么用为你推荐
mathplayer比较word,TeX,MathML中的数学公式处理方式的异同点,尽量详细哦,分数不是问题,谢谢哈,会加分的。xyq.163.cbg.com梦幻西游里,CBG是什么?在那里,能帮忙详细说一下吗同ip网站12306怎么那么多同IP网站啊?这么重要的一个网站我感觉应该是超强配置的独立服务器才对啊,求高人指点同ip域名什么是同主机域名百度关键字百度推广关键词匹配方式有哪些?www.28.cn北京吉信通公司是真是假的公司呢chudian365舒思盾按摩器怎么样用起像触电苗惟妮大好时光演员表珊珊窝尚公寓蜗尚公寓是个什么网?蜗尚公寓到底是做什么的?查看源代码怎么查看一个文件的源代码
虚拟主机评测 台湾虚拟主机 泛域名 阿里云邮箱登陆首页 oneasiahost googleapps 私服服务器 缓存服务器 光棍节日志 标准机柜尺寸 qq数据库下载 qingyun 阿里校园 绍兴电信 双线机房 www789 789电视剧网 服务器防御 阿里云邮箱怎么注册 新疆服务器 更多