26.6.2 基本操作
26.6.2.1 初始化
下列寄存器写保护,意味着它们只能被写在SPI禁止的时候(CTRL.ENABLE是零)
。控制寄存器A(CTRLA),除了使能(CTRLA.ENABLE)和软件复位(CTRLA.SWRST)
。控制寄存器B(CTRLB),除了接收使能(CTRLB.RXEN)
。波特率寄存器(BAUD)
。地址寄存器(ADDR)
任何写到这些寄存器当SPI是使能或正在被使能(CTRLA.ENABLE是1)将被丢弃。
当SPI被禁止的状态下或正在禁止完成的情况下,可以写这些寄存器。
使能写保护的指示是通过寄存器描述中使能写保护属性指示的。
在SPI使能之前 ,它必须被配置,大概步骤如下:
。SPI的主机模式或从机模式选择必须通过写0x2或0x3到寄存器A中的操作模式比特组
(CTRLA.MODE)
。传输模式必须被选择通过写控制寄存器A中的时钟相位比特和时钟极性比特(CTRLA.CPOL和
CTRLA.CPHA)
。传输格式必须通过向控制寄存器A的帧格式比特组写来实现的(CTRLA.FORM)
。SERCOM pad 用来接收的必须通过写控制寄存器A的数据输入管脚比特组来选择。
。字符长度必须通过向控制寄存器B字符长度比特组写来选择的。
。数据方向必须通过向控制寄存器A数据顺序比写来选择的。
。如果SPI是用在主机模式,波特率寄存器(BAUD)必须被写,用来产生期望的波特率。
。如果SPI是用在主机模式并且硬件SS控制也要求,主从选择使能比特在控制寄存器
B(CTRLB.MSSEN)将要被置1。
。接收可以被使能通过向控制寄存器B中的接收使能比特写1来实现的。
26.6.2.2 使能,禁止和重启
SPI使能是通过向控制寄存器A中的使能比特写1来实现的。SPI的禁止是通过向CTRLA.ENABLE写零
来实现的。
SPI的复位是通过向控制寄存器A中的软件复位比特写1来实现的(CTRLA.SWRST)。所有的SPI的寄存
器,除了DBGCTRL,将要复位到初使状态。并且SPI将被禁止。请参考CTRLA的描述。
26.6.2.3 时钟产生
在SPI主机操作(CTRLA.MODE是0x3),串行时钟(SCK)是产生于内部的用SERCOM波特率发生器。当用
SPI模式时,波特率发生器被设置为同步模式,8比特波特率寄存器(BAUD)值用来产生SCK,给移位寄存器
时钟。请参考"Clock Generation- Baud-Rate Generator"的描述。
在SPI的从机操作模式(CTRLA.MODE是0x2),时钟提供是通过一个外部的SCK管脚.这个时钟被直接
用作SPI的移位寄存器。
|