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.

ez430rf2500

Other Parts Discussed in Thread: CC2500

Good evening,

My name is John and i am new in programming.

i have already purhase ez430rf2500 and i want for my project to program it.

i want to take adc measurements and send them to the AP (from ED) and from the AP to virtual com to my pc.

my signal is has a range of 0 to 20kHz.

My problem is that i know a few things and i want a little help to begin.

I have found a problem in hardware that i have to solve. The problem is that the programmer debugger has default uart speed of 9600 so i have to attach it to an axternal rs232 to usb converter.

I have make a few calculations and i found that i need at least 40.000samples/second, my adc data are 10bit so i have to send 80.000samples/sec but 80.000samples are 800.000bit/sec and my rf link can transfer only 500.000bit/sec.

The first thing that i want to know how to take measurements in high samples rate and then maybe i have to apply something like DPCM to reduce the transmitted data.

I think that all the other problems can solved in software.

Sorry for my bad english

Thank you in advance

  • Hi John,

    John said:
    The problem is that the programmer debugger has default uart speed of 9600 so i have to attach it to an axternal rs232 to usb converter.

    Maybe it can be altered in the IDE setting [?]. I understand that you want to have debugger and your transmission channel, it is better to debug the program this way.
    If not, serial port is VCP (Virtual Com Port) and can be adjusted to your needs like any other in system setting.

    If you need fast serial transmission, please use FTDI-232RL chip, it can work up to 3Mbps. From PC site it has USB interface.

    John said:
    I have make a few calculations and i found that i need at least 40.000samples/second, my adc data are 10bit so i have to send 80.000samples/sec but 80.000samples are 800.000bit/sec and my rf link can transfer only 500.000bit/sec

    Pack bits in the RS frame, 2 characters are 16 bits, so you can put there 10 bits from one sample and 6 from the next. This will be shifted in consecutive characters.
    Remember that one character needs 10 bits (2 bits for start and stop), so 16 bits, require only 20 bits of rs232. From my calculation, it needs only 320 kbps.

    You should add also some synchronisation to your protocol, in a case when you lose some data.

    Using compression is good idea. Measure some examplar signal and check what is the histogram of differences between samples.
    It is also good to check what is a spectrum of the signal that you will measure, maybe it is narrow.
    From the other side, please remember that Fs = 2xFmax is theoretical requirement.

    Regards,
    PIotr ROmaniuk, Ph.D.
    ELESOFTROM

     

  • Thank you for your replay,

    I think that for the connection i will use FTDI-232RL.

    I dont have such a problem if i lose some data.

    This system is going to measure a signal with a spectrum of 20kHz and represented to pc in time and frequency domain.

     I just want to do a start but i am a little bit confused.

    I just want for the beginning to measure and see the data with Putty and with the debugger's speed of 9600.

     I have solder a header in the board to insert signal to the uC and i am trying to send data directly to uart (no RF transmission, just one board).

     

  • AFAIK, the backchannel UART provided by the debugger is no real connection between MSP and PC. Instead it is routed through the FET (whcih contains another MSP) and unless you change the configurations of the FETs USB interface and the MSP in it, the fixed 9600Bd is all you can get.
    In my projects, I either use my own serial connection for debugging outputs, or I communicate with an LED/port pin and capture its signals with a scope. That allows real real-time debugging.

    John said:
    I have make a few calculations and i found that i need at least 40.000samples/second, my adc data are 10bit so i have to send 80.000samples/sec but 80.000samples are 800.000bit/sec and my rf link can transfer only 500.000bit/sec.

    You could merge two data words into three bytes, reducing your required bandwidth from 80k to 60k. Or you compress them even further to press 3 samples into 4 bytes. Still 53.3k.
    If you really compress 4  values into 5  bytes by just putting all the bits in a row, you'll end up with 50k required bandwidth.
    Of course you can simply reduce your resolution to 8 bits for debugging. The LSB of ADC data is usually noise anyway. :)

     

  • The CC2500 radio is capable of 500kbps data rates (1000x your statement).  Take a look at this document (http://focus.ti.com/lit/an/swra352/swra352.pdf) to see how to modify its settings to increase the data rate.  You should easily be able to transmit your 800 bits of data without any compression required.

    Jim Noxon

     

  • Jim Noxon said:
    The CC2500 radio is capable of 500kbps data rates

    Yes, 500.000 bits per second = 50.000 bytes per second (on serial console which requires 10 bits per 8-bit-byte). Now he needs to send 40.000 10-bit values per second. That's the problem.

    Maybe it's a localisation misunderstanding with '.' and ',': he indeed meant 40k values (= 80000 bytes = 640000..800000 bits, depending on transmission) and not 40,00 :)

    Just 40 samples per second definitely wouldn't be sufficient for a 20kHz signal.

  • Oh, I see what you mean.  You know us Americans, we always do things differently.  However we are inching towards the metric system!

    Sorry for the mis-interpretation.  I'll try to make sure and keep an open mind in the future.

    Jim Noxon

     

  • Today i see in the datasheet of CC2500 that the maximum data rate is up to 500 kBaud.

    baud rate = bit rate / N, whre N=8bits.

    So we can transmit up to 8 * 500.000 = 3.000.000 bit/sec.

    Am i correct?

    Also about the bandwidth that i need. If we make again the calculations we have: a signal with a spectrum of 20kHz so ideally we need an ADC conversion that has s speed of 40ksps. But every measurement is 10bits, our channel transmites packets of 8 bits so one measurement must separated into 2 -bit packets. The total bandwidth i have to use is 40000*2*8=620000bit/sec. I think that the bandwith of my RF link is enough!

    Thank you all for your help!

  • 1 Baud = 1bit / s

    or being more strict:

    1 Baud = 1symbol / s

    http://focus.ti.com/lit/ds/symlink/cc2500.pdf , page 6. Table 3:

    Data rate 1.2        500 kBaud     2-FSK
                   1.2        250 kBaud     GFSK and OOK
                    26        500 kBaud     (shaped) MSK (also known as differential offset QPSK), 
                                                     Optional Manchester encoding (the data rate in kbps will be half the baud rate).

     

    So it is related to RF transmission symbols, not UART characters.

    Regards,
    Piotr Romaniuk, Ph.D.
    ELESOFTROM

  • Jim Noxon said:
    You know us Americans, we always do things differently

    Well, everyone does it somewhere and somehow (the French with their temperature system, the British empire with miles and pints...)

    We once had a homebanking software in Germany, where they used the wrong internationalization settings for the decimal comma, so when people were entering '10,00' the software sent 1000 bucks instead, if they didn't notice it when sending the order (as long as the input form was open, it was still showing 10,00). And the bank refused to cancle the orders and told the people to beg for refund by the recipient. That's great.

    Jus tlike the good ols Wordstar in CP/M. When you exited the program you were asked whether to save the changes (Y/N). but when you were workign with  German keyboard, 'Y' and 'Z' were switched - which the program ignored during typing but not on this ddialog booy, so when you hit'z' because you typed 'z' all the time when meanign 'y', the program noticed that 'z' is not 'y' and exited without saving.

    Jim Noxon said:
    we are inching towards the metric system

    I like this one :)

  • Piotr Romaniuk said:

    1 Baud = 1bit / s

     You are right, my mistake

**Attention** This is a public forum