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.

[参考译文] TMS320F28377S:SPI 24位发送问题

Guru**** 1794070 points
Other Parts Discussed in Thread: CONTROLSUITE, TMS320F28377S, DAC8560
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/594231/tms320f28377s-spi-24-bit-sending-issue

器件型号:TMS320F28377S
Thread 中讨论的其他部件:controlSUITEDAC8560

大家好、TI 社区、

我目前正在尝试配置 TMS320F28377S MCU、以便通过 SPIB (GPIO58至 GPIO61)发送24位数据流。 我知道 MCU 最多只能发送16位字;但是、通过配置 FIFO、它可以配置为立即发送连续数据。 我来发送三个8位字来实现我的24位数据流。 我正在处理 controlSUITE 中的 SPI_loopback (无中断)示例代码、但我将循环设置回0。

我正在监视 TX FIFO 状态寄存器、只能看到该寄存器被递增到2。 我还可以看到我的值被正确写入传输缓冲区。 我还想知道为什么在 LOOP Bback 位设置为0时填充接收缓冲器? 无论如何、我都在尝试与 DAC8560()通信以禁用它的内部基准。 我无法看到内部基准被禁用。 我为 SPIB 编写了一个简单的代码。 我想知道我做了什么错。

 

#define DAC8560_DISABLE_INT_SEQ_P1 0b0100100000000000 // 8位左对齐
#define DAC8560_disable_INT_SEQ_P2 0b0000010000000001
#define DAC8560_normal_OP 0b00000000000000000000
#define DAC8560_PWR_DWN_1K 0b0000000100000000
#define DAC8560_PWR_DWN_100K 0b0000001000000000
#define DAC8560_PWR_HIGH_Z 0b0000001100000000

volatile struct spi_regs * spi_ptr[spi_ch]={&SpiaRegs、&SpibRegs、&SpicRegs};

void disable_int_ref_DAC8560 (volatile struct spi_regs * spi)
{
SET_DAC8560 (SPI、DAC8560_DISABLE_INT_SEQ_P1、DAC8560_DISABLE_INT_SEQ_P2);
}

void SET_DAC8560 (volatile struct SPI_regs * SPI、UINT16 dac8560_op_mode、UINT16 DAC_level)
{
//uint16 RDATA;
uint16 sdata[]={0、0、0};
uint16 i;
sdata[0]= dac8560_op_mode;
sdata[1]= DAC_level 和0xFF00;
sdata[2]=(DAC_level 和0x00FF)<< 8;

for (i=0;i<3;i++)
{
SPI_xmit (SPI、sdata[i]);
}
} 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我使用了一个示波器、并注意到我的 SPIBCLK 在整个时间内保持低电平、并且我的 SPISTEB 在整个时间内保持高电平。 在引脚复用选择表之后、我再次检查了是否将引脚配置为 SPIB。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在进一步检查后、我能够捕获在 MOSI、CLK 和 STE 引脚上发生的活动。 我的 STE 和 MOSI 引脚按预期工作、但一开始会出现轻微的尖峰、这是我所关心的。 我还注意到、对于我的时钟信号、它的高电平永远不会达到为它提供的最大电压(3.3V)、并且保持在1V 以下、这可能是为什么没有信息被写入 DAC8560的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Brenden、

    我将帮助您解决有关 SPI 模块问题的帖子。 您能否发布当前状态的波形、并更新此帖子中的哪些问题已重新发布、哪些问题仍处于打开状态?

    您将什么电路板用于 F28377S 器件?

    此致、
    Kris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Kris、

    在进行一些硬件调试后、我意识到 SPI CLK 和 STE 引脚存在一些短路情况。 在线路未短接后、一切都进展顺利!