查看: 3033|回复: 3

[MQX] 飞思卡尔技术小贴士:MCU、MQX、Kinetis、硬件一网打尽

[复制链接]

该用户从未签到

13

主题

233

帖子

0

高级会员

Rank: 4

积分
745
最后登录
2018-7-26
发表于 2015-7-21 16:54:20 | 显示全部楼层 |阅读模式
本帖最后由 莫林2020 于 2015-7-21 17:03 编辑


一、MCU
1、Freescale公司的十六进制目标代码文件"S"格式,它将目标程序和数据以ASCII码格式表示,可直接显示和打印。目标文件由若干行S记录构成,每行S记录可以用CR/LF/NUL结尾。
(1)类型 表示S记录的类型
(2)记录长度
(3)地址
(4)代码/数据
(5)校验 如图所示:
类型记录长度
地址编码数据校验
2字节2字节2,3,或4字节0-n字节1字节




2、MC9S12EEPROM结构:$0000~$0FFF是4KB为EEPROM的存储空间,复位时默认的EEPROM地址是从0开始的,而单片机各I/O寄存器的地址已经占用了从0地址开始的1KB空间,故EEPROM中开始的1KB空间($0000---$03FF)看不到了,所以实际上用户可以访问的是$0400---$0FFF的3KB的存储空间。MC9S12内部集成了4KB的EEPROM存储器,具有单块和整块擦除、编程、灵活保护和安全功能、快速区域擦除和字编程模式特点,规范字访问可在单总线周期内完成。EEPROM是一种非易失性存储介质,在系统掉电后,内容仍能保持不变,可以用来保存一些短时间不变的内容。

3、SCI是我们常用的一个模块,让我们一同欣赏一下网友对SCI使用的心得吧。我们在使用任何一款芯片的时候,首先要熟悉寄存器手册和硬件手册。我们要做到以下几点:1、先熟悉资源;2、熟悉芯片参数; 3、熟悉寄存器手册各个寄存器的标志位。http://t.cn/aFS3xu

4、对于SPI0,当SPE=1即SPI系统使能时,SPI使用PS口的四个引脚:串行位时钟SCK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低有效的从机选择线SS。在SPI系统关闭时,这四个引脚用作通用I/O线PS7-PS4。

5、PS口的连接方式: SPI0与PS口共享PS7-PS4引脚,SPI1与PP口共享PP7-PP4引脚, SPI2与PP口共享PP3-PP0引脚。当SPI系统使能时,四个引脚一般由通用I/O变为SPI的有关引脚(SS、SCK、MISO、MOSI)。但当 SPI工作在双向模式时,个别引脚仍可用作通用I/O。

6、SPI系统主要由8位移位寄存器、时钟控制逻辑、引脚控制逻辑、SPI控制逻辑和分频器以及波特率寄存器SPIBR、状态寄存器SPISR、控制寄存器1SPICR1、控制寄存器2SPICR2、数据寄存器SPIDR等5个寄存器组成。


二、MQX
1、MQX使用内核日志,应用程序需要经过下列步骤
1) 选择创建轻量级日志组件
2) 通过_klog_create()语句创建内核日志,和创建轻量级日志相类似。也可以通过_klog_create_at()在一个确定的位置创建内核日志。
3)调用_klog_control()建立对日志的控制,并确定具体的位标志组合,如图

f1.jpg

2、MQX内核日志允许应用程序日志包括以下部分:

1)用于实现MQX 功能所调用函数的进入和退出信息

2)用于实现特殊功能所调用函数的进入和退出信息

3)现场切换

4)中断 性能工具通常使用内核日志来分析一个应用程序如何操作以及如何使用资源的问题。
f2.jpg
3、MQX日志:
1 )创建日志组件:用_log_create_component()来明确地创建日志组件
2 )创建日志:用_log_create()函数创建一个日志:
• 日志号0~15。
• _mqx_uint 的最大数值将存储在日志中(包括标题)。
• 当日志满的时候如何处理。
3 )格式化日志条目


f3.jpg


4、MQX日志:许多实时应用程序都需要记录重要信息,例如事件、状态转换、或功能的进入和退出。如果应用程序记录了所有发生的信息,你可通过分析这些信息的序列来确定程序处理是否正确。如果每条信息都有一个时间戳,你便可以进一步确定,程序在哪里花费了处理时间,哪些代码应需优化。



f4.jpg

5、MQX应用程序可以为每一个ISR 装载ISR 异常处理程序。当正在运行的ISR 发生异常时,MQX将调用异常处理程序并中止ISR。如果应用程序没有装载异常处理程序,则MQX将简单终止ISR。当MQX 调用异常处理器时,首先验证:
• 当前ISR 号
• ISR 的数据指针
• 异常号
• 异常框架堆栈的地址

