编辑: 牛牛小龙人 | 2019-07-05 |
3 相关控制说明 相关控制说明 相关控制说明 相关控制说明 如下图所示,SPI 的接口与 I/O 功能和 I2 C 以及 A/D 转换共用脚位,要打开 SPI 功能你必须 首先将配置选项里的 SIM Function 选择为 Enable,然后设置好 SIMC0 和SIMC2 寄存器值. HT66F40 与SPI 功能相关的一共有
3 个寄存器.它们是 SIMD、SIMC
0、SIMC2. SIMD 寄存器 寄存器 寄存器 寄存器 SIMD 寄存器被用来存储马上要传输或者刚接收到的数据. 它是和 I2 C 共用的, 在HT66F40 中,SPI 与I2 C 只能二选其一.要把数据写入 SPI 总线,数据必须要放入 SIMD 寄存器才能 被得到传输.相应的数据从 SPI 总线接收到后,也只能从 SIMD 寄存器中读出数据.总之, 任何通过 SPI 总线进行传送和接收的数据都必须通过 SIMD 寄存器. SIMC0 寄存器 寄存器 寄存器 寄存器 SIMC0 寄存器也是 SPI 和I2 C 共用的,它被用来打开或者关闭串行接口功能,设置 SPI 总 线数据传输的时钟频率. SIMEN:这一个 Bit 在总体上控制 SPI 接口的开与关,当SIMEN 位被清除为零时,将关闭 掉SPI 接口功能.SDI、SDO、SCK 与SCSB 将会处于浮空状态,此时,SPI 工作电流将变 为一个极小值.当这一位变为
1 时,SPI 功能将打开.当然,必须要先在配置中打开 SIM 功能,这一位才会有效.要注意的地方是,当SIMEN 位从
0 变为
1 时,此时 SPI 的控制寄 存器将会变为无法预测的值,因此,每当 SIMEN 位从
0 变为
1 时,应用程序必须要重新初 始化 SPI 的控制寄存器. HT66F40 使用 使用 使用 使用 SIM SPI Mode 之用法 之用法 之用法 之用法
4 SIM0~SIM2:这几位用来设置 SIM 功能的操作模式,也就是选择 I2 C 功能或者选择 SPI 功能.如果选择了 SPI 功能,还将选择主/从模式、主机的时钟频率,时钟可以选择为系统时 钟,也可以来源于定时器.如果选择从模式,将不用选择时钟,它的时钟由它的主机提供. 具体情况由下图所示: SIMC2 寄存器 寄存器 寄存器 寄存器 SIMC2 寄存器是一个 SPI 专用的控制寄存器. TRF:传送/接收完成标志位,当传送或者接收完成后,它将自动的设置为 1.需要软件清 除. WCOL:主/从模式下,若正在发送数据或接收数据,写SIMDR 寄存器将会置位 WCOL, 且写入数据被忽略.WCOL 功能可由配置选项打开或者关闭.WCOL 由硬件设置位,软件 清除为零. CSEN: 串行接口片选功能打开/关闭. 若CSEN=1, SCSB 片选功能有效. 主模式下, 在SCK 信号输出前先输出 SCSB 片选信号;
而在从模式下,接收到 SCSB 信号前(后),数据传输被 关闭(打开).若CSEN=0,SCSB 引脚处于浮空状态,选片功能失效,此时可在外部对 SCSB 引脚 Pull-High 以实现片选功能.CSEN 功能可由配置选项打开或者关闭. MLS:MSB 或LSB 选择位.也就是传输时高位优先或者低位优先. CKEG 和CKPOLB:这两位在数据传输前必须进行设置,否则,一个错误的时钟沿会被产 生.CKPOLB 位决定时钟线的基本状态,当这一位为高时,时钟线在不活动的状态下将为 低,反之为高.CKEG 位决定时钟线有效时的时钟沿类型,它将依赖于 CKPOL 的值,下 面是这
2 字节合起来的情况. HT66F40 使用 使用 使用 使用 SIM SPI Mode 之用法 之用法 之用法 之用法
5 S/W 流程图 流程图 流程图 流程图 程序的时序图如下: S I M E N =
1 W r i t e D a t a i n t o S I M D W C O L =
1 ? C l e a r W C O L Y T r a n s m i s s i o n c o m p l e t e d ? ( T R F =