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.

[参考译文] CC1120:CC1120板之间存在通信问题。

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1198052/cc1120-there-is-a-communication-problem-between-the-cc1120-boards

器件型号:CC1120

你好。 专家

我是一个希望使用 CC1120进行无线通信的人。 
我最近似乎提出了很多问题、但我真的很抱歉。 
没有什么地方可以求助。 
我正在尝试在当前开发的 CC1120模块板(TX)和 Booster Pack (RX)之间进行通信。 (图1.) 

-图1。 开发环境-

开发板(绿色)传输加载了数据的频率、而 Booster Pack (红色)接收此数据以检查智能射频。 

执行后、确认在 Smart RF 的连续 RX 中接收到加载了数据的频率。 
(图2.) 
-图2。 SmartRF 连续 RX 屏幕 
 

由于之前使用两个 BoosterPack 进行了相同的实验、因此出现了智能射频的连续 RX 屏幕、如图2所示、

从 TX 端发送的数据出现在数据包 RX 的屏幕上。

但现在、我发送的数据包不会显示在数据包 Rx 屏幕上。 
发送的数据包是用户指南49pg (图3)中显示的示例数据包。 

-图3。 示例数据包

我认为将数据写入 TX FIFO 的方式是错误的。

随附了将数据写入 TX FIFO 的代码、 
如果您能告诉我加载频率数据的过程是否正确以及您是否有任何其他好的意见、我将不胜感激。
非常感谢您的阅读。 
金某


空 User_Guide_Packet_Create()

int i=0;

int j=0;

uint8_t packet[]={0xAA、0xAA、0xAA、0xAA、0x93、0x0B、0x51、0xDE、0x54、0x61、0xE2、0x9A、0xF9、0x9D};

printf ("-------- 创建数据包--- \r\n");
for (i=0;<PKTLEN+1;i++))

printf ("0x%02x "、packet[i]);

printf ("\r\n");

while (1)

// sidle (写入0x01、空闲状态启用)
Resgister_Write (0x00、0x36、0x01);

//将数据包写入 txfifo
Resgister_Write (0x00、0x3F、packet[j]);

// STX (写入0x01、TX 状态使能)
Resgister_Write (0x00、0x35、0x01);

J++;

if (i) PKTLEN (I>PKTLEN)