6、MQX 提供了一个用汇编语言编写的ISR 内核,这个内核会在其它任何ISR 运行之前运行, 并完成如下任务:
• 保护活动任务的现场
• 切换到中断堆栈
• 调用合适的ISR
• 当ISR 返回后,恢复具有最高优先级的就绪任务的现场。
7、MQX看门狗:MQX 看门狗组件为每个任务提供软件看门狗,如果一个任务崩溃或者超时,那么看门狗将提供一种检测问题的方法。首先,任务用特定时间值启动看门狗,如果在看门狗溢出之前没有中止或复位看门狗,则MQX 将调用能够恢复错误的函数。

8、MQX定时器日期中的时间格式:
1)为帮助设置或中断以秒/毫秒/时钟嘀嗒表示的绝对时间,表示方法—DATA_STRUCT。
2)0MQX_XDATE_STRUCT结构格式比DATE_STRUCT 更详细, 调用_time_ticks_to_xdate() 和_time_xdate_to_ticks()在MQX_XDATE_STRUCT 和MQX_TICK_STRUCT 进行格式转换。
3)消逝时间:是从处理器开始运行所记录的时间。_time_get_elapsed()获得消逝时间或_time_get_elapsed_ticks()获取滴答时间。
4)时间分辨率:启动时通过装载定时器ISR 来设置硬件的时间分辨率。MQX 更新时间及tick发生的频率,每秒200 个时钟嘀嗒或5 毫秒。

9、MQX定时:
1)MQX定时翻转法,MQX 定时器可作为计时中断的64 位计数器。例如假设速率为每纳秒一次,则MQX 经过584 年才会翻转一次。
2)MQX定时精度,MQX 从硬件计数器中获取时间,获取比较精确的时间。
3)定时器是核心组件,提供消逝时间和绝对时间,秒/毫秒、或tick、日期。

10、MQX创建IPC协议初始化表:IPC 协议初始化表定义并初始化使用IPC 的协议。路由表中每个IPC 输出队列相关的IPC 必须在协议初始化表中对应一个单元,用来定义实现IPC 时使用的协议和通信路径。协议初始化表结构为协议初始化结构的数组,末尾以0 填充。

11、MQX处理器间的通信 通过处理器间通信(IPC)组件,任务可在远程处理器上实现:
•消息交换
•创建(阻塞或者非阻塞)任务
•结束任务
•打开或关闭指定的事件组
•设置指定事件组中的事件位

12、MQX任务同步举例:一个任务被一个ISR 同步,另一个任务模拟中断。Service_task 任务等待周期性的中断,每当中断产生时,打印出消息。任务先创建任务队列,后在队列中挂起。Simulated_ISR_task任务调用_time_delay()模拟一个周期性中断。当时间溢出时,调度service_task 任务。





三、Kinetis
1、Kinetis UART有独立的接收和发送缓冲区。这些缓冲区的大小根据模块的实现可能有所改变。通过PFIFO[TXFIFOSIZE]和PFIFO[RXFIFOSIZE],缓冲区实现的大小是一个固定的常数。另外地,传统支持允许的FIFO结构被提供来作为一个深度操作。详细资料地址:http://t.cn/StEGju

2、Kinetis波特率发生器 UART0和UART1时钟源为内核时钟,UART2~UART5的时钟源为外设时钟。波特率由一个13位的模数计数器和一个5位的分数微调计数器共同决定。13位SBR[SBR]范围1~8191,它决定了模块的时钟分频。微调计数器给波特率时钟增加一个细微的延时,以便匹配系统波特率。

3、串行通信接口的外围硬件电路,主要目的是将MCU的发送引脚TXD与接收引脚RXD的TTL电平,通过RS-232电平转换芯片转换为RS-232电平。MCU的TXD、RXD(TTL电平)经过MAX232,在内部TTL电平被“提升”为232电平,再发送出去。

4、Kinetis ARM Cortex-M4,是飞思卡尔粉儿们熟悉并常用的架构,今天我们为大家汇总了多种常用问题,看一看,有没有自己碰到过的或者需要补充的问题呢?http://t.cn/S5sQEa

5、Kinetis.串行通信的传输方式:
(1)单工:数据传送是单向的,一端为发送端,另一端为接收端。
(2)全双工:数据传送是双向的,且可以同时接收与发送数据。
(3)半双工:数据传送也是双向的,但是在这种传输方式中,除地线之外,一般只有一根数据线。

6、Kinetis串行通信的波特率:位长(Bit Length),也称为位的持续时间(Bit Duration)。其倒数就是单位时间内传送的位数。人们把每秒内传送的位数叫做波特率(Baud Rate)。波特率的单位是:位/秒,记为bps。bps是英文bit per second的缩写,习惯上这个缩写不用大写,而用小写。

7、ARM Cortex-M4 MCU启动文件:在芯片上电复位后,初始化CPU各寄存器,关闭中断等,需要用ARM的汇编语言编写启动代码(crt0.s),然后跳转到用户C程序(start.c),在这里复制中断向量与代码到RAM中,初始化芯片,然后跳转到main函数继续执行,启动代码的编写是一个极重要的过程。

8、关于Cortex-M4 GPIO的基本编程方法:
(1)通过“数据方向寄存器”设置相应引脚为输入或输出;
(2)若是输出引脚,则通过“数据输出寄存器”设置引脚输出高电平或低电平;
(3)若是输入引脚,则通过“数据输入寄存器”获得引脚的状态。

