X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=firmware%2Fapps%2Fradios%2Fccspi.c;h=83dfa37b4ca42d6e4a5b1ae16e7adc78a5228e8c;hp=74dde4fbfb8225a0b501a322dde8e889a9df2402;hb=ed8fe6653a821e893857c9491d576b8c6dee8dad;hpb=854dba571fe62948dfb23a396be3299225fcbb05 diff --git a/firmware/apps/radios/ccspi.c b/firmware/apps/radios/ccspi.c index 74dde4f..83dfa37 100644 --- a/firmware/apps/radios/ccspi.c +++ b/firmware/apps/radios/ccspi.c @@ -46,10 +46,6 @@ app_t const ccspi_app = { "\tmust be moved into the client.\n" }; - -#define RADIOACTIVE CLRCE -#define RADIOPASSIVE SETCE - //! Set up the pins for CCSPI mode. void ccspisetup(){ SPIDIR&=~MISO; @@ -57,13 +53,15 @@ void ccspisetup(){ DIRSS; DIRCE; - //Telos B Radio VReg Enable - P4DIR|=BIT5+BIT2+BIT6+BIT7; - P4OUT|=BIT5+BIT7; - P4OUT&=~(BIT6+BIT2); + P4OUT|=BIT5; //activate CC2420 voltage regulator + msdelay(100); + + //Reset the CC2420. + P4OUT&=~BIT6; + P4OUT|=BIT6; //Begin a new transaction. - CLRSS; + CLRSS; SETSS; } @@ -124,45 +122,61 @@ void ccspi_handle_fn( uint8_t const app, //debugstr("Chipcon SPI handler."); switch(verb){ + case PEEK: + cmddata[0]|=0x40; //Set the read bit. + //DO NOT BREAK HERE. case READ: case WRITE: + case POKE: CLRSS; //Drop !SS to begin transaction. for(i=0;i