Reply
Posts: 435
Registered: ‎07-13-2015
Accepted Solution

Si446x: please help understand what the DSA can and can't do

[ Edited ]

Good morning,

 

I use an Si4467 (that is in an EZR32WG device) and am in the process of optimizing the RF part of my application for low power consumption.

 

It seems to me that an awful amount of power is consumed by the 446x in RX mode with default settings, and through some trial and error I've already had some success: I've reduced the RX mode power consumption from 15 mA to 5 mA by enabling low power mode, configuring PSM (preamble sense mode), shortening the RX preamble timeout, decreasing the RX preamble threshold and enabling the DSA.

 

It seems that the DSA is awesomely cool, because it allowed me to reduce the preamble timeout while increasing the amount of time the device spends in RX_IDLE mode. The only problem however is that I still don't completely grasp what exactly the DSA does and I'd like to understand it better.

 

Here are a few questions:

 

  1. It looks like the DSA allows to set a very low RX_PREAMBLE_TIMEOUT and RX_THRESH. Currently it is so low that without the DSA the chip cannot detect any packages at all. This is so suspicious that I must ask, do these two properties even affect the DSA at all?
  2. At its current settings, the chip cannot detect any incoming packages without the DSA. In this case, is it safe to set RX_PREAM_SRC to 1 (ignoring the standard preamble detection and relying solely on the DSA)? What are the consequences of such a setting?
  3. Can the DSA be used to detect a non-standard preamble? (What is the minimum length of the non-standard preamble when using the DSA? Would this work even if AFC is enabled?)
  4. When the DSA and AFC are turned on, can I configure the chip to allow a bit error in the preamble?
  5. I used the WDS to configure the DSA and it output a configuration where EYEXEST_EN is 0 (eye opening is disabled), but QUAL_SOURCE is 1 (the DSA uses eye opening). This looks like a mistake, or am I misunderstanding the documentation?
  6. Setting BCR_GEAR_SHIFT to 1 seems like a good idea, but I'm not sure, are there any negative consequences?
  7. What exactly is the relationship between the DSA and the PSM?
  8. It looks like the DSA can do much more than what the WDS (currently) can configure on it. Is there an application note or a detailed explanation about configuring the DSA? The device datasheets (neither the 4468/7 nor the EZR32WG330 datasheet) are not very forthcoming. The API documentation has been helpful, but it lacks detailed explanation.
  9. The 4468/7 datasheet section 4.3.1 says that when the DSA is enabled, the preamble can be as short as 1 byte. The next sentence says that if AFC is enabled, 2 bytes are required. So I'm now wondering, how exactly does this work? What is the relationship between AFC and the DSA?

 

Thank you in advance for your answers!

Posts: 113
Registered: ‎05-06-2014

Re: Si446x: please help understand what the DSA can and can't do

 

 

Timur,

 

The DSA is a cool feature of revC2 and A2 ICs from the Si446x family. The documentation is admittedly scarce on the topic (not the least because it is not released yet).

A release (meaning new WDS with DSA and PSM support) is imminent. Just a bit more patinece please.

 I am going through your questions one by one.

- It looks like the DSA allows to set a very low RX_PREAMBLE_TIMEOUT and 
RX_THRESH. Currently it is so low that without the DSA the chip cannot 
detect any packages at all. This is so suspicious that I must ask, do 
these two properties even affect the DSA at all? 

Zoltan: No, they don’t.


- At its current settings, the chip cannot detect any incoming packages 
without the DSA. In this case, is it safe to set RX_PREAM_SRC to 1 
(ignoring the standard preamble detection and relying solely on the 
DSA)? What are the consequences of such a setting? 

Zoltan: This is the setting we normally use/recommend. When preamble source is set to preamble detection an additional preamble detection is done after DSA detect. It follows than that this latter option can only be used with standard preambles. There is little benefit of using this 2nd stage detection, it only reduces false detect likelihood that is already very low.


