Author Topic: CC2500 - Oh how I hate you!  (Read 5720 times)

0 Members and 1 Guest are viewing this topic.

Offline logictom

  • Supporter
  • ****
  • Posts: 250
  • Country: gb
    • TWMD
CC2500 - Oh how I hate you!
« on: July 25, 2011, 06:51:33 PM »
I have a few Anaren A2500R24A modules based on the TI CC2500 First of all I'll state that when I purchased I assumed these were similar to the CC2420 that I've used before, 802.15.4, but as I've learnt never assume anything and always triple check before purchasing, won't be making that mistake again...
I've been banging my head against this same wall for some time now and I'm stumped how to go forward.

I've got the SPI connection up and running, I'm able to talk to the device, read and write registers, read the status byte and the state machine.

Just in case I'm doing something stupid I'll explain how I go about this.
Power up, the device is reset, Rx & Tx registers are flushed, configuration registers are written, the state is checked and it is Idle.
I then put some data into the Tx buffer, I'm using variable length so I'll use something like
CC2500_Burst_Write(data, CC2500_REG_TXFIFO, length);
Where the data is say, 0x04, 0xDE, 0xAD, 0xBE, 0xEF, 4 being the length then the data itself
I then strobe STX, if I poll the state I can see it transition from Idle to Tx back to Idle
Is this confirmation that it has transmitted or should I be checking something else also?

On the Rx side of things I run into problems where I'll either get constant Rx overflow without Tx being on, or when I do try and Tx I get nothing.

I purchased a CC2511 RF sniffer usb dongle thinking this would help but it's even more of a pain than the CC2500, firstly the thing doesn't come programmed so it's worthless until you fork out for the programmer also, but then you can't just let it sit there and scan like I can with my 802.15.4 sniffer, you have to program it with the specific settings otherwise nothing, but even then I still can't get the thing to receive a dicky bird!

I've tried just copy pasting the settings from the Anaren files into the sniffer and also copy them but manually change the RF settings in case of clk differences.

I don't know where to go from here, I'm not entirely sure what I'm doing is correctly or how I can check this thing is actually transmitting or why the Rx is always overflowing. One thing I can say is I'm ready to get the hammer out on these things but unfortunately it's part of my project so I have to resist for now.

I'm going to give it a few more days then I think I'll pick up some of the Microchip MRF24J40MA modules. Is this only difference between MRF24J40MA and MRF24J40MB the output power/range?


Offline Kiriakos-GR

  • Super Contributor
  • ***
  • Posts: 3526
  • Country: gr
  • User is banned.
    • Honda AX-1 rebuild
Re: CC2500 - Oh how I hate you!
« Reply #1 on: July 25, 2011, 07:34:54 PM »

I'm going to give it a few more days then I think I'll pick up some of the Microchip MRF24J40MA modules. Is this only difference between MRF24J40MA and MRF24J40MB the output power/range?

From my Motorola book ( master selection guide ) , it looks that this markings is about the class of operation as amplifiers,
Class A or Class B.  :)
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 5600
  • Country: my
  • reassessing directives...
Re: CC2500 - Oh how I hate you!
« Reply #2 on: July 25, 2011, 08:34:15 PM »
i gave up on CC1101 last time. until the time comes again...

Offline cybergibbons

  • Frequent Contributor
  • **
  • Posts: 397
Re: CC2500 - Oh how I hate you!
« Reply #3 on: July 26, 2011, 07:52:06 AM »
As I said on the shout box, I've worked with the CC1110 chipset which is fundamentally the same but lower frequency.

I've not used burst write (I was working with OOK transmissions, which are outside of the normal state machine control). That said, I did have the following problems:
1. Configuring the AGC on the RX side was frequency and transmission rate dependent in the extreme. It was very easy for it to get overwhelmed and generate garbage.
2. I was initially using a dev kit made by TI and if the two units were too close together (about 2-3m) then the link wouldn't work, even on a very low power.
3. I really struggled with the state machine getting stuck where I didn't expect it, but this was because I was essentially trying to avoid using it altogether.

Offline logictom

  • Supporter
  • ****
  • Posts: 250
  • Country: gb
    • TWMD
Re: CC2500 - Oh how I hate you!
« Reply #4 on: July 27, 2011, 07:39:18 AM »
Thanks for the feedback guys, I've been back and forth with the tech support that make these modules and I'm still having no luck... I'm going to cut my losses and move back to the CC2420 which will hopefully put my project back on track :)

