This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
我已经将 TMS570LS0432的 SPI 3与外部 SPIEEPROM 相连接。 当我在 Code Composer Studio 中执行代码时、我可以看到示波器上的 MISO 引脚上可以看到 EEPROM 命令的响应、但 SPI->buf 显示了所有命令的默认值(0x0000FFFF)。 当在示波器上观察 MISO (下图中的蓝色信号)时、即使时钟被禁用、该信号也会保持低电平。
我已使用以下值配置 SPI3:
spiREG3->GCR0 = 0U; /*全局控制寄存器0 = 0 SPI 处于复位状态。 *
spiREG3->GCR0 = 1U; /*全局控制寄存器0 = 1 SPI 超出复位状态。 *
spiREG3->GCR1 = 0x00000003U; /*全局控制寄存器=传输时未激活 SPI,主模式=1,(断电) SPI 激活模式=0,CLK模式=1 (时钟由内部生成)*/
spiREG3->INT0 = 0x000000000000U; /* SPI1中断寄存器- SPIENA 引脚被拉高*/
spiREG3->delay = 0x000000000000U;
spiREG3->FMT0 = 0x00004F10U; /* SPI 时钟信号未延迟、波特率=(80MHz/79+1)= 1mH、SPI 数据格式寄存器0:CHARLEN 16U (数据字长度= 16)*/
spiREG3->FMT1 = 0x00004F08U; /* SPI 时钟信号未延迟、波特率=(80MHz/79+1)= 1mH、SPI 数据格式寄存器0:CHARLEN 16U (数据字长度= 8)*/
spiREG3->LVL = 0x000000000000U; /*中断映射到 INT0、但未启用*/
spiREG3->FLG |= 0xFFFFFFU; /*清除任何挂起的中断(写入1清除任何标志)*/
spiREG3->INT0 = 0x000000000000U; /*未启用中断*/
spiREG3->PC3 = 0x0000000FU; /****** SPI1端口输出值-引脚控制寄存器0 *//*初始化 SPI1 端口*
spiREG3->PC1 = 0x0000060FU; /* SPI1引脚方向 CS 输出,CLKDIR =输出,SIMDIR0 =输出,SOMIDIR0=输入*/
spiREG3->PC6 = 0x00000000U; 针对所有引脚的/* SPI1端口开漏使能*
spiREG3->PC8 = 0x00000F0FU; 针对 CS 引脚的/*上拉选择、下拉选择、上拉= CLK、MISO、MOSI */
spiREG3->PC7 = 0x000000000000U; /*为所有引脚启用 SPI1端口引脚拉电阻控制*/
spiREG3->PC0 = 0x00000F0FU; /*将引脚功能设置为 SPI= CS、MISO、MOSI、CLK */
我已经检查了时钟极性和相位的所有组合。 在这里、我只能在极性= 0和相位= 1时在 MISO 线路上看到数据、反之亦然。 但在 EEPROM 的数据表中、极性和相位的给定组合为00或11。
但对于给定的组合、我不会在 MISO 引脚获得输出。 我将使用 CS0引脚。
您好、Miro、
我已经设置了相同的极性和相位、但我没有收到读取状态寄存器命令的数据。 当我下拉 MOSI 引脚并禁用其拉控时、我已开始在 SPI Rx_Buf 中接收数据。 但是、当我发送"从存储器阵列读取"命令时、仍然没有在缓冲区中获取数据。 我可以在示波器上看到该命令。 但我没有收到它的任何数据。
您能不能就此提出建议。
您好!
我已将所有未使用的引脚设置为 GIO 引脚、但在从存储器读取操作后、仍然没有接收任何数据。
以下是删除未使用引脚(CS1、2、3和 SPIENA)配置后的新 spi3配置:
spiREG3->PC3 = 0x00000F01U;// SPI3端口输出值-CS0、SOMI、clk 引脚处于逻辑1、SIMO 处于逻辑0 *
spiREG3->PC1 = 0x00000701U;// SPI3引脚方向 CS 输出,CLKDIR =输出,SIMDIR0 =功能,SOMIDIR0=输入*/
spiREG3->PC6 = 0x000000000000U;//所有引脚的 SPI3端口开漏启用
spiREG3->PC8 = 0x00000201U;// CS0、CLK 引脚的上拉选择,下拉选择= MISO、MOSI */
spiREG3->PC7 = 0x0000050EU;//针对 CLK、CS0、MISO 启用 SPI3端口引脚拉电阻控制
spiREG3->PC0 = 0x00000E01U;//将引脚功能设置为 SPI= CS、MISO、MOSI、CLK */
如果我仅使用 CS0引脚、此配置是否正确?
您好!
我已附加 EEPROM 指令序列以及我已配置的 SPI 初始化。
谢谢、
Amruta
您好、Miro、
我仍然没有找到任何解决此问题的方法。 您能就此提出什么建议吗?
谢谢、
Amruta
您好!
我附加的简单项目是写入/读取/擦除93LC46B 串行 EEPROM (除了写入和读取单个地址之外擦除所有地址)。
该项目适用于 TMS570LS1224 LaunchPad、但可用作设置 SPI 模块的参考。
MIBSPI3 nCS0用于从 LaunchPad 读取按钮( if (gioGetBit (mibspiPORT3、0)=0))。
因为我没有与您相同的 EEPROM、所以我连接了93LC46B 串行 EEPROM。
93LC46B 的 CS 为高电平有效。 指令的格式不同、但这与接收数据无关。
e2e.ti.com/.../1738.SPI_5F00_EPROM_5F00_1224PGE.ZIP
此致、
米罗
您好!
由于没有来自您的反馈、我将关闭此主题。 您可以始终再次写入以重新打开它、也可以打开新线程、
此致、
米罗