Electronic – How to debug a transmitting configuration

microcontrollerRFtransmitter

I'm using a CC1101 radio to communicate with an existing protocol. The settings I've used to configure the radio seem sound, as I'm able to receive messages from the 'other end' without errors. My returning transmissions, however, are detected less than 20% of the time. The receiving end has a debug option that shows all data received after detecting a start-byte, and when a start-byte is actually detected, the data received is correct. The amount of detected start-bytes is far too low, though.

I've confirmed my own transmissions are occurring when they should using a logic analyser, a spectrum analyser and an oscilloscope, but I can't figure out why my answers aren't detected. Other devices communicating with the receiving end do so without any problems.

How can I debug my transmitting configuration? Specifically, what steps can I take to rule out potential problems?

Details:

I've tried tuning the following settings, to either no effect or worsening the problem:

  • Deviation
  • Frequency
  • Number of preamble bytes
  • Transmit power

I've also implemented the CC1101's FREQEST feature, which required me to filter values beyond a certain threshold to prevent disabling reception altogether.

The datasheet seems to elaborate far more on reception than it does on transmission, which, in this case, isn't very helpful either.

Best Answer

I figured it out. In a very ambiguous part of the CC1101 datasheet it is mentioned that preamble settings will be ignored for certain combinations of settings. Once I fixed that and switched to a manual transmission of a preamble, everything worked fine.

For future reference, these are things to try when debugging TX:

  • Use a spectrum analyser and oscilloscope to confirm your timing
  • Make your transmitter and receiver emit a continuous wave, and make sure your frequencies match up.
  • Check whether the length of your transmission matches your expectation.
  • Check the RSSI for your communication. Does it make sense?

Thanks for thinking along, everyone!