12
1 ilabs New Sneha Nagar, Nagpur, Maharashtra.440025 [email protected] - 2.4 GHz, 40 meters range, 255 configurable address, 255 channels & inbuilt ADC. ilabs CC2500 Serial Transreceiver Wireless Module

CC Module V1.1

Embed Size (px)

Citation preview

Page 1: CC Module V1.1

1

i l a b s

N e w S n e h a N a g a r ,

N a g p u r ,

M a h a r a s h t r a . 4 4 0 0 2 5

s a l e s @ i l a b s i n d i a . c o m

-

2.4 GHz, 40 meters range, 255 configurable address,

255 channels & inbuilt ADC.

ilabs CC2500 Serial Transreceiver Wireless Module

Page 2: CC Module V1.1

2 | P a g e w w w . i l a b s i n d i a . c o m

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 redundancy check (CRC).

16. Acknowledgement after each successful configuration.

Page 3: CC Module V1.1

3 | P a g e w w w . i l a b s i n d i a . c o m

Filtered Data is

available for user on

USART

Data is checked

for valid address

Data received

through CC 2500

Special command

received

Configure Module

Idle

If Data received

On USART

Read SID & CID &

sent to USART

Configure Baud Rate

Configure ADC

Send data through

CC to respective

address

Disable ADC (all Or

Individual)

Idle

Page 4: CC Module V1.1

4 | P a g e w w w . i l a b s i n d i a . c o m

ilabs 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 ilabs 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:-

Ilabs 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).

Page 5: CC Module V1.1

5 | P a g e w w w . i l a b s i n d i a . c o m

Configuring ilabs CC2500 Module:-

Ilabs 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:-

Ilabs CC2500 module can be configured by various ways. It can configure during use

through programming, HyperTerminal Or through ilabs 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 ilabs 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 ilabs 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;

Page 6: CC Module V1.1

6 | P a g e w w w . i l a b s i n d i a . c o m

}

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:-

Ilabs 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 ilabs 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; }

Page 7: CC Module V1.1

7 | P a g e w w w . i l a b s i n d i a . c o m

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:-

Ilabs 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.

Page 8: CC Module V1.1

8 | P a g e w w w . i l a b s i n d i a . c o m

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 ilabs CC2500 wireless Transreceiver module. To

read respective ADC value one has to just configure module for once. Or one can use ilabs

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)

Page 9: CC Module V1.1

9 | P a g e w w w . i l a b s i n d i a . c o m

‘,’ 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.

Page 10: CC Module V1.1

10 | P a g e w w w . i l a b s i n d i a . c o m

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:-

Ilabs 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 ilabs CC2500 Transreceiver GUI:-

Ilabs 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 (ilabs 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)

Page 11: CC Module V1.1

11 | P a g e w w w . i l a b s i n d i a . c o m

Select required Baud rate _Default Baud rate is 9600.

Click Open

Screenshot, ilabs CC2500 Transreceiver GUI.

.

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.

Page 12: CC Module V1.1

12 | P a g e w w w . i l a b s i n d i a . c o m

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.