J=0;


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

    首先、请具体说明您使用的硬件。

    如果这两块电路板是从 TI 购买的电路板、请提供链接、以便我们确切了解您使用的电路板。

    如果您自己制作了硬件、请发布开发电路板时使用的参考设计的链接。

    如果我理解正确、您有一个从 SmartRF Studio 在 RX 端运行的电路板、然后在 TX 端运行您自己的代码、这是正确的吗?

    您在 Studio 中和您自己的代码中使用了哪些寄存器设置?

    如何在尝试传输之前初始化 CC1120?

    当 CC1120通常自动添加前导码和同步字时、为什么要将其写入对讲机?

    我不知道您的“Resgister_Write”函数有什么作用,因此我不能说代码是否正常(发送选通命令和对 FIFO 执行猝发写操作之间的函数有何不同?)

    我也不明白您是如何实际测试任何东西的? 如果要通过 SmartRF Studio 接收数据包、则无法使用 Con. 但需要使用数据包 RX 模式。

    我强烈建议您查看

    此处提供了 TX 代码示例:

    https://www.ti.com/lit/zip/swrc253

    发送可通过 SmartRF Studio 接收的数据包所需的步骤如下:

    uint8 txBuffer[] = {0x05, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5}; // Length byte = 5
                                                             // Payload = A1 A2 A3 A4 A5
    
    // Init MCU
    initMCU();
    
    // Init Radio (use register exported from SmartRF Studio from the mode used by the RX)
    registerConfig();
    
    cc112xSpiWriteTxFifo(txBuffer, sizeof(txBuffer)); // Write 6 bytes to the TX FIFO using burst mode
    
    trxSpiCmdStrobe(CC112X_STX);
    
    // Wait for packet to be sent (use an interrupt or check for example MARCSTATE)

    Siri

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

    首先、感谢您的回复。

    下面是我对您的问题的回答。

    正如您所说的、我在 SmartRF Studio 中运行了一个电路板、并在 TX 端运行了我自己的代码、这是对的。

    2. RX 侧板是从 TI 购买的,链接如下所示。

    链接: www.ti.com/.../BOOSTXL-CC1120-90

    3. TX 侧的电路板是由 myside 开发的电路板,电路图如 所附文件1所示。 电路图
    该板旨在通过 STM32L151CMT6 MCU 控制 CC1120芯片

    4."寄存器写入"如下所示、actionbyte 选择是写入单次(0x00)还是写入猝发(0x40)。
    REGISTER_BYTE 是要写入值的寄存器地址、而 value_byte 是要写入寄存器的值。

    void Resgister_Write (uint8_t actual_byte、uint8_t register_byte、uint8_t value_byte)

    int i=0;

    uint8_t TX_Data[4]={0、};

    uint8_t RX_Data[4]={0、};

    TX_Data[0]= ACT_BYTE|REGISTER_BYTE;

    TX_Data[1]= value_byte;

    LL_GPIO_ResetOutputPin (CS_GPIO_Port、CS_Pin);

    for (i=0;i<2;i++)

    while (!LL_SPI_IsActiveFlag_TXE (SPI1)){}
    LL_SPI_TransmitData8 (SPI1、TX_Data[i]);

    while (!LL_SPI_IsActiveFlag_RXNE (SPI1)){}
    RX_Data[I]=LL_SPI_ReceiveData8 (SPI1);

    LL_GPIO_SetOutputPin (CS_GPIO_Port、CS_Pin);

    printf(">Write_Data:");

    for (i=0;i<2;i++)

    printf ("0x%02x "、TX_Data[i]);

    printf ("\r\n");

    5.我们自己代码的寄存器是从 SmartRF 中提取的。 在最底部、我将附上用于写入寄存器设置值的代码。


    6.我在尝试传输之前初始化了 CC1120。 为了精确、在设置寄存器值之前、将0x01写入选通寄存器的 SRES (0x30)。

    7.我不知道 CC1120会自动向无线电添加前言和同步字、以此作为编写 CC1120自动添加的前言和同步字的原因。

    我尽力回答您提出的问题。 如果缺少某些内容、我将添加更多内容。 非常感谢您的帮助。

    *关于答案5。 重新喷雾器设置

    void Freq_Tx ()

    //重置
    Resgister_Write (0x00、0x30、0x01);
    /*------------------------ *
    //寄存器值写入(R0)
    /*------------------------ *
    //CC112X_IOCFG3、0xB0
    Resgister_Write (0x00、0x00、0xB0);
    //CC112X_IOCFG2、0x06
    Resgister_Write (0x00、0x01、0x06);
    //CC112X_IOCFG1、0xB0
    Resgister_Write (0x00、0x02、0xB0);
    //CC112X_IOCFG10、0xB0
    Resgister_Write (0x00、0x03、0xB0);
    //CC112X_SYNC_CFG1、0x0B
    // Resgister_Write (0x00、0x06、0x0B);
    //CC112X_DCFILT_CFG、0x1C
    Resgister_Write (0x00、0x06、0x0B);
    //CC112X_IQIC、0xC6
    Resgister_Write (0x00、0x10、0xC6);
    //CC112X_CHAN_BW、0x08
    Resgister_Write (0x00、0x11、0x08);
    //CC112X_MDMCFG0、0x05
    Resgister_Write (0x00、0x0B、0x05);
    //CC112X_AGC_REF、0x20
    Resgister_Write (0x00、0x17、0x20);
    //CC112X_AGC_CS_THR、0x19
    Resgister_Write (0x00、0x18、0x19);
    //CC112X_AGC_CFG1、0xA9
    Resgister_Write (0x00、0x1C、0xA9);
    //CC112X_AGC_CFG0、0xCF
    Resgister_Write (0x00、0x1D、0xCF);
    //CC112X_FIFO_CFG、0x00
    Resgister_Write (0x00、0x1E、0x00);
    //CC112X_Setting_CFG、0x03
    Resgister_Write (0x00、0x20、0x03);
    //CC112X_FS_CFG、0x12
    Resgister_Write (0x00、0x21、0x1B);
    //CC112X_symbol_Rate2、0x43
    Resgister_Write (0x00、0x14、0x43);
    //CC112X_symbol_rate1、0xA9
    Resgister_Write (0x00、0x15、0xA0);
    //CC112X_symbol_RATE0、0x2A
    Resgister_Write (0x00、0x16、0x2A);
    //CC112X_PKT_CFG1、0x05
    Resgister_Write (0x00、0x27、0xA9);
    //CC112X_PKT_CFG0、0x40
    Resgister_Write (0x00、0x28、0x2A);
    //CC112X_PA_CFG2、0x4F
    Resgister_Write (0x00、0x2B、0x4F);
    //CC112X_PA_CFG1、0x56
    Resgister_Write (0x00、0x2C、0x56);
    //CC112X_PA_CFG0、0x1C
    Resgister_Write (0x00、0x2D、0x1C);
    //CC112X_PKT_LEN、0xFF
    Resgister_Write (0x00、0x2E、0xFF);
    //CC112X_IF_MIX _CFG、0x00
    extend_Resgister_write (0x00、0x2F、0x00、0x00);
    //CC112X_FREQOFF _CFG、0x22
    extend_Resgister_write (0x00、0x2F、0x01、0x22);
    //CC112X_FREQ2、0x6C
    extend_Resgister_write (0x00、0x2F、0x0C、0x75);
    //CC112X_FREQ1、0x80
    extend_Resgister_write (0x00、0x2F、0x0D、0x64);
    //CC112X_FREQ0、0x00
    extend_Resgister_write (0x00、0x2F、0x0E、0xCC);
    //CC112X_FS_DIG1、0x00
    extend_Resgister_write (0x00、0x2F、0x12、0x00);
    //CC112X_FS_DIG0、0x5F
    extend_Resgister_write (0x00、0x2F、0x13、0x5F);
    //CC112X_FS_CAL0、0x0E
    extend_Resgister_write (0x00、0x2F、0x17、0x0E);
    //CC112X_FS_DIVTWO、0x03
    extend_Resgister_write (0x00、0x2F、0x19、0x03);
    //CC112X_FS_DSM0、0x33
    extend_Resgister_write (0x00、0x2F、0x1B、0x33);
    //CC112X_FS_DVC0、0x17
    extend_Resgister_write (0x00、0x2F、0x1D、0x17);
    //CC112X_FS_PFD、0x50
    extend_Resgister_write (0x00、0x2F、0x1F、0x50);
    //CC112X_FS_PRE、0x6E
    extend_Resgister_write (0x00、0x2F、0x20、0x6E);
    //CC112X_FS_REG_DIV_CML、0x14
    extend_Resgister_write (0x00、0x2F、0x20、0x6E);
    //CC112X_FS_SPARE、0xAC
    extend_Resgister_write (0x00、0x2F、0x22、0xAC);
    //CC112X_XOSC5、0x0E
    extend_Resgister_write (0x00、0x2F、0x32、0x0E);
    //CC112X_XOSC3、0xC7
    extend_Resgister_write (0x00、0x2F、0x34、0xC7);
    //CC112X_XOSC1、0x07
    extend_Resgister_write (0x00、0x2F、0x36、0x07);

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

    e2e.ti.com/.../File1.-Circuit-Diagram.pdf

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

    首先、当涉及原理图时、无法查看该原理图并判断该情况是否正常。 即使原理图正常、在使用射频时、PCB 的布局也需要正确。

    这就是为什么我问您使用哪种参考设计作为硬件的参考。

    假设您的硬件正常、代码可能存在几个问题:

    当不熟悉您使用的 MCU 时、我无法通过您的代码判断您的 SPI 通信是否正常。

    您是否已使用逻辑分析仪验证您的所有 SPI 通信是否符合规格?

    为什么使用无限数据包长度模式?

    如果要将数据包传输到 SmartRF Studio、应使用 SmartRF Studio 使用的数据包格式(可变数据包长度模式)。

    您也不会执行同步校准、自动校准 I 会关闭、这将使 TX 以未知频率运行:

    同样、请使用与 SmartRF Studio 相同的设置:

    以下是复位后应写入 CC1120以便能够将数据包传输到 Studio 的寄存器列表:

    // Address Config = No address check 
    // Bit Rate = 1.2 
    // Carrier Frequency = 868.000000 
    // Deviation = 3.997803 
    // Device Address = 0 
    // Manchester Enable = false 
    // Modulation Format = 2-FSK 
    // PA Ramping = true 
    // Packet Bit Length = 0 
    // Packet Length = 255 
    // Packet Length Mode = Variable 
    // Performance Mode = High Performance 
    // RX Filter BW = 25.000000 
    // Symbol rate = 1.2 
    // TX Power = 15 
    // Whitening = false 
    
    static const registerSetting_t preferredSettings[]= 
    {
    {CC1120_IOCFG3, 0xB0},
    {CC1120_IOCFG2, 0x06},
    {CC1120_IOCFG1, 0xB0},
    {CC1120_IOCFG0, 0x40},
    {CC1120_SYNC_CFG1, 0x0B},
    {CC1120_DCFILT_CFG, 0x1C},
    {CC1120_PREAMBLE_CFG1, 0x18},
    {CC1120_IQIC, 0xC6},
    {CC1120_CHAN_BW, 0x08},
    {CC1120_MDMCFG0, 0x05},
    {CC1120_AGC_REF, 0x20},
    {CC1120_AGC_CS_THR, 0x19},
    {CC1120_AGC_CFG1, 0xA9},
    {CC1120_AGC_CFG0, 0xCF},
    {CC1120_FIFO_CFG, 0x00},
    {CC1120_FS_CFG, 0x12},
    {CC1120_PKT_CFG0, 0x20},
    {CC1120_PKT_LEN, 0xFF},
    {CC1120_IF_MIX_CFG, 0x00},
    {CC1120_FREQOFF_CFG, 0x22},
    {CC1120_FREQ2, 0x6C},
    {CC1120_FREQ1, 0x80},
    {CC1120_FS_DIG1, 0x00},
    {CC1120_FS_DIG0, 0x5F},
    {CC1120_FS_CAL1, 0x40},
    {CC1120_FS_CAL0, 0x0E},
    {CC1120_FS_DIVTWO, 0x03},
    {CC1120_FS_DSM0, 0x33},
    {CC1120_FS_DVC0, 0x17},
    {CC1120_FS_PFD, 0x50},
    {CC1120_FS_PRE, 0x6E},
    {CC1120_FS_REG_DIV_CML, 0x14},
    {CC1120_FS_SPARE, 0xAC},
    {CC1120_FS_VCO0, 0xB4},
    {CC1120_XOSC5, 0x0E},
    {CC1120_XOSC1, 0x03},
    };
    

    我不理解您在写入 FIFO 并在其中调度 IDLE 和 STX 的循环:

    发送的每个数据包只能选通 STX 一次、不能选通数据包中间的通道。

    使用上述寄存器配置 CC1120后、您将完整数据包写入 TX FIFO、例如5、1、2、3、 4、5、然后选通 STX、等待 GPIO2有效(发送 SYNC)、然后失效(发送数据包)。

    下面显示了在写入 TX FIFO 时 SPI TRAFIC 的外观。

    这是您在初始化之后唯一需要执行的操作

    Siri

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

    HW:查看原理图表明您希望使用160 MHz。 但您用于 RX 的 BoosterPack 具有 SAW 滤波器和频率为869 MHz 的前端、在160 MHz 时性能会非常差?  

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

    感谢你的答复。

    之前已通过逻辑分析仪确认 SPI 通信符合规范。

    当在不加载数据的情况下仅输出载波频率时、
    我确认我需要的频率已显示在频谱分析仪上。
    这可能不是向寄存器写入值的问题。

    正如您所说的、发送数据的方法似乎是错误的。 我不知道你以前说过什么。
    我将尝试一下、并告诉您结果。 非常感谢。

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

    感谢您的回复。 当前目标载波频率为156.525MHz。
    如果我在 Booster Pack 中设置与 SmartRF 相同的 RX 载波频率、是否无法进行通信?
    Booster Pack 本身的设计是否设计为在869MHZ 时产生最佳性能?

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

    您不应使用868板 以156 MHz 的频率运行。

    我仍然感到困惑、因为您发布的寄存器设置是868MHz。

    此外、如果您比较1.2kbps 情况下的推荐寄存器设置、您会发现除了 FREQ 寄存器之外、这两个频段之间有更多的寄存器不同。

    Siri

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

    a 上一个员额所述:  

    "HW:查看原理图表明您希望使用160MHz。 但您用于 RX 的 BoosterPack 具有 SAW 滤波器和频率为869MHz 的前端、在160MHz 时性能将非常差"

    这意味着您可能拥有链接、也可能无法拥有链接。

    作为不适用于160MHz 频带的868电路板、我们不对其进行测试或提供建议。

    Siri

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢您的回复。 
    如果是、我修改了代码以将数据传输到 TX FIFO 中。
    请看一下。 很抱歉打扰你。 有关职能将在下文答复。


    空 TI_Packet_Create ()

    int i=0;

    int j=0;

    uint8_t GPIO2[8];

    uint8_t packet[]={0xAA、0xAA、0xAA、0xAA、0x93、0x0B、0x51、0xDE、0x54、0x61、0xE2、0x9A、0xF9、0x9D};

    Resgister_Write (0x00、0x36、0x01);

    printf ("-------- 创建数据包--- \r\n");
    for (i=0;<PKTLEN+1;i++))

    printf ("0x%02x "、packet[i]);

    printf ("\r\n");

    printf ("1\r\n");

    对于(j=0;<PKTLEN+1;j++)


    Resgister_Write (0x40、0x3F、packet[j]);
    LL_mDelay (500);


    GPIO2[8]= Resgister_read (0x80、0x01);

    if (GPIO2[8]>0)

    // STX (写入0x01、TX 状态使能)
    Resgister_Write (0x00、0x35、0x01);

    printf ("txtxtx\r\n");







    -已用函数代码-
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    void Resgister_Write (uint8_t actual_byte、uint8_t register_byte、uint8_t value_byte)

    int i=0;

    uint8_t TX_Data[4]={0、};

    uint8_t RX_Data[4]={0、};

    TX_Data[0]= ACT_BYTE|REGISTER_BYTE;

    TX_Data[1]= value_byte;

    LL_GPIO_ResetOutputPin (CS_GPIO_Port、CS_Pin);

    for (i=0;i<2;i++)

    while (!LL_SPI_IsActiveFlag_TXE (SPI1)){}
    LL_SPI_TransmitData8 (SPI1、TX_Data[i]);

    while (!LL_SPI_IsActiveFlag_RXNE (SPI1)){}
    RX_Data[I]=LL_SPI_ReceiveData8 (SPI1);


    LL_GPIO_SetOutputPin (CS_GPIO_Port、CS_Pin);

    printf(">Write_Data:");

    for (i=0;i<2;i++)

    printf ("0x%02x "、TX_Data[i]);


    printf ("\r\n");


    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 



    uint8_t Resgister_read (uint8_t actual_Byte、uint8_t register_byte)

    int i=0;

    uint8_t TX_Data[4]={0、};

    uint8_t RX_Data[2]={0、};

    TX_Data[0]= ACT_BYTE|REGISTER_BYTE;

    LL_GPIO_ResetOutputPin (CS_GPIO_Port、CS_Pin);

    for (i=0;i<2;i++)

    while (!LL_SPI_IsActiveFlag_TXE (SPI1)){}
    LL_SPI_TransmitData8 (SPI1、TX_Data[i]);

    while (!LL_SPI_IsActiveFlag_RXNE (SPI1)){}
    RX_Data[I]=LL_SPI_ReceiveData8 (SPI1);


    LL_GPIO_SetOutputPin (CS_GPIO_Port、CS_Pin);

    printf (">Read_Data:0x%02x \r\n"、RX_Data[1]);

    返回 RX_Data[1];



    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 








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

    我不确定在您未遵循我的建议时、我如何为您提供进一步的帮助。

    为什么要编写前导码并同步到 FIFO?

    uint8_t packet[]={0xAA、0xAA、0xAA、0xAA、0x93、0x0B、0x51、0xDE、0x54、0x61、0xE2、0x9A、0xF9、0x9D};

    将上述数据写入 FIFO、对讲机将把0xAA 解释为长度、并且它将下溢、因为您显然不会尝试传输长度为170字节的数据包。

    我也不理解以下代码:

    for(j = 0; j < PKTLEN + 1; j++)
    {
        Resgister_Write(0x40, 0x3F, packet[j]);
        LL_mDelay(500);
    }

    使用突发访问的原因是能够在一个突发中写入所有寄存 器、而不会在每个字节之间拉高 SCN。 此外、您为什么会在那里有延迟?

    如果没有逻辑分析仪图、我不能对 SPI 功能说任何话、但从上面我可以确认无线电将下溢、并且处于数据包 RX 模式的 SmartRF Studio 将不会接收数据包、因为它使用数据包长度过滤

    Siri

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

    很抱歉,我不明白你说的话。 根据我的理解、只有数据被写入 TX FIFO、并且应该被写入单次模式、而不是突发模式?

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

    只应将数据写入 FIFO、并且应将其写入为1个突发数据。

    您正在写入 0xAA、0xAA、0xAA、0xAA、0x93、0x0B、0x51、0xDE、0x54、0x61、0xE2、0x9A、0xF9、0x9D、其中我假设 0xAA、0xAA、0xAA、0xAA 是前导码、 0x93、0x0B、0x51、0xDE 是同步。

    不应写入前导码并与 TX FIFO 同步。

    请使用我们的代码示例作为参考

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢 
    最后、我们现在要发送的数据包是用户指南中引用的数据包。



     是否有办法区分前导码和同步?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您所指的是什么用户指南?

    我说过、我假设您将前导码和 SYNC 写入 TX FIFO、原因是0xAAAAAAAA 是默认前导码、0x930B51DE 是 默认同步字(在同步寄存器中)。

    这里对此进行了说明:

    https://www.ti.com/lit/swru295

    您要发送的有效载荷是什么?

    是 :0x54、0x61、0xE2、0x9A、0xF9、0x9

    如果是、您需要将对讲机配置为固定数据包长度模式、并将长度设置为6、  

    或者使用可变数据包长度模式、正如 Studio 中的设置那样、然后开始将长度写入 TX FIFO。

    如果您查看用户指南和 TI.com 上提供的代码示例、则会在其中解释/实现所有这些示例。

    Siri

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉因为出差而迟到的回复。 
    我想我理解您现在的意思、我想我可以尝试一下。 谢谢你