Physical header errors (PHE) on DW1000

Hi

For my project i was using the DWM1000 (module). All my code worked fine and my system could communicate well with different configurations.
Now for the next step in the project i made my own PCB with the DW1000 on it.
The PCB only has the DW1000 on it together with two LDO’s (3.3v and 1.8v. they look clean), an antenna, a 0,5ppm oscillator and the neccesary resistors and capacitors.
Im using a raspberry pi to communicate with the DW1000 wich has the exact same code i used for the DWM1000.
Now the problem is that i can’t seem to get two PCB’s or a PCB and a DWM1000 to talk to eachother.
I measured with a RF detector that the PCB sents a message and that is confirmed by another PCB wich receives one, but he immediatly says that there is a physical header error.
The error is from the SYS_STATUS register 0x1300 (with some 0’s before it)
It doesn’t matter what channel, which datarate or other configurations i use, i haven’t been able to succesfully get a message across.

For the antenna im using a PCB antenna that was taken from the decawave site: [color=#1155cc]https://imgur.com/a/6Q44W[/color]. The impedances are calculated by altium.
I have a tin shield on top of the DW1000 wich can be seen on the previous picture, the yellow square around all components.
i have quadrupple checked all the values of the capacitors and resistors.

My question is what can be different from the DWM1000 to the DW1000?
Should there be things calibrated or initialised on the DW1000 before it can be used?

I’m at a loss here. if anyone has suggestions on what i could try to make it work i would love to hear them.

Thanks in advance,
Steven

Hi Steven,
it seems your problem is very similar to mine (https://www.decawave.com/decaforum/showthread.php?tid=188).
I tried the Decawave examples “ex_03a_tx_wait_resp” on the TAG and “ex_03b_rx_send_resp” on the ANCHOR with the following results:

[font=Courier New]±--------------------+ ±--------------------+ [/font]
[font=Courier New]| MyBoard [/font][font=Courier New]| | EVB1000 | [/font]
[font=Courier New]| TAG (Mode 3) [/font][font=Courier New]±------> ANCHOR[font=Courier New] (Mode 3)[/font] |[/font]
[font=Courier New]| ex_03a_tx_wait_resp | | ex_03b_rx_send_resp | [/font]
[font=Courier New]±--------------------+ ±--------------------+ [/font]
[font=Courier New] PHR ERRORS: [/font]
[font=Courier New] SYS_STATUS register 100000000001011100000011[/font]

[font=Courier New]±--------------------+ ±--------------------+ [/font]
[font=Courier New]| EVB1000 | | MyBoard |[/font]
[font=Courier New]| TAG (Mode 3) [/font][font=Courier New]±------> ANCHOR[font=Courier New] (Mode 3)[/font] |[/font]
[font=Courier New]| ex_03a_tx_wait_resp | | ex_03b_rx_send_resp | [/font]
[font=Courier New]±--------------------+ ±--------------------+ [/font]
[font=Courier New] PHR OK: [/font]
[font=Courier New][font=Courier New] SYS_STATUS register 100000000110111100000011[/font] [/font]

So in my case something is wrong with the PHR transmission; I’m still investigating. I suspect the problem is DW1000 without OTP programmed. I hope some Decawave technician can help me.

Tommasio

My first suspicion would be the power supply to your board. For instance you cannot draw more than 50mA from the rpi’s 3v3 rail - i.e. you can’t power a dwm1000 directly from there. Not that it’s what I think you’re doing but please check that you’re powersupply can supply the current the dw1000 will draw in rx. Also, make sure to have ample decoupling close to the dwm / dw1000.

And, the digital side of the dw1000 will function with less voltage than the rf-side. Same goes for the 38.4M oscillator - the digital side will function with lower peak to peak waveform whilst the rf-side need more. For instance, you can’t connect a tcxo directly to dw1000 even though the datasheet may indicate so, you need a buffer in between.

Niklas

Hi

Thanks for the replies.

Please correct me if i’m wrong but in the OTP memory there are not that many parts that can be programmed by the user, and the parts that can be programmed are not essential.
-setting a eui value
-tx power calibration values
-antenna delay calibrations
-crystal trim
The only thing i could thnk of is the crystal trim, but my oscillators are within spec…

I’m powering the PCB through the 5v from the USB and through a LM1117DT for 3.3v and through a AP3429A for 1.8v
I can’t see any dip or disortion when monitoring the power supply lines during transmission or reception, so i don’t believe that that is the problem.
Besides, the same setup worked perfectly fine with the DWM1000, wich has almost the exact same components inside.
i’ll try it again with a dedicated power supply and i’ll try to lower the transmit power to see if that has any positive effect.
https://imgur.com/a/WyjXv Here is the oscillator, a 0,5ppm 38,4 MHz oscillator on xtal1