Offline RCMR

  • Frequent Contributor
  • **
  • Posts: 405
Re: CC2500 - Oh how I hate you!
« Reply #5 on: July 27, 2011, 10:41:12 AM »
The CC2500 works pretty well once you get the hang of it.

A lot of the current generation of 2.4GHz radio control systems use this chipset and they provide very robust connections between the RC transmitter and the model at ranges of 2Km or plus, when fitted with a 20dB amplifier stage.

All of the current systems use the CC2500 in a constantly hopping mode.

Offline logictom

  • Supporter
  • ****
  • Posts: 250
  • Country: gb
    • TWMD
Re: CC2500 - Oh how I hate you!
« Reply #6 on: July 29, 2011, 06:34:55 PM »
The CC2500 works pretty well once you get the hang of it.

I'm sure that is the case but unfortunately I've been unable to get the thing working after quite some time at it and due to time constraints simply cannot sink any more hours into this.
I switched to the CC2420 and got the link up and running within a couple of hours so I'm sticking with that for now. I'm still keen to use the CC2500 in the future, if I ever get it working... :)

Offline RCMR

  • Frequent Contributor
  • **
  • Posts: 405
Re: CC2500 - Oh how I hate you!
« Reply #7 on: July 30, 2011, 07:33:54 AM »
It can be quite illuminating to get one of these RC sets and throw a logic analyzer on the bus between the MCU and the CC2500.  That's a good learning experience in how to program the chip.

Offline logictom

  • Supporter
  • ****
  • Posts: 250
  • Country: gb
    • TWMD
Re: CC2500 - Oh how I hate you!
« Reply #8 on: July 30, 2011, 09:35:58 PM »
That was done from the very beginning to ensure I was getting the correct responses and that it was in fact working in the correct SPI mode. I can read the registers on reset and confirm they match the default values, I can program and reread to confirm they had been written, I can strobe different commands and confirm via the status byte and state machine register they are in the correct states.

I don't believe the code is the problem in as much as communication with the chip. It shouldn't be the register settings as I've used settings from TI example code and Anaren's settings, I believe it's either the way in which I'm trying to setup the communications, ie filling the buffer, strobing, checking status etc, there's too much interference that it is being swamped (but the registers settings should help with this - preamble, sync word and CRC) or it could be something else I haven't even thought about.....

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 5600
  • Country: my
  • reassessing directives...
Re: CC2500 - Oh how I hate you!
« Reply #9 on: July 31, 2011, 02:52:13 AM »
That was done from the very beginning to ensure I was getting the correct responses and that it was in fact working in the correct SPI mode. I can read the registers on reset and confirm they match the default values, I can program and reread to confirm they had been written, I can strobe different commands and confirm via the status byte and state machine register they are in the correct states.
exact same problem as mine. everything between mcu and cc1101 is doing fine, whether probed by dso, or debug/output the value from mcu, but the receiver on the other side, just dont get the signal, no matter how close or far i placed the transmitter and receiver distance. maybe next time i should probe whats going on at the transmitter or receiver antenna. at the final stage of my failure, i blamed that its china clone i was buying and maybe some components/pcb or circuit not in tune with the tranceiver. did you buy  original kit/module. but i did check TI's schematic and recommended pcb, the china clone complied to all that. so its still a mystery. one thing left to verify is components (inductors and capacitors) value, but i dont have proper "Low Value LCR" meter. when i become rich i'll buy the instrument check that.

Offline logictom

  • Supporter
  • ****
  • Posts: 250
  • Country: gb
    • TWMD
Re: CC2500 - Oh how I hate you!
« Reply #10 on: August 02, 2011, 09:24:33 AM »
exact same problem as mine. everything between mcu and cc1101 is doing fine, whether probed by dso, or debug/output the value from mcu, but the receiver on the other side, just dont get the signal, no matter how close or far i placed the transmitter and receiver distance. maybe next time i should probe whats going on at the transmitter or receiver antenna. at the final stage of my failure, i blamed that its china clone i was buying and maybe some components/pcb or circuit not in tune with the tranceiver. did you buy  original kit/module. but i did check TI's schematic and recommended pcb, the china clone complied to all that. so its still a mystery. one thing left to verify is components (inductors and capacitors) value, but i dont have proper "Low Value LCR" meter. when i become rich i'll buy the instrument check that.
Yeah still no luck at this end. It was a built module from farnell, I'm still chatting back and forth with the guys who designed it but I've moved to the CC2420 now. Just need to get the address recognition working properly and I'll be good to go :)

