MPXY8300 example code doubts

cancel
Showing results for 
Search instead for 
Did you mean: 

MPXY8300 example code doubts

295 Views
nemanjasavic
Contributor I

Hello guys,

 

while waiting for my MPXY8300 chip to arrive, I am looking at the provided example code for dev KIT and reading datasheet. The example code is explained in reference manual while complete code was posted in this thread few years ago https://community.freescale.com/message/408881#408881 . Unfortunatelly I couldn't find if any update of the code was released meanwhile.

However I would like to ask you a few questions about the code.

 

So, first, at the begining of the main function, the autho of the code setup timers that will be used throughout the application:

 

  SRS=0x00;   //The COP timer is reset by writing any value to the address of               //SRS. This write does not affect the data in the read-only SRS. Instead, the act of writing to               //this address is decoded and sends a reset signal to the COP timer.       __RESET_WATCHDOG();       EnableInterrupts;   SOPT1=0x33;  /*****************Main Time Base for the whole application************************/    PWUSC0_WUFACK=1;      PWUDIV = 0x2F;      //    EVERY SECOND         PWUSC0 = 0x02;        //    PERIODIC WAKE-UP EVERY 2 sec.       PWUSC1 = 0x00;        //    NO PERIODIC RESET   /********************************************************************************/

 

As can be seen the wake up interrupt will occure every 2 sec. The rest of the code is:

 

 

     InitLF();      RF_Setup();      SPMSC1_BGBE=1;  //Enable Bandgap      Measure_P_T_V();      // Acceleration Z byte      REIMS_READ_COMP_ACCEL_Z(&Acc_Z_Array,Pressure_Array[1],1,0);      delay(10);      PACCZ=Acc_Z_Array[1]>>2;                 // Acceleration X byte      REIMS_READ_COMP_ACCEL_X(&Acc_X_Array,Pressure_Array[1],1,0);      delay(10);      PACCX=Acc_X_Array[1]>>2;      Send_RF_Datagram();      SOPT2=0x70;     //   RESET VALUES      SPMSC1=0x10;    //  0x10 :  STOP 1 MODE CONFIGURED LVDE & LVDSE = 0      SPMSC2=0x02;    // 02 ---> PDC = 1 ; PPDC = 0 STOP1      __asm STOP;

 

So, after the initialization, chip goes to power saving mode stop1. There it stay untill LF command was received or until wake up interrupt occures.

What I don't understand here is following: Where is 60 seconds period of transmission set? There is no counter, nothing.

ISR code for wake up timer looks like this:

 

void interrupt USER_4_INTERRUPT(void) {   PWUSC0_WUFACK = SET;  PWUSC1_PRFACK = SET;   Periodic_Wake_UP_Measures();   //ok passe ici d'abord // _asm cli;  //_asm rti;           //supprimer avant // _asm cli; }

 

It calls periodically function for measuring P, V and T. This function is:

 

void  Periodic_Wake_UP_Measures() { unsigned char i; EnableInterrupts;  _asm rti; }

 

As can be seen function Periodic_Wake_Up_Measures does nothing (I supose it was left for the user to specify) except enabling interrupt and returning from interrupt (which I also don't unterstand why it was called explicitly, hope somebody could explain this also)

 

On the other hand, datasheet says that device recovering from stop1 mode will take reset vector, which means that the program will start at the begining of main function, which means that there is no ISR.

 

Now, having all previous in mind, it looks like this code will wake up every 2 seconds and transmit data over radio.

 

The ost turned out quite long, but if anybody has experience with MPXY8300 I am thankfull inadvance for your help.

 

Best regards,

Nemanja

Labels (1)
0 Kudos
3 Replies

151 Views
vicentegomez
NXP TechSupport
NXP TechSupport

Hi Nemanja

Please be aware that the mpxy8300 is not longer manufacturer as is shown on the following link:

Microcontroller, Pressure Sensor, X-Z Acceler|Freescale

Because of this I recommend you use the new family

FXTH87|Tire Pressure Monitor Sensor|Freescale

regards

Vicente

0 Kudos

151 Views
nemanjasavic
Contributor I

Hello again,

meanwhile I designed a small evaluation board based on reference manual ...

And still I have following doubts:

1. Where can I find official datasheet for MPXY8300 (can't get it from freescale's website).

2. There are certain firmware functions provided as is. Some of those function returs status byte. It is written in a few places that status byte is explained in section 14 of the datasheet, but unfortunately nothing is explained. Could anybody, especially guys from freescale, explain what is status byte or at least provide usefull source of information.

Best regards,

Nemanja

0 Kudos

151 Views
nemanjasavic
Contributor I

Hi,

the fact is that I must use them and I have 10pcs.

Best regards

0 Kudos