This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC1101 LQI

Hi,

I am trying to read the LQI register 0x33. However I always get 128 (CRC OK). Thus my LQI is always 0. I wonder if you guys have encountered this? My settings are below. So what I am doing is when I receive a valid data over synchronous serial I immediately call LQI read register. However it always return 128. I don't know if it has a precondition before I can use LQI (e.g. not valid in ASK, only with preamble/sync, etc). 

// Sync word qualifier mode = No preamble/sync
// CRC autoflush = false
// Channel spacing = 199.951172
// Data format = Synchronous serial mode
// Data rate = 9.9926
// RX filter BW = 101.562500
// PA ramping = false
// Preamble count = 4
// Whitening = false
// Address config = No address check
// Carrier frequency = 433.419952
// Device address = 0
// TX power = 0
// Manchester enable = true
// CRC enable = false
// Deviation = 5.157471
// Packet length mode = Infinite packet length mode
// Packet length = 255
// Modulation format = ASK/OOK
// Base frequency = 433.419952
// Channel number = 0

Please let me know if I am doing anything wrong. BTW, I can see a valid RSSI  (depending on location) when I read its (0x34) register. 

Thank You.

  • Hi

    If you enable append status what do you get if you read the LQI in the appended status bytes at the end of the packet?

    Be advices that the LQI register shares the same address as the SCAL strobe, so you need to send a burst read access (0xF3) to read the register correctly, any other access (read, single access) will be interpreted as a SCAL strobe.
  • Hi Martin,

    If I enable the append status I am still getting 0 at the location where LQI should be (after the payload).

    As for explicitly requesting for the LQI, I did used read burst of LQI 0xC0 | 33 (0xF3). But I am getting 0x80 always which corresponds to CRC ok for MSB. Even though I put my transmitter quite far from the receiver I still receive 0 as my LQI. Any pointers I should look at?

    Thank You.

  • Hi

    I was a bit fast reading through your original post. I now see that you have disabled preamble and sync word and are using synchronous serial mode. If you disable preamble and sync word detection, all other packet handling features will also be disabled, including the LQI. See section 27.2 of the users guide.
  • Hi Martin,

    Thank you very much for that information. I changed the following and 16/16 sync word and preamble. My mode is still synchronous. APPEND_STATUS is enabled. Now I can see that the LQI is changing (if it is very near I get 0, otherwise non-0). However the RSSI still remains 0 regardless of the range. Is there anything I need to setup to get a non-0  RSSI on the appended data (e.g. setup time, etc).

    Also, I notice that I missed more packets with the addition of Preamble and Sync. My PQT is set to 0. If I return the program to no preamble/sync I receive 100% of the time. But if I just change the registers, I missed a lot of packets even near by. On the application layer what I am doing is monitor 2 byte flag to say that a valid data is available. Without the preamble and sync word I always receive these flags. Any ideas what may be the problem?

    Thank You.

  • LQI doesn't work with disabled preamble and sync word. RSSI, as I have read in DN505, work anyway, isn't it?

  • The RSSI is the energy within the Rx Bw and you will be able to measure this energy as long you are in Rx.