【自用】TI芯片串行通信相关

TI芯片串行通信接口介绍

串行通信接口

以下内容仅针对TI芯片

SPI (Serial Peripheral Interface)

【总线协议】DSPI/QSPI/OSPI 与 SPI 的区别
SPI接口详细介绍

  1. 同步串行通信
  2. 常用引脚
    • SCLK:时钟信号
    • MOSI:数据发送(若MCU配置为Master)
    • MISO:数据接收(若MCU配置为Master)
    • CS:片选(低电平有效)
    • 部分芯片用D0和D1取代MOSI和MISO,D0和D1支持双向(收发都行)
  3. 片选了才能开始数据交互
  4. 无论想读还是想写,都需要执行数据发送的指令,才会产生时钟信号

举个例子,假设我们要读取一个只有CLK和DOUT脚的AD芯片,此时MCU的数据发送脚实际是无用的。但是在软件上仍需要将数据发出去(数据是什么无所谓,位数和待接收的数据帧位数相同即可),这时候MCU才会产生相应位数的时钟信号,用于读取AD芯片的DOUT

  1. SPI的波形:极性(时钟默认是高电平还是低电平)和相位(时钟发送多久后采样)可以通过POL和PHA位配置,详见芯片技术参考手册(TRM)

UART (Universal Asynchronous Receiver-Transmitter)

  1. 异步串行通信(靠双方约定好的波特率实现数据对齐)
  2. 常用引脚
    • RXD:数据接收
    • TXD:数据发送
    • CTS:允许发送(低电平有效),向模块表明MCU已处理完上一帧接收的数据
    • RTS:请求发送(低电平有效),用于MCU判断模块是否已处理完上一帧数据
    • UART中的硬件流控RTS与CTS
  3. TTL/RS232/RS485
    这些都是接口(物理层) ,不是协议,故使用他们的代码一样,电路才不同
    • TTL/RS232采用单端传输(信号电压和GND),RS485是差分传输(信号正和信号负)
    • RS485各方面性能优越(除了不是全双工,即同时读写),应用领域更广,比如可用于机器人多机通信。RS232只支持一对一通信
    • TTL/RS232/RS485之间可以通过电路模块相互转化,也可以转化为PC常用的USB接口
    • 【总线】一文看懂RS232和RS485通信总线
  4. 在部分TI芯片中,UART被称为SCI,详见芯片技术参考手册TRM基于C2000的软件串口(SCI)实现方法

FSI (Fast Serial Interface)

TI推出的快速串行通信接口,性能相较SPI和UART更好,可用于多控制器通信。分为两个端口FSITX和FSIRX,3根线(CLK,D0,D1)。

接线比较有意思,时钟线并不是公用的,而是设备A的TX_CLK接设备B的RX_CLK(一根线),设备A的RX_CLK接设备B的TX_CLK(另一根线)。所以如果是双机通信的话,实际上最少需要CLK线*2+DAT线*2=4根线。
详见图1 基于快速串行接口 (FSI) 的分布式多轴伺服驱动器参考设计

其他

时钟同步问题串行数据(SPI/I2C/UART/USB)的时钟同步

### 关于 TI F280039 的 FSI 接口 TI 的 C2000 系列 MCU 中,F280039 是一款高性能微控制器,其集成了多种外设功能模块,其中包括 **Flexible Serial Interface (FSI)**。该接口是一种高速串行通信协议,用于实现芯片间的数据传输。 #### FSI 接口概述 FSI 提供了一种灵活的方式来进行数据交换,支持单向或多路双向通信模式。它通常被用来连接外部存储器或其他设备,具有高带宽和低延迟的特点。对于 F280039 而言,FSI 支持以下特性[^1]: - 高速同步串行接口。 - 数据宽度可配置(如 8/16/32 位)。 - 多通道操作能力。 - 自动错误检测机制。 #### 使用方法及相关资源 为了更好地理解和使用 FSI 接口,可以从以下几个方面入手: 1. **官方文档** - 查阅 C2000Ware 提供的技术资料。具体路径位于 `E:\ti\c2000\C2000Ware_3_03_00_00` 下的文档目录中[^3]。这里包含了关于 FSI 的详细设计指南和技术规格书。 2. **示例代码** - 在 C2000Ware 库中已经预置了一些基于不同应用场景编写的样例项目。这些例子可以帮助开发者快速熟悉如何初始化以及操控 FSI 功能单元。例如,在上述提到的文件夹结构里应该能找到针对 F28004x 系列(与 F280039 类似架构)准备好的测试用例。 ```python # 初始化 FSI 参数设置函数伪代码示意 def init_fsi(): configure_clock() # 设置时钟频率以匹配目标速率需求 set_data_width(16) # 设定每次传输的数据长度为 16 bits enable_error_checking() # 开启硬件级别的差错校验选项 return True # 返回成功标志表示完成初始化过程 ``` 3. **调试工具推荐** - 利用 Code Composer Studio 或其他兼容 IDE 来加载并运行前述提及到的应用实例。同时配合仿真探针观察实际波形表现以便验证逻辑正确性。 4. **注意事项** - 当编写批处理脚本来辅助自动化流程管理时,请注意区分 cmd 和 bat 文件之间的细微差异及其适用环境范围[^2]。这可能会影响到某些特定操作系统下的行为一致性问题。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值