嘿!您似乎在 United States,您想使用我们的 English 网站吗?
Switch to English site
Skip to main content

使用 Analog Discovery 2 调试 SPI 通信协议

FR4TSOAIKRNIQLQ.LARGE_%281%29__fd4dc72524db2cbf1d56b7bff11e8a90c7bc8975.jpg

SPI 通信

串行外设接口(SPI)是一种用于短距离通信的双工同步串行通信接口规格,主要用于嵌入式系统。它通常用于与闪存、传感器、实时时钟 (RTC)、模数转换器等进行通信。 SPI 还可以支持多个从设备,但需要添加额外的从设备选择 (SS) 信号。您可以在 Digilent学习资料中探索 SPI 的工作原理。

SPI 通信协议使用四个通信引脚以及一个电源和接地引脚。通常存在相互通信的“主”设备和“从”设备。 “主设备”将使用其从设备选择 (SS) 通信线路,选择其“从设备”之一,以向“从设备”指示它将与其通信。然后主机和从机将同时在 MOSI(Master Out Slave In)和 MISO(Master In Slave Out)数据线上相互通信。在发送实际数据之前,主机和从机都相互发送一位,以确保 SPI 正常工作。数据可以从最高有效位 (MSB) 或最低有效位 (LSB) 发送。

要启动通信,主设备必须将片选 (CS) 线置于低电压状态,并在整个通信期间保持该低电压状态。主设备和从设备都会相互发送一个位,以使 SPI 通信正常工作。然后可以在两个设备之间一次一位地同时传输数据。微控制器平台控制数据传输的时间。

通常,SPI 协议在串行时钟 (SCK) 信号的下降沿传输一位数据。数据必须在串行时钟 (SCK) 的下降沿之前放在数据线上。串行时钟 (SCK) 线在“下降”到低电压状态之前(即下降沿之前)也必须处于高电压状态。这可以通过使用微控制器,在将时钟信号变为低电压状态之前,改变数据线的电压状态完成。

改变数据线上的位值(电压)和脉冲串行时钟(SCK)线的周期将继续,直到所有需要的位都被传输。片选 (CS) 线将进入高电压状态。然后,微控制器知道通信已经完成并准备另一个任务。

下面提供了 SPI 通信的时序图。

spi_signals_3bfdcbb5b2f86ad265e29e4ed428f3dd86f21b55.png

来自 Digilent 学习资料的 SPI 时序图

调试 SPI 通信

Digilent Analog Discovery 2 (134-6480) 是一款多功能仪器,您可以测量、可视化、生成、记录和控制各种混合信号电路。数字输入或输出有 16 个通道。您可以访问其逻辑分析仪,通过 Digilent Waveforms、多仪器软件应用程序来调试 SPI 通信。

示例项目将向您展示如何执行此操作。在项目中,您使用 Digilent Pmod MIC3(主)和 Digilent Basys 3(从)来创建 SPI 通信。硬件设置正确后。您可以使用 Analog Discovery 2 调试 SPI 通信。

Set_up2_27787002cc8d222b0dab05f9cce94334004dccb5.jpg

例如,您可以在逻辑分析仪中同时创建包括 CS、SCK、MOSI、MISO 及 SCK 和 SPI 协议在内的单个信号,以查看通信中的每个信号。

SPI_setup_83d70011fcf3afef48948352396a35a71cedfd90.jpg

添加SPI协议

Digital_aef8890b234d85e0229a2636ed396044749efa90.jpg

添加数字信号

您可以使用Waveforms中的逻辑分析仪来可视化 SPI 通信。

Logic_74892d3d824eefac2f727e7547b87e6cd4f91f3a.jpg

逻辑分析仪中的时序图

Digilent 项目页面 提供了该项目的分步教程。

awong 还没写个人简介...