Offline ThePranksta

  • Contributor
  • Posts: 25
  • Country: za
    • Lattech Systems
Re: CC2500 - Oh how I hate you!
« Reply #11 on: August 31, 2011, 05:53:51 PM »
Couldn't help but smile at the Subject line.

The CC2500 is a bitch to get going and the TI documentation and example code SUCKS!!

Here is my recipe for success, at this stage I've completed  about 7 CC2500 devices from scratch and is working on my first CC430 project (combined MSP and RF cores).

Begin with the most basic of setups: One device goes power up-> reg setup->idle->rx and another goes power up->reg setup-> idle->write msg->tx strobe->wait 10s->idle->write msg-tx strobe.

For the Radio related register setup use TI's SmartRF studio, you can export the register settings in c header file format. USE THE SAME SETTINGS FOR BOTH DEVICES. For even faster start choose one of the "Preferred setups", I normally take the 250kbaud MSK setup.

Two invaluable tools I use is the C2510 development kit (http://www.ti.com/tool/cc2510-cc2511dk) which I use with the TI packet Sniffer software. NOTE IT MUST  BE A 2510 NOT A 2500.  This one is quite expensive at $650.00, I managed to score a free one (or phrase that as one on loan) fromthe TI rep.  Then there is the Ubiquiti Airview2 (http://www.ubnt.com/airview) a small Plug-And-Play USB  2.4GHz spectrum analyzer; not going to get any qualification done  but at $40 you switch a CC2500 in TX (it continuously TX preamble) and check if your frequency is what you expected; you can also check for interference in the band.

Another option is the CC2510 Mini Development kit it is $75, just check with the TI if it works with the Packet Sniffer software for 2.4GHz. I have used the CC debugger C1110 setup successfully with the Packet Sniffer.

For all the packet sniffers use the same settings as for the devices, you can also export it from SmartRF studio; the settings file (a prs file) a is just a text file with a register settings on each line in the following format:
CHANNR  |0xDF06|0x65

For the RX FIFO overflow I expect you are receiving a lot of energy in the band that gets loaded in your RX FIFO, remember the 2.4GHz is the RF whore band, everyone is having a ride.  Use the address system to limit this.

Use variable length packets, keep them small. When you go over 61 bytes a packet things get very complicated.

One the receiving device I use a GDO pin set to 0x01 functionality to detect a RF FIFO packet receival and overflow.

On a final note, if you think WOR is cool think again. It doesn't magically wake up teh radio when there is a signal, it is a basic timer system that periodically wakes up the radio to full power.

Offline ThePranksta

  • Contributor
  • Posts: 25
  • Country: za
    • Lattech Systems
Re: CC2500 - Oh how I hate you!
« Reply #12 on: August 31, 2011, 06:15:07 PM »
as an alternative to the CC2500 consider Nordic devices. Never used them but their TX/RX power to power consumption levels is ridiculously low.

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 5600
  • Country: my
  • reassessing directives...
Re: CC2500 - Oh how I hate you!
« Reply #13 on: August 31, 2011, 07:07:36 PM »
For the Radio related register setup use TI's SmartRF studio, you can export the register settings in c header file format. USE THE SAME SETTINGS FOR BOTH DEVICES. For even faster start choose one of the "Preferred setups", I normally take the 250kbaud MSK setup.
i remember i did this. but no success

Two invaluable tools I use is the C2510 development kit ... at $650.00
yea right! :P
« Last Edit: August 31, 2011, 07:10:16 PM by Mechatrommer »

Offline ThePranksta

  • Contributor
  • Posts: 25
  • Country: za
    • Lattech Systems
Re: CC2500 - Oh how I hate you!
« Reply #14 on: September 01, 2011, 11:06:36 PM »
Two invaluable tools I use is the C2510 development kit ... at $650.00
yea right! :P

And that is why I proposed the $75 CC debugger kit for the packet sniffer.  Just check with Ti for compatibility.

At $650 the DK is expensive but you have the added benifit that it can directly interface with SmartRF Studio, also if you have the MSP DK (the one with which can swop out the MCU's) you can test your design before even spinning up a board. And continue to develop while you are stuck with component lead times of up to 12 weeks.  The a $1000 is suddenly not so much, also if you in a position to negotiate numbers/prices with TI you can probably score both for free.



Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf