MotionDogs / Lenzhound-dev-pre-release

All active work now moved to Lenzhound-1.x repository. This repo will no longer be maintained.
GNU General Public License v3.0
0 stars 0 forks source link

Test Code for M.E.T. Labs - FCC formals #21

Closed davidsthayer closed 10 years ago

davidsthayer commented 10 years ago

Okay everyone: The test lab requires our transmitter to output a constant wave carrier signal for analysis of our system. The Nordic product spec has details of what settings need to be programmed to do this. We've tried placing these basic elements in a sketch but so far we're uncertain of our output. We have a spectrum analyzer system set up for our frequency band to verify that we're getting a signal. I've include the Manufacturer's code and our sketch below that.

This is what Nordic says (p.78) in the product spec:

Appendix C - Constant carrier wave output for testing The output power of a radio is a critical factor for achieving wanted range. Output power is also the first test criteria needed to qualify for all telecommunication regulations. Configuration

  1. Set PWR_UP = 1 and PRIM_RX = 0 in the CONFIG register.
  2. Wait 1.5ms PWR_UP->standby.
  3. In the RF register set: 􏰀 CONT_WAVE = 1. 􏰀 PLL_LOCK = 1. 􏰀 RF_PWR.
  4. Set the wanted RF channel.
  5. Set CE high.
  6. Keep CE high as long as the carrier is needed. Note: Do not use REUSE_TX_PL together with CONT_WAVE=1. When both these registers are set the chip does not react when setting CE low. If however, both registers are set PWR_UP = 0 will turn TX mode off. The nRF24L01+ should now output an unmodulated centered carrier.

This is what we have so far:

// Send and wait for a reply as fast as possible

include

include

include

include

include

void setup() {

Mirf.spi = &MirfHardwareSpi; Mirf.init();
//Mirf.setRADDR((byte )"clie1"); Mirf.payload = sizeof(unsigned long); Mirf.channel = 2; Mirf.setTADDR((byte )"serv1"); // 7 CONST WAVE = 1, 6 ALWAYS 0, 5 RF_DR_LOW, 4 = 1 byte my_rf_reg[] = {0b10011110,0}; // Set to 0dB 2mbps

Mirf.writeRegister(RF_SETUP, (byte *) my_rf_reg, 1); Mirf.config();

digitalWrite(8, HIGH); // Write CE to HIGH

delay(2); }

void loop () {

}

So far we don't seem to be getting anything. Anyone want to weigh in on this?

jacobbenlewis commented 10 years ago

My first thought is unless you know what all is going on inside of Mirf I would try to remove it.

My second thought is that since you are using a common module that I imagine someone else has taken through FCC testing with an Arduino, there ought to be some code out there.