- Can the DSA be used to detect a non-standard preamble? (What is the 
minimum length of the non-standard preamble when using the DSA? Would 
this work even if AFC is enabled?) 

Zoltan: Yes, the DSA can be used to detect non-standard preambles. However, it cannot be used together with the traditional non-standard (pattern matching) preamble detection feature.


- When the DSA and AFC are turned on, can I configure the chip to allow 
a bit error in the preamble? 

Zoltan: No you cannot. The DSA does not have this feature as it is not working on a pattern match algorithm.


- I used the WDS to configure the DSA and it output a configuration 
where EYEXEST_EN is 0 (eye opening is disabled), but QUAL_SOURCE is 1 
(the DSA uses eye opening). This looks like a mistake, or am I 
misunderstanding the documentation? 

Zoltan: The DSA detectors are enabled in QUAL_SOURCE. EYEXEST_EN has a different role. I must come back to you on that one.


- Setting BCR_GEAR_SHIFT to 1 seems like a good idea, but I'm not sure, 
are there any negative consequences? 

Zoltan: This configuration is our recommendation too (as don’t forget we are dealing with short preambles here). The only drawback could be a touch worse sensitivity on sync word detection. This however outweighs its benefit of providing a more robust sync word detection.


- What exactly is the relationship between the DSA and the PSM? 

PSM (Preamble Sense Mode) is a feature that makes use of the DSA. With the DSA it is possible to assess the presence/absence of a desired signal much quicker than with traditional preamble detection. The receiver checks the channel for a valid signal very quick and if there is no signal it goes to IDEL state and then wakes again just in time to (even) catch preambles that have started just after it’s gone to IDLE.


- It looks like the DSA can do much more than what the WDS (currently) 
can configure on it. Is there an application note or a detailed 
explanation about configuring the DSA? The device datasheets (neither 
the 4468/7 nor the EZR32WG330 datasheet) are not very forthcoming. The 
API documentation has been helpful, but it lacks detailed explanation. 

Zoltan: An AN will come out at release that details the operation and WDS features.


- The 4468/7 datasheet section 4.3.1 says that when the DSA is enabled, 
the preamble can be as short as 1 byte. The next sentence says that if 
AFC is enabled, 2 bytes are required. So I'm now wondering, how exactly 
does this work? What is the relationship between AFC and the DSA? 


Zoltan: When DSA is enabled the AFC algorithm is a onetime adjustment on the PLL synthesizer’s frequency that occurs at DSA detect. The effect of this change must propagate through the Rx chain for correct demodulation, hence the need for a longer preamble. 

 

 

Timur,

 

The DSA is a cool feature of revC2 and A2 ICs from the Si446x family. The documentation is admittedly scarce on the topic (not the least because it is not released yet).

A release (meaning new WDS with DSA and PSM support) is imminent.

 I am going through your questions one by one.

- It looks like the DSA allows to set a very low RX_PREAMBLE_TIMEOUT and 
RX_THRESH. Currently it is so low that without the DSA the chip cannot 
detect any packages at all. This is so suspicious that I must ask, do 
these two properties even affect the DSA at all? 

No, they don’t.


- At its current settings, the chip cannot detect any incoming packages 
without the DSA. In this case, is it safe to set RX_PREAM_SRC to 1 
(ignoring the standard preamble detection and relying solely on the 
DSA)? What are the consequences of such a setting? 

This is the setting we normally use/recommend. When preamble source is set to preamble detection an additional preamble detection is done after DSA detect. It follows than that this latter option can only be used with standard preambles. There is little benefit of using this 2nd stage detection, it only reduces false detect likelihood that is already very low.


- Can the DSA be used to detect a non-standard preamble? (What is the 
minimum length of the non-standard preamble when using the DSA? Would 
this work even if AFC is enabled?) 

