Sunteți pe pagina 1din 12

CC2500 Serial

Transreceiver
Wireless Module
2.4 GHz, 40 meters range, 255 configurable address,
255 channels & inbuilt ADC.

1 -
Features

1. Long Range (40m Line of Sight).


2. 6 ADC Channels with 8 bit precision.
3. Allows multiple baud rates (MAX 38400 bps).
4. Allows configuration of 255 Device IDs.
5. Allows configuration of 255 Channel IDs.
6. Standard UART interface, TTL (3-5V) logic level.
7. Communicates in peer to peer mode.
8. Supports broadcast mode.
9. No need to configure at restart.
10. Ideal for sensor monitoring systems.
11. Quick Response Time.
12. Low Power Consumption.
13. Supply Voltages 5V - 9V.
14. GUI support.
15. Inbuilt cyclic redundancies check (CRC).
16. Acknowledgement after each successful configuration.

2|Page
Idle

If Data received
On USART

Special command
Data received
received
through CC 2500
Send data through
CC to respective
address Configure Module

Data is checked
for valid address Read SID & CID &
sent to USART

Filtered Data is Configure Baud Rate


available for user on
USART
Configure ADC

Disable ADC (all Or


Individual)

Idle

3|Page
CC2500 Serial Transreceiver Wireless Module is designed to meet the
requirement for the low cost, low power wireless device to transmit and receive serial data.
The module operates on 2.4 GHz frequency band. The module can also be used as Wireless
Sensor Network (WSN) node.

Working: The module has simple Protocol for working. the Using CC transreceiver GUI, the
module can be configured data communication through hyperterminal. This modules
basically take TTL data & send it to receiver (receiver whose ID is send along with data).
Modules can also broadcast the data (broadcast id (0xff).A single module can communicate
with number of modules at run time. as receiver ID needs to send every time, So one can
send different receiver id every time to communicate with different modules. This feature
makes it best suited for swarm robotics.

As modules has capability of analog to digital conversion (ADC). So user has to just
configure the module once for ADC, & the module will send the data to the respective
receiver, at the given interval of time. This feature (of reading ADC value & sending to the
respective receiver module) makes it standalone for WSN. So it reduces the need of
separate controller.

The GUI interface makes it easy for user to configure module as well as to send data
& test modules for different settings.

Pin connections:-

CC2500 transreceiver module is having 3 connector headers (P1, P2 & P3as shown in
picture). P1 is having 4 pins GND (V-), VCC (V+), Rx, Tx. Where Jumper 2 is having 6 pins A0
to A5 (ADC 0 to ADC 5).

4|Page
Configuring CC2500 Module:-
CC2500 module can configure for various things like Self ID (self address or SID),
Channel ID (CID), Baud Rate (max 38400bps) and ADC values.

Configuring Self ID & Channel ID:-


CC2500 module can be configured by various ways. It can configure during use
through programming, HyperTerminal Or through CC2500 wireless GUI.

To configure the module we need to follow some protocol (some set of commands).
Protocol for configuring self ID & channel ID is given below. In which we have to give Self ID
/ Self Address (range 0 to 255 in decimal 0R 0x00 to 0xFF in Hex) and channel ID / Channel
Address (range 0 to 255 in decimal 0R 0x00 to 0xFF in Hex). It is to be noted that the Self ID
0xFF (in hex) Or 255 (in decimal) is reserved for broadcast. Broadcast means that each &
every module on the same channel can receive data, provided that broadcast should be
enable on every module (broadcast is default enable on the CC modules Broadcast id is 255
OR 0xFF).

Protocol for configure self ID & Channel ID.

“ < Self_id Channel_id > ”


e.g. “<12> “

Here

‘< ‘ Part of protocol (less than)

‘1’ Self id

‘2’ Channel id

‘>’ Part of protocol

Code: - Configuring self id & channel id in cc2500 wireless Module

Int main( void)


{
transmit(‘<’); // part of protocol
transmit(‘1’); // SID value is in ascii
transmit(‘2’); // CID value is in ascii
transmit(‘>’); // Part of protocol
}
Void transmit (unsigned char data_tx)
{
while(!(UCSRA&(1<<UDRE)));
UDR=data_tx;

5|Page
}

Note: - 1) Once Self id & channel id is configured it needs not to configure every
time.

