This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

PTX

Hello Nordic,

I try to establish communication between an ATmega328 based board an an Arduino Nano, so far without success. The goal is to improve a RF433 "Wire". 3 weeks ago, I started the project, but for 1 week, I do not make any progress. Please have a look to the attached pdf. Obviously I tried different settings, but probably not the right one! I spent time on internet, but didn't find how to fix.

Hope you can help, thank you anyway for your time.

JacquesNrf24L01+.pdf

Parents
  • Hello Kenneth, thank you for your answer. I am stuck on the basic PTX config for a while now. It is why I decided the send this SOS.

    Here is my pretty simple assembler code :

    PTXs:
    		cbi		PORTD, CE			; CE pin Low
    		sts		TXBuff, Centmilli	; change Payload 4th byte (4 byte long payload stored in TXBuff)
    		rcall	PwrUPTX				; clr bit 0 in CONFIG reg + interrupt masks + crc 16 ; ends with 2msec delay
    		rcall	AdrPipPTX			; write "2Node" in TX-ADDR ($10 reg) and RX_ADDR_P0 ($0A Reg) for ack  MSbit of LSByte first
    
    		ldi		Temp0, $7			; STATUS
    		rcall	AffReg				; oled display for monitoring
    		ldi		Temp0, $17			; FIFO_STATUS
    		rcall	AffReg				; oled display for monitoring
    
    		lds		Temp1, PayLong		; 4 bytes to transmit hold in variable PayLong
    		clr		Temp
    		ldi		ZL, Low(TXBuff)		; Buffer where 4 bytes of payload are stored
    		ldi		ZH, High(TXBuff)		
    		add		ZL, Temp1
    		adc		ZH, Temp			; update buffer index
    		rcall	WR_TXPayload		; load FIFO
    
    		rcall	clrStatus
    
    		ldi		Temp0, $7			; STATUS
    		rcall	AffReg				; oled display for monitoring
    		ldi		Temp0, $17			; FIFO_STATUS
    		rcall	AffReg				; oled display for monitoring		
    
    		sbi		PORTD, CE			; CE pin High
    		ldi		Temp, 15
    		rcall	Wait2uS				; 30 µsec delay
    		cbi		PORTD, CE			; CE pin Low
    		ldi		Temp, 1				; wait 1 msec
    		rcall	Wait				; délai transmit >130µs
    		ldi		Temp0, $7			; FIFO_STATUS
    		rcall	AffReg				; oled display for monitoring
    		ldi		Temp0, $17			; FIFO_STATUS
    		rcall	AffReg				; oled display for monitoring
    loop1:

    I think it fits well the recommandation, but nothing arrives at PRX 2Node address. I have also scoped the CE pin signal, which is in range too.

  • Sorry, I sent the message too early!

    Can you explain Why Max RT is asserted as soon as CE pulse returns
    low ?
    Is it normal to clear a flag by writing it1 ?  Usually it is 0.

    Best regards

    Jacques

  • Hi, 

    JacquesBrunet said:
    Can you explain Why Max RT is asserted as soon as CE pulse returns
    low ?

    No, I would expect there was a delay first yes. Are these genuine nRF24L01P chips bought from a Nordic distributor? 

    JacquesBrunet said:
    Is it normal to clear a flag by writing it1 ?  Usually it is 0.

    In this case yes.

    Best regards,
    Kenneth 

  • They come from an "heritage" when my father in law died! I have no idea where he bought them. It is not the chip itself, but a micro (nano?) module with 8 pins in single line.

    With the simplest program you advised me, no ack, no DPL, no ART I get now STATUS = 0b00101110 which means Data sent, RX fifi empty TX fifo full. But when I monitor RPD at PRX side, I get signal < -64dBm and unfortunatly still no byte received.

    I continue to pull my hairs and investigate now in how RF24 library works.

    With best regards

    Jacques

  • JacquesBrunet said:
    With the simplest program you advised me, no ack, no DPL, no ART

    Maybe a misunderstanding, but my suggested minimum configuration presume that you let all other registers be default values. That means there will be ack and retransmits.

    Kenneth

  • Sorry for my misunderstanding. That time, I left all default values on the PTX side and configured Arduino PRX accordingly, hoping I do not forget something somewhere :

    100RF24/examples/GettingStarted
    Which radio is this? Enter '0' or '1'. Defaults to '0'
    radioNumber = 0
    *** PRESS 'T' to begin transmitting to the other node
    SPI Speedz = 10 Mhz
    STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
    RX_ADDR_P0-1 = 0xc2c2c2c2c2 0xe7e7e7e7e7
    RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
    TX_ADDR = 0xc2c2c2c2c2
    RX_PW_P0-6 = 0x04 0x04 0x04 0x04 0x04 0x04
    EN_AA = 0x3f
    EN_RXADDR = 0x02
    RF_CH = 0x02
    RF_SETUP = 0x0b
    CONFIG = 0x0b
    DYNPD/FEATURE = 0x00 0x00
    Data Rate = 2 MBPS
    Model = nRF24L01+
    CRC Length = 8 bits
    PA Power = PA_LOW
    ARC = 0

    I expect to send to address 0xe7e7e7e7e7,  PRX should receive datas via Pipe1.

    Fifo status says first Datas in TX FIFO (0b00000001) and then TX FIFO empty (0b00100001). RX FIFO is always empty. Nothing arrives to PRX

    Status says RX FIFO empty TX FIFO full (0b00001111).

    Observe_TX says 0b00000000 nothing lost nothing retransmitted.

    I cannot understand what's append. Any idea ? By the way, can you tell me where to buy "official" modules, just in case mine are not compatibles ?

    Another question, I cannot find the field to change my password. Just reset via email. can you help please ?

    With best regards

    Jacques

  • And you CE is set high on the PRX after configuration?

    Kenneth

Reply Children
No Data
Related