Hello,
I am struggling with CC2500 and I need help, please any one with any experianse with these chips or this chip family...HELP..
I have made two PCB designs:First is USB (stick or dongle like device) including CC2500 with a long monopole antenna ~ 8cm. (I will call this the MASTER device)
and the second PCB is a very small design with CC2500 going out with a small chip antenna. (The ones that look like a big SMD capacitor) I will call this design SLAVE
Idea is that the MASTER device is to be programmed to detect multiple of those small SLAVE devices.
However I run into a basic problem:
I can not make the two designs to communicate to one another!?
What happens is that I first tested the basic communication between two MASTERS, as they came out of the prototyping house, and they were communicating fine. I used the simple link example, and I made one MASTER to transmit and other MASTER to receive, and they were working just fine!Then the SLAVE devices came ready for testing, and I put the same firmware into the SLAVE device to receive the packets from the TX MASTER. - and...NOTHING!?
I couldn't get them to talk.
Then I tested the SLAVES between them (meaning SLAVE design PCB with SLAVE design PCB) - made them one RX and the other TX , and they communicate JUST FINE!
So to conclude...same design with same design works great, just there is no communication between Master and the slave design- which is the actual goal.
So my first thoughts are that I have big offset in frequency so channel 0 on the MASTER is way out of tune with the channel 0 of the SLAVE.
Then I went to search for the HW design differences, and possible mistakes. And I found the following:
- I use 27MHz crystals - same type and manufacturer on both designs which is OK.- For Crystal Loading capacitors found that there is a difference cause of the smaller design I used 10p for the SLAVE, and 18p for the MASTER- Can this be my problem? Can this range of difference generate a freq. shift so big that these two designs are totally out of tune while on same channel?
Voltage is 3.3V measured on both - looks fine.- The 1.2nH inductors on the first design are bigger 0403 size, but on the other one they are 0201 size, (smallest possible) The Q of the smaller ones is a bit lower but I was limited in space and had to use 0201 size. Any way I believe these have nothing to do with frequency, but only with quality of the already generated signal. The synthesizer generates the carrier from the crystal osc circuit alright , but I am puzzled if the above mentioned differences are so critical, so two boards like that will not communicate at all, or I am doing something else wrong?
So is there a way to calibrate these two designs and make them talk. I am stubling on some calibration registers , but the explanation is so brief , I am afraid I don't understand the procedure for calibration? Meaning, does the calibration makes sense only when we already have the chips communicating? Cause if there is no communication between them, what data will the chip use for reference right????
Am I way off with this designs and must seek the solution in the Hardware, or I can still fix things by firmware?
Thanks in advance
A given crystal should alwas have the same load cap. If you are using 10pF in one design and 18pF in the other you will have a large frequency offset between the devices. Please also note that the load cap normally is speced to be within a given range to ensure proper functionallity of the crystal oscillator. Please ensure that both devices uses the same values within spec given that the parasitics are nearly the same on the two boards.
--PS. Thank you for clicking Verify Answer if this answered your question!
Hi TER,
Many thanks for your quick response. Now its officially confirmed that I dont have comm cause of the cap values. I didn't knew their value is critical.
However my problem is now how to cahnge the cap's cause they are 0201 case - so small I am affraid I will just make a mess if I touch that with a soldering iron.
So there is no way or a procedure you may suggest to make these boards communicate? Even if it means I have to manually enter some offset value, and increase it /decrease it each time I try to send receive packet? Maybe set the receive part on some channel in the middle, and try to TX on channel +/- 1, or 2, or 3 etc...?
Anything, to make the boards talk?
THANKS!
You need a good microscope and something else than a soldering iron to change 0201 components. If you know a place which has equipment close to your location you can see if it's possible to borrow. I would also check the output frequency with a spectrum to see if the actual cap size is correct.
If you want to prove that the boards can communicate I would suggest using a signal generator and apply the required xtal frequency on Q1.
Hi Dejan,
Check out this application note on crystal and load cap selection: AN100
As TER writes, you need a spectrum analyzer to see the actual output frequencies of your boards and if it is possible to tune them to the same frequncy by changing register settings.
To (de)solder 0201 components I would use a hot air soldering iron and a pair of very thin tweezers, and of course a microscope.
/Fredrik
--PS. If I answered your question, please hit Verify Answer !
Hi Fredrik,Thank you for your post. AN100 has been very helpful.However there is a FREQTUNE register mentioned in AN100 clearly it exists in CC253x and CC2540, but I am using CC2500 so what would be the corresponding register there if it is possible to do the same in CC2500? Is it FSCTRL0 ?and if yes will this make an offset in both receiving and transmitting frequencies? or only in transmitting part?Thanks so much
Dejan
I do not think the CC2500 has the same functionality as CC253x/4x regarding frequency tuning.
The best solution would be to load the crystal with correct capacitance values (change the capacitors on the existing board). Another option is to look at the output frequencies of your boards with a spectrum analyzer to see how far off the frequncies are. Maybe you can use the frequency/channel registers to shift the board that is off to the correct frequncy.
HI people, here's a little update.
I managed to find zoom microscope setup, and I have successfully soldered 8p capacitors on top of the existing 10pico's.
That was, by the way easiest thing to do for the boards, instead of taking out the ten's and soldering 18p caps, cause of the size and PCB health, I just soldered 8 picos in parallel on top of the 10 pico's.
And here is the result = Nothing changed !!!
The same device continued to communicate with its own type, and refuse to communicate with the other design!????
Adding 10p plus on each side of the crystal - as we thought and you suggested, should create a frequency shift, and the design should at least stop communicating with the same type of design carrying only 10 pico's (if not fixing the communication with the other) - so I assume there was no freq shift, or it was so small, its not worth mentioning. Cause devices continued communicating with same range as they were before adding capacitors to one of them.( Which is by the way only two meters I presume it is cause of the small size PCB antenna.)
I know it would be nice but I can not get my hands on a spectrum analyzer at the moment, sorry.
So what happened is I guess both previous and the new value of Load capacity are in range where the crystal is locking just fine hmm...so there is really a minimum shift. So why are they then not communicating with the other design? Can it be 1,2nH inductors, which are different size - therefore they have different "Q" ?
Any suggestions?
Regards
Note that when you stack two caps like this the total cal will be larger than 18pF due to the parasitics. But you need a spectrum to debug this, without knowing which frequency your boards operate on it is difficult to debug.