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.

[参考译文] CC2640R2F:无法使用 SPI 连接 ADs1220

Guru**** 2393725 points
Other Parts Discussed in Thread: ADS1220, CC2640

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/789273/cc2640r2f-unable-to-interface-ads1220-using-spi

器件型号:CC2640R2F
主题中讨论的其他器件:ADS1220CC2640

您好!

我一直在尝试使用顶部接口 ADS1220与 CC2640、方法是借助 SPI 主器件示例修改简单 BLE 外设。

但是、由于 DIO8、 DIO9、DIO10在 DSO 中没有显示任何信号、我似乎无法初始化 SPI 并连接到 ADS1220。  

静态空 SimplePeripheral_performPeriodicTask (空)

SPI_Handle 句柄;
SPI_Params 参数;
SPI_Transaction 事务;
uint8_t txBuf[]={0xA1、0xC0、0xC0、0x00};//发送缓冲器
uint8_t rxBuf[20];//接收缓冲区

// memset (txBuf、0xFF、sizeof (txBuf));
// memset (rxBuf、0xFF、sizeof (rxBuf));

//初始化 SPI 并指定非默认参数
SPI_PARAMS_INIT (params);
params.bitrate = 1000000;
params.frameFormat = SPI_POL1_PHA1;
params.mode = SPI_MASTER;

//配置事务
transaction.count = sizeof (txBuf);
transaction.txBuf = txBuf;
transaction.rxBuf = rxBuf;

//打开 SPI 并启动第一个传输
句柄= SPI_open (Board_SPI_master、&params);
SPI_TRANSFCTION (句柄、事务);

SimpleProfile_SetParameter (SIMPLEPROFILE_CHAR4、sizeof (uint8_t)、
rxBuf);

SPI_Close (handle);

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

    我看不到您在代码中设置了 Dios (DIO8、DIO9和 DIO10)。 您是否在其他地方执行该操作?

    此致、
    R.M.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我使用了与 CC2640R2_LAUNCHXL_SPI0链接的 Board_SPI_Master、该 CC2640R2_LAUNCHXL_SPI0将(DIO8、DIO9、DIO10)定义为 MISO、MOSI、Clk。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您说您无法初始化 SPI,这是否意味着 SPI_open()失败(返回 NULL)?

    您是否首先使用 SPI_init()初始化 SPI 模块 ?

    此致、

    R.M.

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

    我认为 SPI_Transfer 失败,无法检查我修改的代码,也包括 SPI_init()。 现在、SPI_Transfer 未发生故障、但我获得0x00作为输出。

    spi_init();

    SPI_Handle 句柄;
    SPI_Params 参数;
    SPI_Transaction 事务;
    uint8_t txBuf[]={0xA1、0xC0、0x00、0x00};//发送缓冲器
    uint8_t rxBuf[10];//接收缓冲区

    //初始化 SPI 并指定非默认参数
    SPI_PARAMS_INIT (params);
    params.bitrate = 1000000;
    params.frameFormat = SPI_POL1_PHA1;
    params.mode = SPI_MASTER;

    //配置事务
    transaction.count = sizeof (txBuf);
    transaction.txBuf = txBuf;
    transaction.rxBuf = rxBuf;

    //打开 SPI 并启动第一个传输
    句柄= SPI_open (Board_SPI_master、&params);


    if (SPI_transfer (handle、&transaction))

    for (int i =0;i<10;i++)


    uint8 adc = rxBuf[i];
    SimpleProfile_SetParameter (SIMPLEPROFILE_CHAR4、sizeof (uint8_t)、
    ADC);




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

    我建议您首先从 SPI 主设备示例开始、然后将其合并到简单 BLE 外设项目中。

    此致、
    R.M.