使用 FlexIO 模拟通信和定时外设
1. 简介
FlexIO 是用在 Kinetis 和 S32K 微控制器系列
上的新外设模块。它具有高度可配置性,能够
模拟各种通信协议,例如本文档中提到的UART、
I2C、SPI、I2S和LIN,以及其它一些通讯协议,
像J1850、I3C、曼彻斯特。
FlexIO 作为微控制器的一个独立外设模块,并
不能替代任何通信外设。FlexIO 的主要特点是
可以根据用户的需求来直接构建自己的外设。
本文的示例代码基于 S32K SDK(包含在
S32DS_v2018 中的软件开发套件中)和 Bare
Metal 的配置代码,以便于更好地了解什么是
FlexIO。通过这些示例,用户可以模拟不同的
通信协议和 PWM 信号。
目录
1. 简介 ................................................................................... 1
2. FlexIO 模块概述 ............................................................... 2
3. 使用 FlexIO 模拟 UART .................................................. 4
3.1. 简介 ...................................................................... 4
3.2. 配置移位器和定时器 ............................................. 7
3.3. 函数说明 ............................................................... 10
3.4. 运行例程 ............................................................... 11
4. 使用 FlexIO 模拟双 SPI ................................................. 12
4.1. 移位器和定时器的配置 ....................................... 14
4.2. 软件概述 .............................................................. 18
4.3. 操作实现 .............................................................. 20
4.4. 运行例程 .............................................................. 20
5. 使用 FlexIO 模拟 I2C 总线主设备 ................................ 24
5.1. 简介 ...................................................................... 24
5.2. 总体说明 ............................................................... 24
5.3. 移位器和定时器的配置 ....................................... 25
5.4. 软件概述 ............................................................... 27
5.5. 执行 ...................................................................... 30
5.6. 运行例程 ............................................................... 31
6. 使用 FlexIO 生成 PWM ................................................. 32
6.1. 简介 ...................................................................... 32
6.2. 总体概述 ............................................................... 33
6.3. 定时器的配置 ....................................................... 33
6.4. 软件实现概述 ....................................................... 35
6.5. 运行例程 ............................................................... 36
7. 使用 FlexIO 模拟 I2S 总线 Master .............................. 36
7.1. 总体概述 ............................................................... 37
7.2. 移位器和定时器的配置 ....................................... 38
7.3. 软件实现概述 ....................................................... 40
7.4. 运行例程 ............................................................... 40
8. 使用 FlexIO 模拟 LIN 主/从 .......................................... 41
8.1. 简介 ...................................................................... 41
8.2. 使用 FlexIO 模拟 LIN ......................................... 41
8.3. 配置移位器和定时器 ........................................... 42
9. 结论 .................................................................................. 45
10. 修订历史 .......................................................................... 45