I have tried many different initialize setting, however the ACK could not be received in pine 1 to 5. The PRX can receive all of the 6 pipes. It works for pipe 0 only. Would anyone please help?
My rf_init() of PRX is as below:
RFCE = 0; RFCKEN = 1; RF = 1; delay(1000);
SPI_RW_Reg(WRITE_REG + EN_AA, 0x03f);
SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x3f);
SPI_RW_Reg(WRITE_REG + SETUP_AW,0x03);
SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x1f);
SPI_RW_Reg(WRITE_REG + RF_CH, 0);
SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x0f);
SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS0, TX_ADR_WIDTH);
SPI_Write_Buf(WRITE_REG + RX_ADDR_P1, TX_ADDRESS1, TX_ADR_WIDTH);
SPI_Write_Buf(WRITE_REG + RX_ADDR_P2, TX_ADDRESS2, 1);
SPI_Write_Buf(WRITE_REG + RX_ADDR_P3, TX_ADDRESS3, 1);
SPI_Write_Buf(WRITE_REG + RX_ADDR_P4, TX_ADDRESS4, 1);
SPI_Write_Buf(WRITE_REG + RX_ADDR_P5, TX_ADDRESS5, 1);
SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS0, TX_ADR_WIDTH);
SPI_RW_Reg(WRITE_REG + DYNPD, 0x3f);
SPI_RW_Reg(WRITE_REG + FEATURE, 0x06);
I set the address 0 of PTX to be
SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS1, TX_ADR_WIDTH);
SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS1, TX_ADR_WIDTH);
The 6 address are as below, the rf_init of PTX is the same as that one in PRX, I have tried different EN_RXADDR, EN_AA and also tried to set RX_PW_P0 as my payload width but the results all the same.
uint8_t const TX_ADDRESS0[TX_ADR_WIDTH] = {0x46,0x47,0x46,0x47,0x46}; uint8_t const TX_ADDRESS1[TX_ADR_WIDTH] = {0x41,0x45,0x49,0x45,0x48}; uint8_t const TX_ADDRESS2[TX_ADR_WIDTH] = {0x42}; uint8_t const TX_ADDRESS3[TX_ADR_WIDTH] = {0x43}; uint8_t const TX_ADDRESS4[TX_ADR_WIDTH] = {0x44}; uint8_t const TX_ADDRESS5[TX_ADR_WIDTH] = {0x45};