这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » 【STCAi8051U】Ai8051U中和SPI外设有关的寄存器

共4条 1/1 1 跳转至

【STCAi8051U】Ai8051U中和SPI外设有关的寄存器

专家
2025-07-15 20:40:43     打赏

在Ai8051U 系列单片机中,与SPI外设有关的寄存器有

一、SPI 状态寄存器(SPSTAT)


SPIF:SPI 中断标志位。

    当发送/接收完成 1 字节的数据后,硬件自动将此位置 1,并向 CPU 提出中断请求。当 SSIG 位被设

        置为 0 时,由于 SS 管脚电平的变化而使得设备的主/从模式发生改变时,此标志位也会被硬件自动

        置 1,以标志设备模式发生变化。

        注意:此标志位必须用户通过软件方式向此位写 1 进行清零。

WCOL:SPI 写冲突标志位。

    当 SPI 在进行数据传输的过程中写 SPDAT 寄存器时,硬件将此位置 1。

注意:此标志位必须用户通过软件方式向此位写 1 进行清零。

二、SPI 控制寄存器(SPCTL),SPI 速度控制


SSIG:SS 引脚功能控制位

    0:SS 引脚确定器件是主机还是从机

    1:忽略 SS 引脚功能,使用 MSTR 确定器件是主机还是从机

SPEN:SPI 使能控制位

    0:关闭 SPI 功能

    1:使能 SPI 功能

DORD:SPI 数据位发送/接收的顺序

    0:先发送/接收数据的高位(MSB)

    1:先发送/接收数据的低位(LSB)

MSTR:器件主/从模式选择位

    设置主机模式:

        若 SSIG=0,则 SS 管脚必须为高电平且设置 MSTR 为 1

        若 SSIG=1,则只需要设置 MSTR 为 1(忽略 SS 管脚的电平)

    设置从机模式:

        若 SSIG=0,则 SS 管脚必须为低电平(与 MSTR 位无关)

        若 SSIG=1,则只需要设置 MSTR 为 0(忽略 SS 管脚的电平)

CPOL:SPI 时钟极性控制

    0:SCLK 空闲时为低电平,SCLK 的前时钟沿为上升沿,后时钟沿为下降沿

    1:SCLK 空闲时为高电平,SCLK 的前时钟沿为下降沿,后时钟沿为上升沿

CPHA:SPI 时钟相位控制

    0:数据 SS 管脚为低电平驱动第一位数据并在 SCLK 的后时钟沿改变数据,前时钟沿采样数据(必须 SSIG=0)

    1:数据在 SCLK 的前时钟沿驱动,后时钟沿采样

SPR[1:0]:SPI 时钟频率选择

三、SPI 数据寄存器(SPDAT)


SPI 发送/接收数据缓冲器。

四、SPI 从机超时控制寄存器(SPITOCR)


ENTO:SPI 从机超时功能控制位

    0:禁止 SPI 从机超时功能

    1:使能 SPI 从机超时功能(注:SPI 的主机模式不要使能接收超时功能)

ENTOI:SPI 从机超时中断控制位

    0:禁止 SPI 从机超时中断

    1:使能 SPI 从机超时中断

SCALE:SPI 从机计数时钟源选择

    0:1us 时钟(1MHz 时钟)。(注意:如需要使用此时钟源,用户必须先正确设置 IAP_TPS 寄存器。

        例如:若系统时钟为 12MHz,则需要将 IAP_TPS 设置为 12;若系统时钟为 22.1184MHz,则需要将 IAP_TPS 设置为 22;其他频率以此类推。

        特别注意,此 1us 的时钟并不是精准时间

    1:系统时钟

五、SPI 从机超时状态寄存器(SPITOSR)


CTOIF:写“1”清除 SPI 超时中断标志位 TOIF。(只写)

TOIF:SPI 超时中断请求标志位。(只读)

    当发生 SPI 超时时,TOIF 会被硬件置“1”。如果 ENTOI 为 1 时会产生 SPI 中断,中断入口地址为原 SPI 的中断入口地址。标志位需要软件向 CTOIF 位写“1”清零


六、SPI 从机超时长度控制寄存器(SPITOTE/H/L)


TM[23:0]:SPI 超时时间控制位。

    当 SPI 处于接收空闲状态时,内部超时计数器根据 SCALE 寄存器所选择的时钟源进行计数,当计数时间达到 TM 所设置的超时时间时,便会产生超时中断。当 SPI 接收数据完成时,复位内部超时计数器,重新进行超时计数。

注:

    1、如果需要使能接收超时中断功能,则 TM 不可设置为 0,且 SPITOTL、SPITOTH、SPITOTE寄存器的设置必须先设置 SPITOTL 和 SPITOTH,最后设置 SPITOTE

    2、必须设置 SPI 为从机模式才有接收超时功能

    3、接收超时功能必须在正确接收到一字节数据后才能触发

    4、正在接收过程中,无接收超时功能







关键词: 菜鸟学单片机    

专家
2025-07-15 21:41:36     打赏
2楼

感谢分享


专家
2025-07-15 21:43:02     打赏
3楼

感谢分享


专家
2025-07-15 21:44:47     打赏
4楼

感谢分享


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]