[技术问答]

新唐MuMicro常见问题解答【SPI】

[复制链接]
3114|28
手机看帖
扫描二维码
随时随地手机跟帖
haolaishi|  楼主 | 2014-6-24 08:06 | 显示全部楼层 |阅读模式
Q1: NuMicro™ 家族支持多少个SPI模块?
A1: NuMicro™ 家族的芯片支持多达4组SPI模块,但是具体数量要根据不同的型号。


haolaishi|  楼主 | 2014-6-24 08:06 | 显示全部楼层
Q2: SPI 模块支持常规的 4-线 SPI 接口吗?
A2: 是的,它支持常规 4-线 SPI 接口,包括串行时钟(SPICLK),从机选择 (SPISS), 主出/从入 (MOSI) 和主入/从出 (MISO)。

使用特权

评论回复
haolaishi|  楼主 | 2014-6-24 08:07 | 显示全部楼层
Q3: SPI 模块支持通用的SPI 模式 0 ~ 3 吗?
A3: 非常容易配置 SPI 寄存器来实现串行时钟的空闲极性, 发送数据和接收数据的时钟边沿去匹配通常用SPI模式0 ~ 3。

使用特权

评论回复
haolaishi|  楼主 | 2014-6-24 08:08 | 显示全部楼层
Q4: SPI 模块支持主或者从模式吗??
A4: 是的,它支持主模式和从模式。

使用特权

评论回复
haolaishi|  楼主 | 2014-6-24 08:08 | 显示全部楼层
Q5:主模式的SPI 控制器提供多少个从机片选择输出脚?
A5: 主模式的每个SPI控制器提供2个从机选择输出脚。

使用特权

评论回复
haolaishi|  楼主 | 2014-6-24 08:08 | 显示全部楼层
Q6: SPI 控制器的时钟源是什么?
A6: SPI 控制器的源是系统时钟 HCLK。

使用特权

评论回复
haolaishi|  楼主 | 2014-6-24 08:09 | 显示全部楼层
Q7:在主模式如何产生SPI 串行时钟?
A7: 输出的串行时钟SPICLK = HCLK/(1+DIVIDER[15:0])/2,其中 DIVIDER[15:0] 必须大于等于1。

使用特权

评论回复
haolaishi|  楼主 | 2014-6-24 08:10 | 显示全部楼层
Q8: 什么是2-位 (2-通道) 传送模式和如何使用它?
A8: 2-位传送模式是指SPI控制器在同一个串行时钟周期的同一个时钟边沿同时发送2-位 数据,并且同时也能够接收2-位数据在相反的时钟边沿上。更详细的说明,请查看SPI 应用笔记(AN1022) 有关2-位的传送模式。

使用特权

评论回复
haolaishi|  楼主 | 2014-6-24 08:11 | 显示全部楼层
Q9: 2-位传送模式有什么限制吗?
A9: 2-位传送模式仅仅支持单发模式。在 2-位传送模式,寄存器SPI_Tx0 和 SPI_Rx0 影射到通道0 (MISOx0,MOSIx0),但是寄存器 SPI_Tx1和 SPI_Rx1 影射到通道1 (MISOx1,MOSIx1)。

使用特权

评论回复
haolaishi|  楼主 | 2014-6-24 08:11 | 显示全部楼层
Q10: 什么是单发和并发模式?
A10: 单发模式是指SPI 控制器在每一次传送只传送一个字 (SPI_Tx0 和SPI_Rx0) ,但是在并发模式下每一次传送能传送两个字 (SPI_Tx0/1 和 SPI_Rx0/1) 。 并发模式和单发模式能由Tx_NUM 寄存器设置。

使用特权

评论回复
haolaishi|  楼主 | 2014-6-24 08:12 | 显示全部楼层
Q11: 一次传送能够发送多少位数据?
A11: 通过设置Tx_BIT_LEN 寄存器的值, 能够配置传送的字的位长度从1 to 32 位。每次发送的单发模式的数据的最大位长是32位,但是在并发模式下是64 位。

使用特权

评论回复
haolaishi|  楼主 | 2014-6-24 08:13 | 显示全部楼层
Q12: 什么是从机选择电平?
A12: 通过设置SS_LVL 寄存器去确定从机选择电平。

使用特权

评论回复
haolaishi|  楼主 | 2014-6-24 08:14 | 显示全部楼层
Q13: 在主模式下的自动从机选择是指什么?
A13: 意思是SPI 控制器的输出电平 (根据SS_LVL) 在用户发起SPI去传送数据时在同一个串行时钟下去自动选择从机。

使用特权

评论回复
haolaishi|  楼主 | 2014-6-24 08:14 | 显示全部楼层
Q14:用户需要手动控制从机选择是什么情况?并且如何控制它?
A14: 这个依赖片外的从机设备, 如果从机器件仅仅需要在大量数据传送前通过一个从机选择电平(由SS_LVL 寄存器决定)去启动一次传送。那么就需要在数据传送前设置SSR[0] (对SPISSx0 输出脚) 或者SSR[1] (对SPISSx1 输出脚) 去使能从机选择的输出和在数据传送完成后清除SSR[0] 或者 SSR[1] 去禁用从机选择的输出。

使用特权

评论回复
haolaishi|  楼主 | 2014-6-24 08:14 | 显示全部楼层
Q15: SPI 控制器支持PDMA功能吗?
A15: 是的,它支持利用 PDMA 通道来实现SPI接口的数据发送和接收而不浪费 CPU 的资源。但不是所有的 NuMicro ™ 家族芯片都能提供PDMA功能,根据不同的器件型号确定。

使用特权

评论回复
haolaishi|  楼主 | 2014-6-24 08:15 | 显示全部楼层
Q16: SPI 控制器支持 FIFO 模式吗?
A16: 是的,它支持FIFO 模式对数据连续不断的发送和接收。但并不是所有 NuMicro™ 家族的芯片都支持SPI口的FIFO 模式。要根据不同的型号。

使用特权

评论回复
haolaishi|  楼主 | 2014-6-24 08:15 | 显示全部楼层
Q17: SPI 控制器能够连续不断的高速进行发送/接收 数据的传送吗?
A17: 可以,可以使用器件上存在的 FIFO 模式或者 PDMA 功能。

使用特权

评论回复
haolaishi|  楼主 | 2014-6-24 08:16 | 显示全部楼层
Q18:如何使用SPI 控制器的FIFO模式?
A18: 请参考SPI 应用笔记和使用FIFO 模式的例程。

使用特权

评论回复
haolaishi|  楼主 | 2014-6-24 08:35 | 显示全部楼层
Q19:如何使用SPI 控制器的PDMA功能?
A19: 请参考SPI 应用笔记和使用PDMA功能的例程。

使用特权

评论回复
haolaishi|  楼主 | 2014-6-24 08:35 | 显示全部楼层
Q20: 如何连续发送2 字节的数据?
A20: 可以设置位域Tx_BIT_LEN = 0x10 (16-位 长度) 和Tx_NUM = 0x0 (单模式),或者可以设置位域 Tx_BIT_LEN = 0x8 (8-位长度) 和Tx_NUM = 0x1 (并发模式)连续发送2个字节的数据。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:不忘初心,积极乐观,勤且道义!

242

主题

1995

帖子

12

粉丝