Hi,
now I had achived the function to communication using the esb in nrf52832 that one to one,but I need to achive multi tx device to one.
if there not doc for me to achive this funciton
thanks you
best wish
Hi,
now I had achived the function to communication using the esb in nrf52832 that one to one,but I need to achive multi tx device to one.
if there not doc for me to achive this funciton
thanks you
best wish
Hi,
That is possible. You can see details about this in the Enhanced ShockBurst User Guide.
thank your reply
Do you mean that I can realize the function of many-to-one communication without making any changes and using examples directly?
using examples\proprietary_rf\esb_prx as center
usging examples\proprietary_rf\esb_ptx as multi salve
and they will work as I want?
Hi,
The examples does not demonstrate multiple pipes (conceptually addresses) out of the box, but I believe app pipes are enabled by default so you could start using them. For instance, the Tx example always use pipe 0 by default (this is set by NRF_ESB_CREATE_PAYLOAD). However, you can specify another pipe by modifying the payload struct before calling nrf_esb_write_payload(). So with SDK 17.0.2, you could add a line as shown here to use another pipe:
tx_payload.noack = false;
tx_payload.pipe = 4; // Specify pipe
if (nrf_esb_write_payload(&tx_payload) == NRF_SUCCESS)
...thank your replay greatly
as the code in prx example:
uint8_t base_addr_0[4] = {0xE7, 0xE7, 0xE7, 0xE7};
uint8_t base_addr_1[4] = {0xC2, 0xC2, 0xC2, 0xC2};
uint8_t addr_prefix[8] = {0xE7, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8 };
My understanding is :
there are 8 addr for ptx to communication:
addr1: 0xE7, 0xE7, 0xE7, 0xE7 , 0xE7
addr2: 0xC2, 0xC2, 0xC2, 0xC2 , 0xC2
addr3: 0xC2, 0xC2, 0xC2, 0xC2 , 0xC3
addr4: 0xC2, 0xC2, 0xC2, 0xC2 , 0xC4
addr5: 0xC2, 0xC2, 0xC2, 0xC2 , 0xC6
addr6: 0xC2, 0xC2, 0xC2, 0xC2 , 0xC7
addr7: 0xC2, 0xC2, 0xC2, 0xC2 , 0xC8
addr8: 0xC2, 0xC2, 0xC2, 0xC2 , 0xC9
is that right?
And if you want ptx to send data to prx using addr5,you should set the code like below?
tx_payload.noack = false;
tx_payload.pipe = 5; // Specify pipe
if (nrf_esb_write_payload(&tx_payload) == NRF_SUCCESS)
==============================================================
If my understanding above is right,the next few question I want to confirm is
1、Will different PTX devices using the same address cause interference
2、If the PRX opens 8 pips, can it accept data from 8 addr ?
Hi,
zeroking5 said:1、Will different PTX devices using the same address cause interference
Not really. But in that case the received could not distinguish between the transmitters, unless you have something in the data that has information about it. Also, acknowledgment packets might be confusing if device use the same address (ACK can be disabled though, if you do not need retransmissions on packet loss).
However, you would get interference if multiple Tx devices send data at the same time, regardless of if they use the same address or not. If the signal strength at the receiver is about the same that would typically cause packet loss. If one is much stronger than the other, the strong signal could be received whiteout any issue.
zeroking5 said:2、If the PRX opens 8 pips, can it accept data from 8 addr ?
Yes.