1

2 つの STM8s105 MCU と 2 つの NRF24L01+ モジュールがあります。1 つを送信者として設定します。

CONFIG: 0x3A 
EN_AA: 0x00 
EN_RXADDR: 0x03 
SETUP_AW: 0x03 
SETUP_RETR: 0x00 
RF_CH: 0x00 
RF_SETUP: 0x07 
STATUS: 0x2E 
OBSERVE_TX: 0x00 
CD: 0x00 
RX_ADDR_P0: 0xCC 0xCC 0xCC 0xCC 0xCC 
RX_ADDR_P1: 0xCC 0xCC 0xCC 0xFF 0xFF 
RX_ADDR_P2: 0xC3 
RX_ADDR_P3: 0xC4 
RX_ADDR_P4: 0xC5 
RX_ADDR_P5: 0xC6 
TX_ADDR: 0xCC 0xCC 0xCC 0xCC 0xCC 
RX_PW_P0: 0x20 
RX_PW_P1: 0x20 
RX_PW_P2: 0x00 
RX_PW_P3: 0x00 
RX_PW_P4: 0x00 
RX_PW_P5: 0x00 
FIFO_STATUS: 0x11 
DYNPD: 0x00 
FEATURE: 0x00 
NRF24L01 Send Data: 
0x20 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 
0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F 

8 ビット CRC が有効で ESB が無効な受信機としての 1 つ:

CONFIG: 0x3B 
EN_AA: 0x00 
EN_RXADDR: 0x03 
SETUP_AW: 0x03 
SETUP_RETR: 0x00 
RF_CH: 0x00 
RF_SETUP: 0x07 
STATUS: 0x0E 
OBSERVE_TX: 0x00 
CD: 0x00 
RX_ADDR_P0: 0xCC 0xCC 0xCC 0xCC 0xCC 
RX_ADDR_P1: 0xCC 0xCC 0xCC 0xFF 0xFF 
RX_ADDR_P2: 0xC3 
RX_ADDR_P3: 0xC4 
RX_ADDR_P4: 0xC5 
RX_ADDR_P5: 0xC6 
TX_ADDR: 0xE7 0xE7 0xE7 0xE7 0xE7 
RX_PW_P0: 0x20 
RX_PW_P1: 0x20 
RX_PW_P2: 0x00 
RX_PW_P3: 0x00 
RX_PW_P4: 0x00 
RX_PW_P5: 0x00 
FIFO_STATUS: 0x11 
DYNPD: 0x00 
FEATURE: 0x00

受信者はパケットを受信できません。

ただし、CRC を無効にすると、正常に動作します。

CONFIG: 0x33 
EN_AA: 0x00 
EN_RXADDR: 0x03 
SETUP_AW: 0x03 
SETUP_RETR: 0x00 
RF_CH: 0x00 
RF_SETUP: 0x07 
STATUS: 0x02 
OBSERVE_TX: 0x00 
CD: 0x01 
RX_ADDR_P0: 0xCC 0xCC 0xCC 0xCC 0xCC 
RX_ADDR_P1: 0xCC 0xCC 0xCC 0xFF 0xFF 
RX_ADDR_P2: 0xC3 
RX_ADDR_P3: 0xC4 
RX_ADDR_P4: 0xC5 
RX_ADDR_P5: 0xC6 
TX_ADDR: 0xE7 0xE7 0xE7 0xE7 0xE7 
RX_PW_P0: 0x20 
RX_PW_P1: 0x20 
RX_PW_P2: 0x00 
RX_PW_P3: 0x00 
RX_PW_P4: 0x00 
RX_PW_P5: 0x00 
FIFO_STATUS: 0x10 
DYNPD: 0x00 
FEATURE: 0x00 
NRF24L01 Status: 0x0E 
NRF24L01 Data Received: 
0x20 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 
0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F

助けてください、ありがとう!

ところで、NRF24L01+ モジュールが統合された STC89C52 MCU ボードがあります。このボード(CRC 有効)は問題なくパケットを受信できます。したがって、問題は受信側にあると確信しています。

ところで2、私はsdcc 3.4.0、stm8flash、およびSTM8S_StdPeriph_Driverを使用しています

4

1 に答える 1

0

クローン化された IC には大きな問題があります。元のデータシートを見ると、CRC のビットの 1 つを反転させるタイプミスがありました。クローンチップを作っている人たちは仕様に厳密に従いすぎて、実際にハードウェアにバグを実装しました。「fake nrf24l01」などで検索すると、あらゆる種類の記事や提案が見つかります。最も簡単な方法は CRC を無効にすることですが、調べてみると純正部品と CRC が機能していることがわかりました。

于 2020-01-13T22:01:44.320 に答える