From 267c966a51a6b814334c8c1ba273db23b1c1ed47 Mon Sep 17 00:00:00 2001 From: jwhui Date: Wed, 17 Jan 2007 05:24:52 +0000 Subject: [PATCH] Fix that addresses CC2420 Errata Note 003, rev. 0.3. --- tos/chips/cc2420/CC2420ControlC.nc | 1 + tos/chips/cc2420/CC2420ControlP.nc | 8 ++++++++ tos/chips/cc2420/CC2420SpiC.nc | 2 ++ 3 files changed, 11 insertions(+) diff --git a/tos/chips/cc2420/CC2420ControlC.nc b/tos/chips/cc2420/CC2420ControlC.nc index a453770e..04de72ef 100644 --- a/tos/chips/cc2420/CC2420ControlC.nc +++ b/tos/chips/cc2420/CC2420ControlC.nc @@ -81,6 +81,7 @@ implementation { CC2420ControlP.IOCFG1 -> Spi.IOCFG1; CC2420ControlP.MDMCTRL0 -> Spi.MDMCTRL0; CC2420ControlP.MDMCTRL1 -> Spi.MDMCTRL1; + CC2420ControlP.RXCTRL1 -> Spi.RXCTRL1; CC2420ControlP.PANID -> Spi.PANID; components new CC2420SpiC() as SyncSpiC; diff --git a/tos/chips/cc2420/CC2420ControlP.nc b/tos/chips/cc2420/CC2420ControlP.nc index 38464cb4..333d3ca7 100644 --- a/tos/chips/cc2420/CC2420ControlP.nc +++ b/tos/chips/cc2420/CC2420ControlP.nc @@ -56,6 +56,7 @@ module CC2420ControlP { uses interface CC2420Register as IOCFG1; uses interface CC2420Register as MDMCTRL0; uses interface CC2420Register as MDMCTRL1; + uses interface CC2420Register as RXCTRL1; uses interface CC2420Strobe as SRXON; uses interface CC2420Strobe as SRFOFF; uses interface CC2420Strobe as SXOSCOFF; @@ -172,6 +173,13 @@ implementation { ( 1 << CC2420_MDMCTRL0_AUTOCRC ) | ( 1 << CC2420_MDMCTRL0_AUTOACK ) | ( 2 << CC2420_MDMCTRL0_PREAMBLE_LENGTH ) ); + call RXCTRL1.write( ( 1 << CC2420_RXCTRL1_RXBPF_LOCUR ) | + ( 1 << CC2420_RXCTRL1_LOW_LOWGAIN ) | + ( 1 << CC2420_RXCTRL1_HIGH_HGM ) | + ( 1 << CC2420_RXCTRL1_LNA_CAP_ARRAY ) | + ( 1 << CC2420_RXCTRL1_RXMIX_TAIL ) | + ( 1 << CC2420_RXCTRL1_RXMIX_VCM ) | + ( 2 << CC2420_RXCTRL1_RXMIX_CURRENT ) ); } return SUCCESS; } diff --git a/tos/chips/cc2420/CC2420SpiC.nc b/tos/chips/cc2420/CC2420SpiC.nc index c2c70c49..8d54674b 100644 --- a/tos/chips/cc2420/CC2420SpiC.nc +++ b/tos/chips/cc2420/CC2420SpiC.nc @@ -57,6 +57,7 @@ generic configuration CC2420SpiC() { provides interface CC2420Register as IOCFG1; provides interface CC2420Register as MDMCTRL0; provides interface CC2420Register as MDMCTRL1; + provides interface CC2420Register as RXCTRL1; provides interface CC2420Register as TXCTRL; // ram @@ -99,6 +100,7 @@ implementation { IOCFG1 = Spi.Reg[ CC2420_IOCFG1 ]; MDMCTRL0 = Spi.Reg[ CC2420_MDMCTRL0 ]; MDMCTRL1 = Spi.Reg[ CC2420_MDMCTRL1 ]; + RXCTRL1 = Spi.Reg[ CC2420_RXCTRL1 ]; TXCTRL = Spi.Reg[ CC2420_TXCTRL ]; // ram -- 2.39.2