LPC824-SPI接口(续二)

发布时间:2023-05-24  

接下来看SPI接收器数据寄存器RXDAT,下表是它的全部位结构,其地址分别为0x40058014(SPI0)、0x4005C014(SPI1)。

(1)第0到15位(RXDAT)为接收器数据,它包含接收的下一个数据,使用的位数由TXCTL/TXDATCTL中的LEN设置。
(2)第16位(RXSSEL0_N)为接收的从机选择位,此字段允许SSEL0引脚状态与接收数据一同保存,数值反映主机和从机操作的SSEL0引脚,0表示从机选择有效,每一个从机选择引脚的实际极性通过CFG中的相应SPOL位配置。
(3)第17位(RXSSEL1_N)为接收的从机选择位,此字段允许SSEL1引脚状态与接收数据一同保存,数值反映主机和从机操作的SSEL1引脚,0表示从机选择有效,每一个从机选择引脚的实际极性通过CFG中的相应SPOL位配置。
(4)第18位(RXSSEL2_N)为接收的从机选择位,此字段允许SSEL2引脚状态与接收数据一同保存,数值反映主机和从机操作的SSEL2引脚,0表示从机选择有效,每一个从机选择引脚的实际极性通过CFG中的相应SPOL位配置。
(5)第19位(RXSSEL3_N)为接收的从机选择位,此字段允许SSEL3引脚状态与接收数据一同保存,数值反映主机和从机操作的SSEL3引脚,0表示从机选择有效,每一个从机选择引脚的实际极性通过CFG中的相应SPOL位配置。
(6)第20位(SOT)传输标志开始位,如果是SSEL从无效到有效之后的第一个数据(比如之前所有传输均已结束),则置1,若传输长度大于16位,则此信息可用来识别第一条数据。
(7)第21到31位为保留位,写入时只能写0。

接下来看SPI发送器数据和控制寄存器TXDATCTL,下表是它的全部位结构,其地址分别为0x40058018 (SPI0)、0x4005C018 (SPI1)。

(1)第0到15位(TXDAT)为发送数据,该字段提供待发送数据的1至16位。
(2)第16位(TXSSEL0_N)为发送从机选择位,主机模式下该字段使SSEL0生效,引脚输出默认为低电平有效,SSEL0引脚的有效状态由CFG寄存器中的位配置,值为0时表示SSEL0已生效,值为1时表示SSEL0未生效。
(3)第17位(TXSSEL1_N)为发送从机选择位,主机模式下该字段使SSEL1生效,引脚输出默认为低电平有效,SSEL1引脚的有效状态由CFG寄存器中的位配置,值为0时表示SSEL1已生效,值为1时表示SSEL1未生效。
(4)第18位(TXSSEL2_N)为发送从机选择位,主机模式下该字段使SSEL2生效,引脚输出默认为低电平有效,SSEL2引脚的有效状态由CFG寄存器中的位配置,值为0时表示SSEL2已生效,值为1时表示SSEL2未生效。
(5)第19位(TXSSEL3_N)为发送从机选择位,主机模式下该字段使SSEL3生效,引脚输出默认为低电平有效,SSEL3引脚的有效状态由CFG寄存器中的位配置,值为0时表示SSEL3已生效,值为1时表示SSEL3未生效。
(6)第20位(EOT)为传输结束,已生效的SSEL将在传输结束时解除生效并至少保持一段时间,这段时间由DLY寄存器中的Transfer_delay值确定。值为0时SSEL未解除生效,此条数据不视为传输结束,SSEL不会在该数据结束时解除生效。值为1时SSEL已解除生效。此条数据视为传输结束。SSEL会在该数据结束时解除生效。
(7)第21位(EOF)为帧结束,两帧之间可以插入延迟,该延迟由DLY寄存器中的FRAME_DELAY值定义。如果FRAME_DELAY值 = 0,则帧结束可能没有特殊意义。该控制可作为支持 帧长度超过16位的一部分。值为0时表示数据未EOF,此条传输数据不视为帧结束。值为1时表示数据EOF,此条数据视为帧结束,导致FRAME_DELAY时间在后续数据发送之前被插入。
(8)第22位(RXIGNORE)为接收忽略,允许数据使用SPI发送时,无需从接收器读取不需要的数据。设置此位可以简化发送过程,并可与DMA一同使用。值为0时表示读取已接收数据。必须读取已接收数据,才能允许传输过程。从机模式下,如果已接收数据未能在接收到新数据前读取,则发生溢出错误。值为1时表示忽略已接收数据。已接收数据被忽略,允许在不读取不需要的已接收数据情况下进行传输。不产生接收器标志。
(9)第23位为保留位,写入时只能写0。
(10)第24到27位(LEN)为数据长度,指定1到16位数据长度,通过多个相继传输可支持16位以上的传输长度,值从0x0到0xF,表示数据传输长度分别1到16位。
(11)第28到31位为保留位,写入时只能写0。

接下来是SPI发送器数据寄存器TXDAT,下表是它的全部位结构,其地址分别为0x4005801C(SPI0)、0x4005C01C(SPI1)。

(1)第0到15位(DATA)为发送数据,该字段提供待发送数据的4至16位。
(2)第16到31位为保留位,写入时只能写0。

接下来看SPI发送器控制寄存器TXCTL,下表是它的全部位结构,其地址分别为0x40058020(SPI0)、0x4005C020(SPI1)。

(1)第0到15位为保留位,写入时只能写0。
(2)第16位(TXSSEL0_N)为发送从机选择0。
(3)第17位(TXSSEL1_N)为发送从机选择1。
(4)第18位(TXSSEL2_N)为发送从机选择2。
(5)第19位(TXSSEL3_N)为发送从机选择3。
(6)第20位(EOT)为传输结束。
(7)第21位(EOF)为帧结束。
(8)第22位(RXIGNORE)为接收忽略。
(9)第23位为保留位,写入时只能写0。
(10)第24到27位(LEN)为数据传输长度。
(11)第28到31位为保留位,写入时只能写0。

接下来看SPI分频器寄存器DIV,下表是它的全部位结构,其地址分别为0x40058024(SPI0)、0x4005C024(SPI1)。

(1)第0到15位(DIVVAL)为速率分频器值,指定SPI的PCLK分频值,从而在主机模式下产生SPI时钟速率。
DIVVAL为-1编码,以便PCLK/1数值为0,PCLK/2数值为1,直至PCLK/65536中的最大可能分频值0xFFFF。
(2)第16到31位为保留位,写入时只能写0。

最后看SPI中断状态寄存器INTSTAT,下表是它的全部位结构,其地址分别为0x40058028(SPI0)、0x4005C028(SPI1)。

(1)第0位(RXRDY)为接收器就绪标志。
(2)第1位(TXRDY)为发送器就绪标志。
(3)第2位(RXOV)为接收器溢出中断标志。
(4)第3位(TXUR)为发送器下溢中断标志。
(5)第4位(SSA)为从机选择生效。
(6)第5位(SSD)为从机选择解除生效。
(7)第6到31位为保留位,写入时只能写0。

至此,所有SPI接口用到的寄存器全部介绍完毕,后面将会以一个实例来具体说明SPI接口的应用。

--待续--


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>