Yes, the DSA can be used to detect non-standard preambles. However, it cannot be used together with the traditional non-standard (pattern matching) preamble detection feature.


- When the DSA and AFC are turned on, can I configure the chip to allow 
a bit error in the preamble? 

No you cannot. The DSA does not have this feature as it is not working on a pattern match algorithm.


- I used the WDS to configure the DSA and it output a configuration 
where EYEXEST_EN is 0 (eye opening is disabled), but QUAL_SOURCE is 1 
(the DSA uses eye opening). This looks like a mistake, or am I 
misunderstanding the documentation? 

The DSA detectors are enabled in QUAL_SOURCE. EYEXEST_EN has a different role. I must come back to you on that one.


- Setting BCR_GEAR_SHIFT to 1 seems like a good idea, but I'm not sure, 
are there any negative consequences? 

This configuration is our recommendation too (as don’t forget we are dealing with short preambles here). The only drawback could be a touch worse sensitivity on sync word detection. This however outweighs its benefit of providing a more robust sync word detection.


- What exactly is the relationship between the DSA and the PSM? 

PSM (Preamble Sense Mode) is a feature that makes use of the DSA. With the DSA it is possible to assess the presence/absence of a desired signal much quicker than with traditional preamble detection So the receiver checks the channel for a valid signal very quick and if there is no signal it goes to IDEL state and then wakes again just in time to catch preambles that have started just after it’s gone to IDLE.


- It looks like the DSA can do much more than what the WDS (currently) 
can configure on it. Is there an application note or a detailed 
explanation about configuring the DSA? The device datasheets (neither 
the 4468/7 nor the EZR32WG330 datasheet) are not very forthcoming. The 
API documentation has been helpful, but it lacks detailed explanation. 

An AN will come out at release that details the operation and WDS features.


- The 4468/7 datasheet section 4.3.1 says that when the DSA is enabled, 
the preamble can be as short as 1 byte. The next sentence says that if 
AFC is enabled, 2 bytes are required. So I'm now wondering, how exactly 
does this work? What is the relationship between AFC and the DSA? 


When DSA is enabled the AFC algorithm is a onetime adjustment on the PLL synthesizer’s frequency that occurs at DSA detect. The effect of this change must propagate through the Rx chain for correct demodulation, hence the need for a longer preamble. 

 

 

Timur,

 

The DSA is a cool feature of revC2 and A2 ICs from the Si446x family. The documentation is admittedly scarce on the topic (not the least because it is not released yet).

A release (meaning new WDS with DSA and PSM support) is imminent.

 I am going through your questions one by one.

- It looks like the DSA allows to set a very low RX_PREAMBLE_TIMEOUT and 
RX_THRESH. Currently it is so low that without the DSA the chip cannot 
detect any packages at all. This is so suspicious that I must ask, do 
these two properties even affect the DSA at all? 

No, they don’t.


- At its current settings, the chip cannot detect any incoming packages 
without the DSA. In this case, is it safe to set RX_PREAM_SRC to 1 
(ignoring the standard preamble detection and relying solely on the 
DSA)? What are the consequences of such a setting? 

This is the setting we normally use/recommend. When preamble source is set to preamble detection an additional preamble detection is done after DSA detect. It follows than that this latter option can only be used with standard preambles. There is little benefit of using this 2nd stage detection, it only reduces false detect likelihood that is already very low.


- Can the DSA be used to detect a non-standard preamble? (What is the 
minimum length of the non-standard preamble when using the DSA? Would 
this work even if AFC is enabled?) 

Yes, the DSA can be used to detect non-standard preambles. However, it cannot be used together with the traditional non-standard (pattern matching) preamble detection feature.


- When the DSA and AFC are turned on, can I configure the chip to allow 
a bit error in the preamble? 

No you cannot. The DSA does not have this feature as it is not working on a pattern match algorithm.