9、关于Cortex-M4 GPIO的基本编程方法:
(1)通过“数据方向寄存器”设置相应引脚为输入或输出;
(2)若是输出引脚,则通过“数据输出寄存器”设置引脚输出高电平或低电平;
(3)若是输入引脚,则通过“数据输入寄存器”获得引脚的状态。

10、GPIO输出引脚的基本接法:MCU内部程序向该引脚输出高电平或低电平来驱动器件工作,即开关量输出。一种接法是O1引脚直接驱动,这种接法的驱动电流一般在2mA~10mA。另种接法是O2引脚通过一个NPN三极管驱动,这种接法的驱动电流可达100mA左右,而O2引脚控制电流可以在几个mA左右。


四、硬件部分
1、串口通信的通讯距离:串口使用一根发送信号线和一根接收信号线来构成共地的传输形式,这种共地传输容易产生共模干扰,抗噪性能弱。RS-232C最大的传输距离大约是30m,通信速率一般低于20Kbps。通过降低传输速率的方法来提升传输的距离,或者通过级联信号维持电路来解决这个问题。

2、电磁干扰及抑制是由电磁效应而造成的干扰,采取的措施:
1、电源布线引起的电磁干扰预防措施:布线要宽、加去耦电容、地线环绕。
2、信号布线引起的电磁干扰预防措施:不同功能的单元电路分开设置、合理使用屏蔽和滤波技术、尽量不选用比实际需要的速度更快的元件、做到安全接地。

3、PCB共阻抗及抑制:共阻干扰是由PCB上大量的地线造成,当两个或两个以上的回路共用一段地线时,不同的回路电流在共用地线上产生一定压降,此压降经放大就会影响电路性能。
1)一点接地
2)就近多点接地
3)大面积接地
4)加粗接地线
5)D/A(数/模)电路的地线分开


4、PCB板布局:
(1)在PCB布板之前首先要打印出相应的原理图,然后根据原理图确定整个PCB板的大体布局,即各个硬件构件的位置安排。
(2)PCB板的形状如无其他要求,一般为矩形,长宽比为4:3或3:2。
(3)考虑面板上元件的放置要求。
(4)考虑边缘接口。

5、终端构件设计规则:设计终端构件时,需考虑的问题是:“终端构件需要什么信号才能工作?”。终端构件是嵌入式系统中最常见的构件。终端构件没有提供接口,它仅有与上一级构件交互的需求接口,因而接口标识均为斜体标注的接口注释。

6、嵌入式软件构件是实现一定嵌入式系统功能的一组封装的、规范的、可重用的、具有嵌入特性的软件单元,是组织嵌入式系统的功能单位。嵌入式软件构件分为高层软件构件和底层软件构件。高层构件与硬件无关。而底层构件与硬件密不可分,是硬件驱动程序的封装。

7、RS-232C总线标准:在RS-232通信中,。MCU引脚输入/输出一般使用TTL(Transistor Transistor Logic)电平,即晶体管-晶体管逻辑电平。RS-232通信时平时用3根线:RXD(接收线)、TXD(发送线)和GND(地线)。其他为进行远程传输时接调制解调器之用,有的也可作为硬件握手信号。

8、RS-232C总线标准:在RS-232通信中,。MCU引脚输入/输出一般使用TTL(Transistor Transistor Logic)电平,即晶体管-晶体管逻辑电平。RS-232通信时平时用3根线:RXD(接收线)、TXD(发送线)和GND(地线)。其他为进行远程传输时接调制解调器之用,有的也可作为硬件握手信号。

9、上拉下拉电阻与输入引脚的基本接法:带上拉电阻的连接、带下拉电阻的连接和“悬空”连接。通俗地说,若MCU的某个引脚通过一个电阻接到电源(Vcc)上,这个电阻被称为“上拉电阻”。与之相对应,若MCU的某个引脚通过一个电阻接到地(GND)上,则相应的电阻被称为“下拉电阻”。

f5.jpg


我知道答案 目前已有3人回答

评分

参与人数 1NXP金币 +40 收起 理由
小七 + 40 打赏!

查看全部评分

回复

使用道具 举报

  • TA的每日心情
    开心
    2021-12-10 16:14
  • 签到天数: 1442 天

    连续签到: 1 天

    [LV.10]以坛为家III

    17

    主题

    3862

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    8291
    最后登录
    2021-12-10
    发表于 2015-7-21 17:49:49 | 显示全部楼层
    感谢分享,第四部份的 7,8 点重覆了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13

    主题

    233

    帖子

    0

    高级会员

    Rank: 4

    积分
    745
    最后登录
    2018-7-26
     楼主| 发表于 2015-7-21 18:11:21 | 显示全部楼层
    哈哈哈,看这么仔细
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16701
    最后登录
    1970-1-1
    发表于 2015-7-21 19:26:17 | 显示全部楼层
    多谢分享!
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 03:35 , Processed in 0.095792 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表