TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2640R2F: 协处理器SPI通信

Part Number:CC2640R2F

尊敬的TI工程师,您好,

     我在使用Sensor Controller Studio协处理器进行低功耗设计。

     我想向使用SPI通信的传感器指定的寄存器地址,写入相应的配置,如:向0x01地址的寄存器写入0x03配置信息,向0x02地址的寄存器写入0x05配置信息,我想知道这是如何实现的(可以通过spiTx8bit(#cfg, txValue) 实现吗)?

     另外,我看您文档中SPI的数据传输功能中,只指定了传输的方式和传输的数据,我如果使用次API的话是默认从0x01地址的寄存器开始写入配置信息吗?

       

     期待您的回答!

Alex Zhang:

jiang chuanli 说:我如果使用次API的话是

您的意思是使用多次api 吗?

,

jiang chuanli:

你好,是的。我的目的是通过协处理器完成传感器的初始化,初始化完成后不断采集传感器发送过来的数据,

     这样就需要通过SPI对传感器的不同寄存器进行配置完成初始化,我看协处理器通过SPI发送数据时只用piTx8bit(#cfg, txValue) 这一个函数,我要想想不同寄存器写时,要指定寄存器的地址,我想问一下这个怎么实现?

,

Alex Zhang:

好的 我会继续跟进您这边的问题,耐心等待一下  谢谢

,

Alex Zhang:

您好 

您应该使用Sensor Controller Studio CC13x0 CC26x0帮助文档的SPI数据传输部分中提供的示例。

// MACRO: Writes an 8-bit value to an accelerometer register with 8-bit address
macro spiWriteAccelReg(addr, value) {spiBegin(SPI_POL0_PHA0, AUXIO_SPI_CSN_ACCEL);spiTx8bit(SPI_POL0_PHA0, ACCEL_SPI_WRITE);spiTx8bit(SPI_POL0_PHA0, addr);spiTx8bit(SPI_POL0_PHA0, value);spiEnd(SPI_POL0_PHA0, AUXIO_SPI_CSN_ACCEL);
}// Perform soft reset of the accelerometer, and wait for 50 ms
spiWriteAccelReg(ACCEL_REG_SOFT_RESET, ACCEL_SR_KEY);
fwDelayUs(50000, FW_DELAY_RANGE_50_MS);// Perform one-time configuration of the accelerometer
spiWriteAccelReg(ACCEL_REG_INTMAP1, ACCEL_IM_DATA_READY);
spiWriteAccelReg(ACCEL_REG_POWER_CTL, ACCEL_PC_LOW_NOISE_0 | ACCEL_PC_MEASURE_ON);

因此,您将使用spiBegin和被查询设备的正确芯片选择引脚(本例中为AUXIO_SPI_CSN_ACCEL),然后是三个连续的spiTx8bit写入命令(本例为ACCEL_SPI_write,或0x00)、寄存器地址(使用情况下为addr、0x01或0x02)和值(寄存器应写成什么)。以下任何spiTx8bit命令都会将值写入下一个寄存器地址,依此类推。然后,在为第二个设备重复该过程或选择新命令之前,您将调用spiEnd。类似的设置将用于读取寄存器地址。

赞(0)
未经允许不得转载:TI中文支持网 » CC2640R2F: 协处理器SPI通信
分享到: 更多 (0)