/Designs/HOPEwireless/SW_TX_RFM02/TX_RFM02.c
0,0 → 1,109
/* mija 2008
demo for RFM01 - TX 868MHz
 
PIC 16F84
xtal = 4MHz
*/
 
#include "TX_RFM02.h"
 
//************************************************************************
 
#define SDI PIN_B0
#define SCK PIN_B1
#define FSK PIN_B2
#define nIRQ PIN_B3 // input for PIC
#define nSEL PIN_B4
 
//************************************************************************
 
//unsigned int8 test[16]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x03b,0x3c,0x3d,0x3e,0x3f};
unsigned int8 test[16]="\n\r\r\rtest\n\r\r\r ";
 
//************************************************************************
 
void RF_INIT(void)
{
output_high(nSEL);
output_high(SDI);
output_low(SCK);
input(nIRQ);
}
 
void RF_WRITE_CMD(unsigned int16 cmd)
{
unsigned int8 i;
 
output_low(SCK);
output_low(nSEL);
for (i=0;i<16;i++)
{
output_low(SCK);
if (cmd & 0x8000) output_high(SDI);
else output_low(SDI);
output_high(SCK);
cmd <<= 1;
}
output_low(SCK);
output_high(nSEL);
}
 
void RF_WRITE_DATA(unsigned int8 data)
{
unsigned int8 i;
 
for (i=0;i<8;i++)
{
while (input(nIRQ));
while (!input(nIRQ));
if (data & 0x80) output_high(FSK);
else output_low(FSK);
data <<= 1;
}
}
 
void main()
{
unsigned int8 i,j,ChkSum;
 
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
 
output_high(LED);
delay_ms(1000);
output_low(LED);
RF_INIT();
 
RF_WRITE_CMD(0xCC00);
RF_WRITE_CMD(0x9361); // 868BAND,+/-90kHz
RF_WRITE_CMD(0xA640); // 868Mhz
RF_WRITE_CMD(0xD040); // rate/2
RF_WRITE_CMD(0xC823); // 4.8kbps
RF_WRITE_CMD(0xC220); // enable bit sync
RF_WRITE_CMD(0xC001); // close all
 
j= ' ';
while (1)
{
RF_WRITE_CMD(0xC039); // start tx
ChkSum = 0;
RF_WRITE_DATA(0xAA);
RF_WRITE_DATA(0xAA);
RF_WRITE_DATA(0xAA);
RF_WRITE_DATA(0x2D);
RF_WRITE_DATA(0xD4);
if (j++ > '~') j = '!';
test[15]=j;
for (i=0;i<16;i++)
{
RF_WRITE_DATA(test[i]);
ChkSum += test[i];
}
RF_WRITE_DATA(ChkSum);
RF_WRITE_DATA(0xAA);
RF_WRITE_CMD(0xC001);
delay_ms(1000);
}
}
 
 
 
/Designs/HOPEwireless/SW_TX_RFM02/TX_RFM02.h
0,0 → 1,7
#include <16F84.h>
 
#FUSES NOWDT //No Watch Dog Timer
#FUSES XT
#use delay(clock=4000000)
//#use rs232(baud=9600,parity=N,xmit=PIN_A3,rcv=PIN_A2,bits=8)
 
/Designs/HOPEwireless/SW_TX_RFM02/TX_RFM02.hex
0,0 → 1,38
:1000000000308A007D280000253084000008031994
:10001000182801308D008C018C0B0C288D0B0B28BF
:100020004A308C008C0B122800000000800B09283D
:1000300000348316061283120616831606108312E6
:100040000614831686108312861083168615831273
:10005000AD2883168610831286108316061283122B
:100060000612A60126080F3C031C5528831686108D
:100070008312861000398C00250880398F000C0807
:100080000F040319482883160610831206144C28FF
:1000900083160610831206108316861083128614A8
:1000A0000310A40DA50DA60A32288316861083120C
:1000B000861083160612831206160034A60126083F
:1000C000073C031C7C288316861583128619632837
:1000D000831686158312861D6828A51F742883162B
:1000E000061183120615782883160611831206114D
:1000F0000310A50DA60A5F28003484011F30830574
:100100000A3091000D3092009300940074309500F5
:100110006530960073309700743098000A3099006B
:100120000D309A009B009C0020309D009E009F0097
:10013000A00183160108C73908388100861283128E
:1001400086160430A400FA30A5000420A40BA328CE
:1001500083168612831286121928CC30A500A401BA
:1001600029209330A5006130A4002920A630A500E5
:100170004030A4002920D030A5004030A400292020
:10018000C830A5002330A4002920C230A5002030AB
:10019000A4002920C030A5000130A400292020306F
:1001A000A200C030A5003930A4002920A301AA3044
:1001B000A5005E20AA30A5005E20AA30A5005E2022
:1001C0002D30A5005E20D430A5005E202208A20AB2
:1001D0007E3C0318ED282130A2002208A000A101D6
:1001E00021080F3C031C022911302107840000085C
:1001F000A400A5005E201130210784000008A30799
:10020000A10AF0282308A5005E20AA30A5005E20E0
:10021000C030A5000130A40029200430A400FA3029
:0C022000A5000420A40B0F29D1286300C6
:02400E00F93F78
:00000001FF
;PIC16F84