CC2500 - Oh how I hate you! - Page 1
Forum section: electronics / projects

author: logictom
author_rank: Unknown
timestamp: July 25, 2011, 08:51:33 am
content: I have a fewAnaren A2500R24Amodules based on theTI CC2500First 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 likeCC2500_Burst_Write(data, CC2500_REG_TXFIFO, length);Where the data is say, 0x04, 0xDE, 0xAD, 0xBE, 0xEF, 4 being the length then the data itselfI then strobe STX, if I poll the state I can see it transition from Idle to Tx back to IdleIs 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 aCC2511 RF snifferusb 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 my802.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?

author: Kiriakos-GR
author_rank: Super Contributor
timestamp: July 25, 2011, 09:34:54 am
content: Quote from: logictom on July 25, 2011, 08:51:33 amFrom my Motorola book ( master selection guide ) , it looks that this markings is about the class of operation as amplifiers,Class A or Class B.

author: Mechatrommer
author_rank: Super Contributor
timestamp: July 25, 2011, 10:34:15 am
content: i gave up on CC1101 last time. until the time comes again...

author: cybergibbons
author_rank: Frequent Contributor
timestamp: July 25, 2011, 09:52:06 pm
content: 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.

author: logictom
author_rank: Unknown
timestamp: July 26, 2011, 09:39:18 pm
content: 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 :)

author: RCMR
author_rank: Frequent Contributor
timestamp: July 27, 2011, 12:41:12 am
content: 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.

author: logictom
author_rank: Unknown
timestamp: July 29, 2011, 08:34:55 am
content: Quote from: RCMR on July 27, 2011, 12:41:12 amI'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... :)

author: RCMR
author_rank: Frequent Contributor
timestamp: July 29, 2011, 09:33:54 pm
content: 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.

author: logictom
author_rank: Unknown
timestamp: July 30, 2011, 11:35:58 am
content: 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.....

author: Mechatrommer
author_rank: Super Contributor
timestamp: July 30, 2011, 04:52:13 pm
content: Quote from: logictom on July 30, 2011, 11:35:58 amexact 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.

author: logictom
author_rank: Unknown
timestamp: August 01, 2011, 11:24:33 pm
content: Quote from: Mechatrommer on July 30, 2011, 04:52:13 pmYeah 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

author: ThePranksta
author_rank: Contributor
timestamp: August 31, 2011, 07:53:51 am
content: 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 C2510development 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|0x65For 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.

author: ThePranksta
author_rank: Contributor
timestamp: August 31, 2011, 08:15:07 am
content: as an alternative to the CC2500 consider Nordic devices. Never used them but their TX/RX power to power consumption levels is ridiculously low.

author: Mechatrommer
author_rank: Super Contributor
timestamp: August 31, 2011, 09:07:36 am
content: Quote from: ThePranksta on August 31, 2011, 07:53:51 ami remember i did this. but no successQuote from: ThePranksta on August 31, 2011, 07:53:51 amyea right!

author: ThePranksta
author_rank: Contributor
timestamp: September 01, 2011, 01:06:36 pm
content: Quote from: Mechatrommer on August 31, 2011, 09:07:36 amAnd 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.

author: shadewind
author_rank: Frequent Contributor
timestamp: October 02, 2011, 12:36:47 am
content: I just designed a board using the CC2500 and it seems to work fine, both sending and receiving properly. I didn't have too many problems and I'm a beginner in the field of electronics (been doing this for less than a year) so I'm guessing bad luck on your part.

author: saturation
author_rank: Super Contributor
timestamp: October 02, 2011, 10:08:49 am
content: This looks like what I need, mechatrommer, which board is this?Quote from: Mechatrommer on September 01, 2011, 04:21:59 pm

author: Mechatrommer
author_rank: Super Contributor
timestamp: October 02, 2011, 10:33:34 am
content: Quote from: saturation on October 02, 2011, 10:08:49 amchina cheapo. you can get from ebay for less than $10 (both Tx and Rx), still pricey i guess, but works easy, my limitation is it cannot do more than 10kbps reliably and the distance is around 80-100m only. type "rf433" or "433 radio" and "module" or "kit". i found another interesting...nRF905 433MHz Radio Transceiver Wireless Module RFjust over $10 a bit about similar circuit as my $20+ CC1101 module i bought ago (4 units! idling useless!) but this different chip nRF905 i dont know if its good or just as suck as CC1101.

author: logictom
author_rank: Unknown
timestamp: October 07, 2011, 02:54:59 am
content: Quote from: shadewind on October 02, 2011, 12:36:47 amI haven't had time to revisit the CC2500 yet but will do soon. What micro did you hook the CC2500 up to? Would you mind posting the code you used to get it up and running?

author: ThePranksta
author_rank: Contributor
timestamp: October 07, 2011, 06:56:48 am
content: I would recommend using the MSP430, both are TI and you've got a lot of resources. Check the following links for example code and application notes, they were a great help when I started with the CC2500:http://focus.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=swra141http://www.ti.com/lit/an/swra116a/swra116a.pdfTI E2E forums is great resource.Also consider getting a eZ430-RF2500 kit, out of the box ready hardware and example code to get you going. $50 dollars, but you can probably can get a free or a big discount as a student.

author: arahim
author_rank: Newbie
timestamp: October 14, 2011, 07:46:25 am
content: HiDid you work on CC2420. I need application note or some example codes to interface it with MSP430FG4618.

author: shadewind
author_rank: Frequent Contributor
timestamp: October 14, 2011, 08:06:55 am
content: Quote from: logictom on October 07, 2011, 02:54:59 amI used an STM32F100C6. There's a bit of code in different files so copy-pasting is a bit of a hassle but I can send you the whole project if you want. It should be easy to read.