- I used the WDS to configure the DSA and it output a configuration 
where EYEXEST_EN is 0 (eye opening is disabled), but QUAL_SOURCE is 1 
(the DSA uses eye opening). This looks like a mistake, or am I 
misunderstanding the documentation? 

The DSA detectors are enabled in QUAL_SOURCE. EYEXEST_EN has a different role. I must come back to you on that one.


- Setting BCR_GEAR_SHIFT to 1 seems like a good idea, but I'm not sure, 
are there any negative consequences? 

This configuration is our recommendation too (as don’t forget we are dealing with short preambles here). The only drawback could be a touch worse sensitivity on sync word detection. This however outweighs its benefit of providing a more robust sync word detection.


- What exactly is the relationship between the DSA and the PSM? 

PSM (Preamble Sense Mode) is a feature that makes use of the DSA. With the DSA it is possible to assess the presence/absence of a desired signal much quicker than with traditional preamble detection. (Some more infor on this you can find here: http://community.silabs.com/t5/Wireless-Knowledge-Base/EZRadioPro-Auto-Frequency-Hopping-2-Detection... At PSM operation the receiver checks the channel for a valid signal very quick and if there is no signal it goes to IDEL state and then wakes again just in time to (even) catch preambles that have started just after it’s gone to IDLE.


- It looks like the DSA can do much more than what the WDS (currently) 
can configure on it. Is there an application note or a detailed 
explanation about configuring the DSA? The device datasheets (neither 
the 4468/7 nor the EZR32WG330 datasheet) are not very forthcoming. The 
API documentation has been helpful, but it lacks detailed explanation. 

An AN will come out at release that details the operation and WDS features.


- The 4468/7 datasheet section 4.3.1 says that when the DSA is enabled, 
the preamble can be as short as 1 byte. The next sentence says that if 
AFC is enabled, 2 bytes are required. So I'm now wondering, how exactly 
does this work? What is the relationship between AFC and the DSA? 


When DSA is enabled the AFC algorithm is a onetime adjustment on the PLL synthesizer’s frequency that occurs at DSA detect. The effect of this change must propagate through the Rx chain for correct demodulation, hence the need for a longer preamble. See also chapter 3.4.2 in AN734.

Thank you in advance for your answers!

<a href="http://community.silabs.com/t5/Welcome-and-Announcements/Community-Ranking-System-and-Recognition-Program/m-p/140490#U140490"><font color="#000000"><font size="2">Hero</font></font> </a> rev
Posts: 313
Registered: ‎07-04-2014

Re: Si446x: please help understand what the DSA can and can't do

Hi Zoltan, 

"A release (meaning new WDS with DSA and PSM support) is imminent. Just a bit more patinece please."

So was wondering what a time frame of imminent means Cat Wink

 

Paul

 

Posts: 435
Registered: ‎07-13-2015

Re: Si446x: please help understand what the DSA can and can't do

 

Thanks @zopapp for your detailed answer. I'll respond to each point individually.

 

1.

It looks like the DSA allows to set a very low RX_PREAMBLE_TIMEOUT and RX_THRESH. Currently it is so low that without the DSA the chip cannot detect any packages at all. This is so suspicious that I must ask, do these two properties even affect the DSA at all?
Zoltan: No, they don’t.

Could you please check this again?
Looks like it isn't so simple. When I set RX_PREAMBLE_TIMEOUT to 4 or below, packages aren't detected even by the DSA. (I have the PLL AFC turned on, tried turning that off but setting RX_PREAMBLE_TIMEOUT to 4 or lower values still didn't work.) By didn't work, I mean it simply dropped all incoming packages.

 

2.

At its current settings, the chip cannot detect any incoming packages without the DSA. In this case, is it safe to set RX_PREAM_SRC to 1 (ignoring the standard preamble detection and relying solely on the DSA)? What are the consequences of such a setting?
Zoltan: This is the setting we normally use/recommend. When preamble source is set to preamble detection an additional preamble detection is done after DSA detect. It follows than that this latter option can only be used with standard preambles. There is little benefit of using this 2nd stage detection, it only reduces false detect likelihood that is already very low.

Okay, so just to make sure I'm getting what you say: when DSA_EN is 1 and RX_PREAM_SRC is 0, then both the DSA and the old preamble detector is used in sequence? So the detection actually takes a longer time?

 

3.

Can the DSA be used to detect a non-standard preamble? (What is the minimum length of the non-standard preamble when using the DSA? Would this work even if AFC is enabled?)
Zoltan: Yes, the DSA can be used to detect non-standard preambles. However, it cannot be used together with the traditional non-standard (pattern matching) preamble detection feature.

How do you configure the DSA to detect non-standard preables?

 

4.

When the DSA and AFC are turned on, can I configure the chip to allow a bit error in the preamble?
Zoltan: No you cannot. The DSA does not have this feature as it is not working on a pattern match algorithm.

Huh. Okay. If I remember correctly, the old package handler was able to allow a bit error even in a standard preamble if I set it to work with a non-standard preamble and allowed a bit error in that. Is there no way for the DSA to configure it similarly?

 

5.

I used the WDS to configure the DSA and it output a configuration where EYEXEST_EN is 0 (eye opening is disabled), but QUAL_SOURCE is 1 (the DSA uses eye opening). This looks like a mistake, or am I misunderstanding the documentation?
Zoltan: The DSA detectors are enabled in QUAL_SOURCE. EYEXEST_EN has a different role. I must come back to you on that one.

OK, thanks! Looking forward to hearing about it.

 

6.

Setting BCR_GEAR_SHIFT to 1 seems like a good idea, but I'm not sure, are there any negative consequences?
Zoltan: This configuration is our recommendation too (as don’t forget we are dealing with short preambles here). The only drawback could be a touch worse sensitivity on sync word detection. This however outweighs its benefit of providing a more robust sync word detection.

Awesome!

 

7.

What exactly is the relationship between the DSA and the PSM?
PSM (Preamble Sense Mode) is a feature that makes use of the DSA. With the DSA it is possible to assess the presence/absence of a desired signal much quicker than with traditional preamble detection. The receiver checks the channel for a valid signal very quick and if there is no signal it goes to IDEL state and then wakes again just in time to (even) catch preambles that have started just after it’s gone to IDLE.

Okay, what I gather from the docs is that I can tell the chip how long it should sleep by setting IDLE_TIME in MODEM_PSM. But what I don't see is how to control how long it remains in active state. Before I started using the DSA, I had the impression that (at least on the traditional preamble detector) this is controlled by RX_PREAMBLE_TIMEOUT, right? So when using the DSA, how do I know if the chip is awake for a long enough time to detect enough preamble bytes?

 

8.

It looks like the DSA can do much more than what the WDS (currently) can configure on it. Is there an application note or a detailed explanation about configuring the DSA? The device datasheets (neither the 4468/7 nor the EZR32WG330 datasheet) are not very forthcoming. The API documentation has been helpful, but it lacks detailed explanation.
Zoltan: An AN will come out at release that details the operation and WDS features.

Awesome! I cannot wait to read it. Robot Happy

 

9.

- The 4468/7 datasheet section 4.3.1 says that when the DSA is enabled, the preamble can be as short as 1 byte. The next sentence says that if AFC is enabled, 2 bytes are required. So I'm now wondering, how exactly does this work? What is the relationship between AFC and the DSA?
Zoltan: When DSA is enabled the AFC algorithm is a onetime adjustment on the PLL synthesizer’s frequency that occurs at DSA detect. The effect of this change must propagate through the Rx chain for correct demodulation, hence the need for a longer preamble.

Ah, okay.

Posts: 435
Registered: ‎07-13-2015

Re: Si446x: please help understand what the DSA can and can't do

@zopapp One more question: how long does it take the chip to transition between the RX and the RX_IDLE state? Also, what's the difference between RX_IDLE and READY?

Posts: 113
Registered: ‎05-06-2014

Re: Si446x: please help understand what the DSA can and can't do

 

Timur,

 

IDLE state is no different to READY state. (The reason for calling it IDLE is a contingency plan to be able to change the "underlaying" state based on for example preamble length. A typical use case could be a SLEEP IDLE state. This, however has not got implemented at the end. If someone wants SLEEP state LDC RX with DSA detection is the answer.) Note that IDLE state is listed under the START_RX command "next state" argument values. Do select this in PSM operation for the timeout state! (If you select READY it won't work.)

 

The READY to RX state transition time is 100 us (refer to chapter 3.3 in the DS). Rx to READY is much faster at around 25 us.

 

 

Cheers,

Zoltan

 

 

Posts: 435
Registered: ‎07-13-2015

Re: Si446x: please help understand what the DSA can and can't do

Thank you @zopapp!

Could you please answer my remaining questions from above? I'm still waiting on a reply to 1, 2, 3, 4, 5 and 7.

Posts: 113
Registered: ‎05-06-2014

Re: Si446x: please help understand what the DSA can and can't do

#1 My bad, I only had PREAMBLE_DETECTION_THRESHOLD in mind. As far as RX_PREAMBLE_TIMEOT is concerned keep it at a safe high value (like the default) to make sure it does not “undercut” the DSA driven state machine. Although I have never tried I can imagine that too short a TO will shut the receiver before the DSA could detect.

 

#2 Yes.

 

#3 You don’t have to configure the DSA any different for detection a non-standard preamble (as long as you have reasonable number of bit transitions in it, a Manchester coded preamble falls under this category). However state machine restrictions may mean that some timing parameters must be configured on a case by case basis. At the moment I can only say give it a go and see if it works with the configuration devised for standard preamble detection.

 

#4 Zoltan: No, the DSA doesn’t care about the demodulated data, it only measures some physical parameters of the signal. That said it does not mean you cannot adjust the sensitivity of the DSA block at the price of having more false detects (essentially this is what you also do with allowing bit errors in the demodulated preamble sequence with traditional detection). I am deliberately not pointing to the knobs here yet.

 

#5 Still no answer on this.

 

#7 Zoltan: This is one of the beauties of using the DSA. It will drop out of Rx state as soon as it has concluded that there is no signal (no sooner no later). This part of the state machine is event driven. This is touched upon here at 3: http://community.silabs.com/t5/Wireless-Knowledge-Base/EZRadioPro-Auto-Frequency-Hopping-2-Detection...

 

Cheers,

Zoltan

Posts: 435
Registered: ‎07-13-2015

Re: Si446x: please help understand what the DSA can and can't do

[ Edited ]

@zopapp This is great news!

 

#1 I tried this. Yeah, a very short preamble timeout will prevent the DSA from acquiring any signal.

 

#2 Great, thank you!

 

#3 Okay, thanks!

 

#4 The API documentation does tell which parameters can be configured to make the DSA more forgiving. It looks like the relevant properties are MODEM_DSA_CTRL1 / ADJ_SAMP_ERR_TOLERANCE, MODEM_DSA_CTRL2 / ARRIVAL_THD and MODEM_DSA_QUAL / ARRQUAL, but I haven't dared try setting any of those yet to anything other than the default.

 

#7 Okay, I think I get it now. So a lower preamble timeout will not affect the DSA's decision about whether it hasn't detected a preamble (and it will jump back to ready state when it decides), but a too low preamble timeout will undermine the DSA's ability to decide whether it has detected a preamble, right?

Highlighted
Posts: 113
Registered: ‎05-06-2014

Re: Si446x: please help understand what the DSA can and can't do

Hi Timur,

 

#4 You have found the tweaking knobs all rightRobot wink

 

#7 Yes, your understanding is correct.

 

/Z