2) Module can be configured using hex equivalent as shown on Pg. x.

Configuring Baud rate:-


cc2500 module can support for different baud rates. Modules can be configured for
different baud rate (default is 9600 bps) using simple Protocol or it can be done using GUI.

Protocol for configuring Baud rate includes Baud rate index (1-3). Sending this baud
rate index can change its own baud rate. It is to be noted that changing a baud rate may
leads to failure after configuration. So one has to change the baud rate of other device also.

Protocol for configuring Baud rate is

“ ( Baud rate index ) ”


E.g. “(2) “

Here

‘(‘ Part of protocol (round bracket)

‘3 ‘ Baud rate index (2 means 38400 bps as given in table below)

‘) ‘ Part of protocol

Code: - Configuring baud rate in cc2500 wireless Module.

Int main( void)


{
transmit(‘(’); // part of protocol
transmit(‘1’); // baud rate index
transmit(‘)’); // Part of protocol
}
Void transmit (unsigned char data_tx)
{
while(!(UCSRA&(1<<UDRE)));
UDR=data_tx;
}

6|Page
Baud Rate index:-

Sr. No Baud rate Index


1 9600 1
2 19200 2
3 38400 3
Note: - 1) Once baud rate is configured it needs not to configure every time.

Reading SID &CID from Module:-


CC2500 module can be read for its own SID & channel id. It can also be done using
GUI software. To read SID & CID we need to send following command through USART & will
get response immediately.

Protocol for reading SID & CID includes just transmission of ‘<’ & ‘>’. As soon as
module receives these symbols it will return “< SID CID >”.

Protocol for Reading SID & CID is

We need to send “ <> ” in

We may receive “< SID CID > “


E.g. We have to send “<> “

Here

‘ < ‘ Part of protocol

‘ > ‘ Part of protocol

We will receive on USART

‘ < ‘ Part of protocol

‘ 1 ‘ Self id (say 1)

‘ 2 ‘ Channel id (say 2)

‘ > ‘ Part of protocol

Note: - you can get different SELF ID & CHANNEL ID when read.

7|Page
Int main( void)
{
transmit(‘<’); // part of protocol (or 0x3C hex of ‘<’)
transmit(‘>’); // Part of protocol (or 0x3E hex of ‘>’)

}
Void transmit (unsigned char data_tx)No table of figures entries found.
{
while(!(UCSRA&(1<<UDRE)));
UDR=data_tx;
}

Reading & Sending ADC values:-


This is a unique feature available in CC2500 wireless Transreceiver module. To read
respective ADC value one has to just configure module for once. Or one can use CC2500
transreceiver software for configuring ADC value .This module can max read 6 ADC
channels. The precision given by module is of 8 bit. So it should give 0 for 0 (zero) volt & 255
for 3 volt (as module works on 3 volt). The ADC of module works with internal 3volt as its
ADC reference volt (AVcc as reference) .This module can Read maximum 20 samples in one
second (as minimum delay is 50 ms). This feature makes these module best suited for WSN
(for reading temperature, Humidity etc)

Protocol of this module includes RID (to whom the ADC value is to be send) ADC
channel number (which ADC channel number is to read, 0 to 5 total 6 ADC channels) and
DELAY (time interval at which ADC is to be read in milliseconds). The minimum value of
delay should be 50 milliseconds. The complete protocol must be a string, i.e. it should return
ASCII value as shown in example.

Protocol is to be used for Reading & sending ADC values.

We need to send “ *RID, ADC channel number(0-5) , DELAY(50-65536)+ ”

We may receive on Receiver side “@ ADC channel number Value ”


E.g. We have to send “*2, 0, 90+ “

Here,

‘*‘ Part of protocol (square Bracket)

‘2’ As RID

‘,’ Part of protocol (comma)

‘0’ to read (ADC 0) A0 as shown on Board (max should be 5)

8|Page
‘,’ Part of protocol (comma)

