I've made it!!!!!!!!

Thanks to you guys!! :smiley:

I finally get the TRF or TRW 2.4g modules to work.

Lo hice funcionan los TRF o TRW 2.4g.

If there’s anybody with any doubt, I will gladly try my best to answer it

One as receiver and the other as transmitter, communicating with the uC (HCS08 GT60) via SPI at 1Mbps

I’M THE BEST!!! 8)

I CAN’T YET BELIEVE IT!!! :shock:

Hiya SebaS. Would like to explain a bit more on how you achieved this?

Cheers,

Mike

I’m using a Motorola HCS08, with SPI at 1Mbps (don’t know why but it work’s at higher speeds but no lowers :shock:)

Configuring the module:

  • ShokBurst

  • 16 bits CRC

  • 5 bits Address

  • 5 bytes of DATA (doesn’t matter, you can put what you want)

  • 250Kb RF data Rate

  • 0db output power

  • One RF Channel (Channel #1)

  • Xtal Frecuency 16Mhz

  • RF Chanel: 2464MHz

As I said I use SPI, so I needed a transistor to work as a switch, so I can control MOSI and MISO (both connected to the DATA pin)

I also have a LED connected to DR1 and GND, so when a valid data arrives, the LED turns on.

Remember to set CS=1 and CE=0 for config and CS=0 and CE=1 to active mode (Tx or Rx)

That’s a sum of what I’ve done if you have any specific question, I would gladly ask it.

Good Luck

/SebaS

Ty Sebas. I think this needs level conversion, so I plan to use some ICs from Maxim…

http://www.sparkfun.com/cgi-bin/phpbb/v … 6942#16942

Mike

I’m working in a new project with level conversion 5v to 3.3v and vice versa. I’m using a BJT NPN with 3 resistors. It’s very simple:

The base has a resistor of 47k, then at the collector there two resistors (120 y 220 ohm) to lower the level (The 5v pin goes there) and at the emitter theres is a resistor of 10k at GND. In the emitter you’ve got 3.3v

This isn’t bi-directional though is it? And the base becomes the enable line (for the conversion?)

Hi, :smiley:

I’m working with a 18f4620 and the TRF-2.4G and i’m realy new on this. I understand the configuration word part. And i have the next:

  • ShokBurst

  • 16 bits CRC

  • 1 byte Address

  • 29 bytes of DATA

  • 250Kb RF data Rate

  • 0db output power

  • One RF Channel (Channel #1)

  • Xtal Frecuency 16Mhz

  • RF Chanel: 2464MHz

That’s ok…

I want to do this: comunicate two pics by TRF-2.4G one receiving and the other transmiting.

But i’m a little confused. I know that it can be stupid but…how is the conetion with the pic? I seem a sample that they put it on this way:

#define TX_CE PORTBbits.RB3

#define TX_CS PORTBbits.RB2

#define TX_CLK1 PORTBbits.RB1

#define TX_DATA PORTBbits.RB0

#define RX_CE PORTAbits.RA2

#define RX_CS PORTAbits.RA3

#define RX_CLK1 PORTAbits.RA4

#define RX_DATA PORTAbits.RA1

#define RX_DR PORTAbits.RA0

that’s ok?

And another doubt is this…I have to configured the usart on the pic? to the comunication pic-rf… how can i do it? because the few that i read on the data sheet said that the configuration is used with RC6 and RC7 and i dont used them.

I hope you can help me… :oops:

On the level switching note, I found this:

http://www.hagtech.com/pdf/translator.pdf

That’s good upto 300kHz, and should work nicely between MCU ↔ 3v devices.

Thanks bsodmike :wink: , that’s really nice. I think I’m gonna try that.

/SebaS

Sebas saludos, espero entiendas español, estoy realizando una tesis y ya tengo funcionando bastante bien el trf-2.4, pero cuando aumento la velocidad de comunicacion(SPI) entre mi trf y mi pic (16f887) no logro la transmision, solo he podido realizarla a 62500 (fosc/64) con fosc=4Mhz esto es via spi, estoy trabajando shockburst a 1Mbps con 5 bytes de addres y 8 bit CRC, y he probado con payload variable y sucede lo mismo, he analisado bien los delays necesarios y no se q pasa … porque al intentar con un clock en mi spi de 250K=(fosc/16) no logro la comunicacion??? te agradeceria cualquier ayuda!!!

Asi es como configuro la SPI

  • CPOL y CPHA en 0. Eso es por la fase y la polaridad del de los datos segun la hoja de datos del Wenshing (o TRF2.4G) y segun mi micro que era un Freescale HCS08

  • El BaudRate de la SPI lo tengo en 250kbps… Recuerdo que logre hacerlo andar hasta velocidades de 1Mbps pero no recuerdo porque era que no podia hacer que funcione a menos de 250kbps… Eso es algo que no recuerdo, pero recuerdo que era sorprendente que funcione a altas velocidades, y que tenga problemas a bajas velocidades

Otra cosa que recuerdo es volverme LOCO :x con las pruebas… xq me era imposible determinar si la falla era en la recepcion o en la transmsion (… los problemas de no contar con un analizador de espectro…) pero tambien recuerdo que la mayoria de las veces, era un problema de la CONFIGURACION (tanto Tx como Rx)

El proceso de configuracion (envio de algo asi como unos 15bytes, no recuerdo bien) se debe hacer de la siguiente manera:

(OJO QUE ESTO NO ES UNA LEY, PERO ES COMO A MI ME ANDUVO)

  • en primer lugar antes de levantar el CS, dejo una pausa de 4ms (debido a los tiempos Tpd2stby = 3ms y Td=500ns)

  • Luego levanto el CS

  • Envio los datos de configuracion via SPI

  • espero nuevamente 4ms (resultado empirico, era como un tiempo de remanencia que debia dejarse, sino se “com­ia” los ultimos bytes de la configuracion… esta fue la clave para el exito)

  • Recien ahi bajo el CS

Espero haber sido de ayuda… suerte

:wink:

Amigo voy a probar con tus recomendaciones, pero me preocupa retardar tanto (4ms) cada vez q quiera configurar mi modulo de tx a rx o viceversa… porque yo estoy emulando una comunicacion duplex, inicialmente mi modulo esta configurado como receptor, cuando recibo el payload via USART configuro el modulo como transmisor, transmito, y luego vuelvo a configurar como receptor para monitoriar el aire…

AGREGUE UN RETARDO DE 220uS (Tsby2txSB) ENTRE LA BAJADA DE CE Y LA SUBIDA DE CS AL CONFIGURAR EL MODULO, :

1- teniendo el modulo como receptor y deseo transmitir:

2- bajo CE

3- espero 220us

4- subo CS

5- mando solo el primer byte de la palabra de configuracion (donde varia solo el primer bit) para configurarlo como transmisor (tomando en cuenta los 5 us de Tcs2data

6- espero otra vez los 200us antes del bajar CS

7-transmito

8- y repito el procedimiento para configurarlo nuevamente como receptor…

y funciono… recibi perfectamente mi payload de 15 bytes en el otro micro!!!