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.

[参考译文] CC2530:无法在 SmartRF05板上为 CC2530配置 SPI 多从器件

Guru**** 2523310 points


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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/734024/cc2530-not-able-to-configure-spi-multiple-slave-for-cc2530-on-smartrf05-board

器件型号:CC2530
主题中讨论的其他器件:CC253

您好!

我正在处理 SPI、其中我的 CC253是主器件、并且连接了2个从器件(ADE7953能源监控和 M95M01 EEPROM)。  

如果我单独将能量监控从设备连接到 SPI、则效果完美、如果我单独连接 EEPROM 从设备、则效果同样理想。

如果我使用不同的从器件选择引脚在同一 SPI 总线上连接两个从器件、我很难解决这个问题。 在这种情况下、我能够从一个从器件读取数据、即能量监控、但数据无法从 EEPROM 读取。

#define HAL_CONFIG_IO_INPUT (端口、引脚) HAL_CONFIG_IO_INPUT_PREP (端口、引脚)
#define HAL_CONFIG_IO_INPUT_PREP (PORT、Pin) st (P#port#SEL &&~BV (Pin);\
P#port#DIR &=~BV (引脚);\
P#port#INP &=~BV (引脚);)

//以下是实际的 SPI 初始化

PERCFG |= 0x02;

/*配置 clk、master out 和 master in 行*/
HAL_CONFIG_IO_Peripheral (HAL_M95M01_SPI_PORT、HAL_ADE7953_MOSI_PIN);
HAL_CONFIG_IO_Peripheral (HAL_M95M01_SPI_PORT、HAL_ADE7953_MIO_PIN);
HAL_CONFIG_IO_Peripheral (HAL_M95M01_SPI_PORT、HAL_ADE7953_SCK_PIN);

/*将 SPI 速度设置为1MHz (这些值假设系统时钟为32MHz)
*在板上确认这会导致1MHz SPI 时钟。
*
BAUD_Exponent = 11;//使用波特率为11、5200
BAUD_尾 数= 216;//需要检查计算结果

/*配置 SPI */
U1UCR = 0x80;/*刷新并进入空闲状态。 8-N-1。 *
U1CSR = 0x00;/* SPI 模式、主器件。 *
U1GCR = HAL_ADE7953_SPI_TRANSIT_MSB_FIRST | HAL_ADE7953_SPI_CLOCK _PHA_0 | HAL_ADE7953_SPI_CLOCK _POL_LO | BAUD_指数;
U1BAUD = BAUD_尾 数;
P2SEL &=~0x20;//将优先级分配给 SPI

U1CSR |= 0x40;//仅在 SPI 初始化后启用 RX

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

    似乎您的代码是基于 hal_lcd.c 文件、这是一个很好的开始位置。
    由于 SPI 在使用相同配置设置的情况下分别成功用于每个从器件、因此我们可以假设 SPI 配置本身是正确的。

    您能否成功地向两个从器件发送命令?
    请使用逻辑分析仪检查线路、并向我们发送屏幕截图以供进一步分析。


    此致、
    Toby