‘9’ delay

‘0’ delay

‘+’

Int main( void)


{
transmit(‘*’); // part of protocol ( square bracket)
transmit(‘2’); // RID
transmit(‘,’); // part of protocol (comma)
transmit(‘0’); // ADC channel No may go upto 5 max
transmit(‘,’); // Part of protocol (comma)
transmit(‘9’); // delay 90
transmit(‘0’); // delay 90
transmit(‘]’); // part of protocol ( square bracket)
}

Void transmit (unsigned char data_tx)


{
while(!(UCSRA&(1<<UDRE)));
UDR=data_tx;
}
Note: - 1) All values given here are in ASCII. That is ‘1’ here means 49 in decimal & 0x31 in
hex.

2) If we need delay of say 100 millisecond it should be sent like ‘1’’0’’0’ OR “100”
that means it should be in string format not a single int like 100.

ASCII Table: - For finding ASCII values one can use following table.

9|Page
E.g. ASCII value of A is 64(value shown on left) + 1(value shown on top) Equal to 65.

Getting Started with Module:-


Interface using microcontroller Board:-
CC2500 transreceiver module can interfaced directly with microcontroller. For
details about code (for AVR Atmega 8, 16, 32) one can refer Sample codes. To interface with
µc we need to follow following steps

 Wait for some time (say 300 millisecond).


 Initialize USART of microcontroller. Initial baud rate should be 9600.
 Configure CC module for its own SELF ID & CHANNEL ID as mentioned in protocol.
 Configure CC module for baud Rate (if required). Default Baud rate is 9600.
 Transmit data after RID (receiver id). Here data can be a single Byte or packet of
many bytes (max packet length is 64).

About CC2500 Transreceiver GUI:-


Module can be configured using GUI (graphical user interface) Using this may lead to
correct & error free configuration. Using this interface one can do following steps

 Configuring Self ID (self Address) & channel ID (channel Address)


 Reading self ID & Channel ID.
 Configure Baud rate.
 Configuring ADC channels.
 Sending & receiving data.

To use GUI we may need:-

 For desktop on which serial Port is available, RS TTL link (RS TTL link) is need.
 For laptop users (where Serial com Port is not available) USB to serial converter is
needed.
 Dot net framework 4.0 is required for installation of GUI.

Steps to Connect with Modules:-

 Install setup file.


 See the com port of your USB TO SERIAL (one can get it through-
Right click My Computer > Properties > Device Manager > Ports (Com & Lpt).
 Fill the Port Setting field as obtain from the above step.(COM1 in case of the serial
port in desktop)

10 | P a g e
 Select required Baud rate _Default Baud rate is 9600.
 Click Open

Screenshot, CC2500 Transreceiver GUI.

11 | P a g e
CC Setup:-

After successful configuration of com port & Baud rate we need to set SELF ID &
CHANNEL ID. For this put the desired SELF ID & CHANNEL ID and click on Write. After that
we may see a progress bar & message “configuration successful” at the bottom of GUI as
shown.

In the section of CC SETUP we can also


set Baud Rate by just clicking on desired Radio button. After success we can get message”
Configuration Successful” near progress bar. But care must be taken while doing so, as we also need
to change the baud rate of the GUI.

ADC Setup:-

The inbuilt ADC can be activated using the section ADC Setup on GUI. For this we need to
put ADC Number (0-5), RID (0-255 id is to be provided to whom data is expected to send) and DELAY
the delay is to be provided in Millisecond. Then click on configure. After successful configuration of
ADC we may receive message “configuration successful”. The status LED on the module will now
start blinking at the regular interval.

To disable ADC click on Disable All button. This will disable all the enabled ADCs. The status
LED will now stop blinking.

TEST section:-

For testing one may need two modules (one pair) connected to computer /laptop with the
help of serial link (Rs-TTL converter Or USB 2 serial). Do the necessary connections as described
above.

In this section we can send as well we can receive data. To use test mode we have to provide
RID. Data to be sent is also provided in the respective column. After this just click on send. If any data
is received on the same module it may be seen on the received data box.

12 | P a g e

S-ar putea să vă placă și