+ # print "Don't know how to hold a carrier.";
+ # 33.1 p.54:
+ # reset chip
+ # SXOSCON
+ # set MDMCTRL1.TX_MODE to 2 or 3 0x12 3:2
+ # set DACTST to 0x1800 0x2E
+ # STXON 0x04
+
+ mdmctrl1=self.peek(0x12);
+ #print "mdmctrl1 was %04x" % mdmctrl1;
+ mdmctrl1=mdmctrl1|0x0080;
+ mdmctrl1=mdmctrl1&0x0080; #MDMCTRL1.TX_MODE = 2
+ self.poke(0x12, mdmctrl1); #MDMCTRL1
+
+ mdmctrl1=self.peek(0x12);
+ #print "mdmctrl1 is %04x" % mdmctrl1;
+
+ self.poke(0x2E, 0x1800); #DACTST
+ dactst=self.peek(0x2E);
+ #print "dactst is %04x" % dactst;
+
+ # see above for why this is here
+ self.strobe(0x02); #STXCAL
+ #print "STXCAL status: %s" % self.status()
+ self.strobe(0x09); #SFLUSHTX
+ #print "SFLUSHTX status: %s" % self.status()
+
+ self.strobe(0x04); #STXON
+ #print "STXON status: %s" % self.status()
+
+ def RF_promiscuity(self,promiscuous=1):
+ mdmctrl0=self.peek(0x11);
+ if promiscuous>0:
+ mdmctrl0=mdmctrl0&(~0x800);
+ else:
+ mdmctrl0=mdmctrl0|0x800;
+ self.poke(0x11,mdmctrl0);
+ return;
+ def RF_autocrc(self,autocrc=1):
+ mdmctrl0=self.peek(0x11);
+ if autocrc==0:
+ mdmctrl0=mdmctrl0&(~0x0020);
+ else:
+ mdmctrl0=mdmctrl0|0x0020;
+ self.poke(0x11,mdmctrl0);
+ return;
+ def RF_autoack(self,autoack=1):
+ mdmctrl0=self.peek(0x11);
+ if autoack==0:
+ mdmctrl0=mdmctrl0&(~0x0010);
+ else:
+ mdmctrl0=mdmctrl0|0x0010;
+ self.poke(0x11,mdmctrl0);
+ return;