Multi Source Translation Content

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Multi Source Translation Content

ディスカッション

ソート順:
shelf life of MPX2300DT1 Hi. We are using the MPX2300DT1. Is anyhting known about the shelf life (limitations)? Is especially the gel coating susceptible to aging? Thanks in advance. Pressure Sensors Re: shelf life of MPX2300DT1 Hello Mathijs, NXP is not able to commit on life time of its pressure sensors, life time which is related to the operating environment and usage of the sensor. We do not recommend all our sensor to become in direct contact with any kind of liquid substance or corrosive gases which would damage the gel and cause the sensor to become out of specification. The strain gauge and the electronic circuitry for calibration and compensation are protected by a nitride layer but the aluminum bonding pads which provide electrical connections between the leadframe and the gauge are not protected, in order to make the bonding feasible. The complete die is also protected with a silicone gel. This gel is not fully hermetic, although we use much better gel for our newer types of pressure sensors, water or any other fluid can penetrate the gel and can reach the die.                     When the sensor die is in contact with water e.g., oxydoreduction reactions between Al/Al3+ and water start as soon as the sensor is biased. After some working hours, or maybe days, the aluminum pad of the supply pin is definitely destroyed, so that an open circuit on the Vcc pin occurs. This is an aluminum corrosion phenomena. But the corrosion phenomena is stopped when the sensor supply voltage is switched off. There are also some other failure causes like galvanic corrosion, but the Mean Time To Failure (MTTF) due to these other causes much longer than the MTTF caused by electrocorrosion of the Vcc pad. Therefore electrocorrosion is the major failure cause, and they are permanent. However, as you may know, our products are used in washing machine applications, which would expose the gel to a humid environment. In these applications, the device is located at the top of a measurement tube - so water level is indirectly measured through the water pushing a trapped air column up to the sensor. As you can see, the sensor does not have direct contact with water, but is separated by the air column. I would like to refer to the following application notes in case they are useful for you: AN1950: Water Level Monitoring AN1516: Liquid Level Control Using a Pressure Sensor We have also an application note about media compatibility: AN3728: Media Compatibility for IPS PRT Pressure Sensors I hope this information will be useful for you. If I misunderstood your question, feel free to let me know.  I will be glad to help. Have a great day. David Diaz. PS: If my answer helps to solve your question, please mark it as "Correct". Thank you.
記事全体を表示
传感器融合培训视频 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 所有、 我最近完成了一系列传感器融合库的培训视频。 您可以通过下面的链接访问它们。 尽情享受! Mike 1.轮换简介 2.旋转矩阵 3.四元数介绍 4.四元数旋转操作符 5.运动传感器简介 6.恩智浦传感器融合库简介 7.用于 Windows 的传感器融合工具箱 8.安卓传感器融合工具箱 9.开发工具和库 10.传感器融合库结构& 各种血腥细节 11.传感器融合代码审查 12。参考框架 13.磁校准 14.倾斜 电子罗盘& 虚拟陀螺仪 15.卡尔曼滤波器 传感器融合 Re: Sensor Fusion Training Videos <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 非常感谢!我从这些视频中学到了很多!我想向客户介绍,但我找不到 nxp 主页的链接。您能帮忙检查一下吗?
記事全体を表示
How can I SPI settings for FXTH87xx11? Hi,  I am trying to communicate with CC1310 and FXTH87xx11 sensor card via SPI, but it does not work. FXTH87xx11 module "MASTER" CC1310 module works as "SLAVE". I can see the signals coming out of the CLK, MOSI, SS pins on the FXTH87xx11 side very well when I look through the oscilloscope. The SPI settings I made for CC1310 are as follows. SPI_Params_init(&spiParams); spiParams.frameFormat = SPI_POL0_PHA0; spiParams.mode = SPI_SLAVE; spiParams.transferMode = SPI_MODE_CALLBACK; spiParams.transferCallbackFxn = transferCallback; spiParams.dataSize = 8; //8bit //spiParams.bitRate = 1000000; //1Mhz // Configure the transaction transaction.count = 8; transaction.txBuf = Buf; transaction.rxBuf = Buf; I cannot make any settings on the FXTH87xx11 side, the module does not allow me to do this, I use the "TPMS_MSG_INT, TPMS_MSG_READ, TPMS_MSG_WRITE" definitions given to me there. Where am I doing wrong or what am I missing? Can you help me with this? Re: How can I SPI settings for FXTH87xx11? Hi Tomas, Problem solved thank you for your help Tomas. The reason for the problem is that the "transaction.count" value on the CC1310 side was given incorrectly. Best regards, Ali Re: How can I SPI settings for FXTH87xx11? Hi Tomas, Considering what you said, I changed it to CPHA = 1 but the problem still persists. I use 4 pin SPI structure as a structure.  The value I send is getting mixed up as seen in the pictures below. FXTH Value: Xfer_TxBuffer[index++] = (UINT8)1; Xfer_TxBuffer[index++] = (UINT8)2; Xfer_TxBuffer[index++] = (UINT8)3; Xfer_TxBuffer[index++] = (UINT8)4; Xfer_TxBuffer[index++] = (UINT8)5; Xfer_TxBuffer[index++] = (UINT8)6; Xfer_TxBuffer[index++] = (UINT8)7; Xfer_TxBuffer[index++] = (UINT8)8; Values to CC1310 Every once in a while, the value I send is coming right. Current CC1310 Settings Best regards, Re: How can I SPI settings for FXTH87xx11? Hi Ali, We do not specify the baud rate of the SPI communication as this does not need to be configured on the slave side. I think you did not configure the CPHA correctly. It should be CPHA=1 and it looks like you configured CPHA=0. Information on the simulated SPI interface can be found in the firmware user guide: I hope this helps. Best regards, Tomas Re: How can I SPI settings for FXTH87xx11? I tried the code you suggested and I managed to see the output I wanted from CLK, MOSI, SS pins. I can see the values that I sent via FXTH on the CC1310 module, but the places of the values I sent after the first value get mixed up.I've experienced this before because it was doing when the correct communication speed was not available.I could not find the communication speed of FXTH anywhere but when I look through the oscilloscope, it turns out to be 38.46kHz. How can I find the communication speed of FXTH? The SPI settings I made for CC1310 are as follows. SPI_Params_init(&spiParams); spiParams.frameFormat = SPI_POL0_PHA0; spiParams.mode = SPI_SLAVE; spiParams.transferMode = SPI_MODE_CALLBACK; spiParams.transferCallbackFxn = transferCallback; spiParams.dataSize = 8; //8bit spiParams.bitRate = 38460; // Configure the transaction transaction.count = 8; transaction.txBuf = NULL; transaction.rxBuf = Buf; Re: How can I SPI settings for FXTH87xx11? Hi Tomas, Thank you for your reply, I will try and return as soon as possible. Re: How can I SPI settings for FXTH87xx11? Hi Ali, The SPI communication implemented with the TPMS_MSG routines is a 3-wire SPI, so with data read and written on the same line. So on the slave SPI side, the bidirectional data option must be enabled. If using a 4-wire SPI is simpler, drivers implementing a 4-wire SPI master are available in this demo package: That can be downloaded from: https://www.nxp.com/products/sensors/pressure-sensors/tire-pressure-monitoring-sensors/fxth87-tire-pressure-monitor-sensor-family:FXTH87?tab=Design_Tools_Tab Best regards, Tomas
記事全体を表示
压差传感器适用于柴油还是石油燃料介质? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我正试图开发一个油位监测数据采集系统,因此我选择了 MPX2053 和类似的传感器,用于测量油箱中最多 4 米的油位高度。 我想知道的是,这些压差传感器是否适用于柴油和/或石油燃料? 如果没有,您能否建议我在应用中可以使用哪些替代传感器或方法? 一种选择是使用基于不锈钢的差压发射器(4 至 20 mA 输出)并将其连接到我的系统。这是一个现成的解决方案,但与基于离散传感器的系统相比,成本非常高。因此,我更倾向于使用恩智浦/飞思卡尔的传感器,因为我以前在不同的应用中使用过同样的传感器。 谢谢! 此致, Zeeshan 压力传感器 Re: Are the differential pressure sensors suited to be used with diesel or petro fuel mediums ? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,齐斯汉 请注意,对于所有恩智浦标准压力传感器产品,除干燥空气外的任何环境都会对产品的可靠性和使用寿命产生一定影响。恩智浦硅压力传感器与油、气、汽油、水或水蒸汽或化学品不兼容。 必须确定这种影响是否可以接受。这就意味着不能将我们的压力传感器用于可能与上述介质直接接触的应用中。工作一段时间后,设备可能会出现故障。 除了提供的信息和解决方案外,我想参考以下值得考虑的**应用笔记**: 1.AN3728:IPS PRT 压力传感器的介质兼容性 2.AN1516:使用压力传感器进行液位控制 3.AN1950:水位监测 希望这些信息对你有用。 如果我误解了你的问题,请随时告诉我。 我很乐意提供帮助。 祝您有美好的一天。 戴维-迪亚兹 PS:如果我的回答有助于解决您的问题,请标记为"正确" 。谢谢。
記事全体を表示
How to use on-board Accelerometer of FRDM-K-22F ? I am using FRDM-K22-F .it has on-board accelerometer FXOS8700CQ.I want to use it to read x,y,z axis information fro my application.Plz help me if anybody have done it ... Accelerometers Sensing Platforms Re: How to use on-board Accelerometer of FRDM-K-22F ? Hi Jagir, Please look at the FRDM-K22F-QSP Quick Start Package example that can be found at: FRDM-K22F|Freedom Development Board|Kinetis|Freescale Regards, David
記事全体を表示
How to understand the interrupt vectors of NTM88 Hello,everyone How does the user application interrupt vectors of NTM88 work? have any re-direct operation to make the vectors valid? so the irq fucntion in user code can be used. I want figure this out so I read the bootloader examples of NTM88 from NXP. I just find that: if (gu8BootAppMode == MODE_APP) (*USER_APP_INTERRUPT_TABLE[15])(); // JUMP TO USER APP main_app() Only the main function of app code is called. It's not a irq function and not called by a real IRQ. Who can help to explain this problem? Thanks Best regards Re: How to understand the interrupt vectors of NTM88 Hello Tomas. Thanks for you reply. I will check the AN5149. Best regards Frank Hill Re: How to understand the interrupt vectors of NTM88 Hi Frank, In the bootloader project, memory is divided into two sections: The bootloader section, which is always present and has a valid content (because it is never erased nor overwritten). The application section, which is not always present and not always valid (in case of issue during OTA reprogramming). After reset, the programs jumps into the main located bootloader section by default, and when an interrupt occurs the program accesses the interrupt vectors which are located in the bootloader section. Then, only if the application section is valid (i.e. program is in application mode) then the program jumps into the application (main_app) and application interrupt vectors. The program does not access the application section by default because it does not always have a valid content. This is illustrated in Figures 4 and 5 of the AN5149. Best regards, Tomas
記事全体を表示
how can i test Fusion Library ? hi im trying to port nxp fusion library to another MCU i did download sdk that have issdk in it  till now i dont have any sensor so i want to feed fusion library some data to see if it calculate right or not this is my feedeing value function like // sfg = pointer to top level (generally global) data structure for sensor fusion int8_t FXAS21002_Init(struct PhysicalSensor *sensor, SensorFusionGlobals *sfg) {     sfg->Gyro.iFIFOCount=0;     sensor->isInitialized = F_USING_GYRO;     sfg->Gyro.isEnabled = true;     return SENSOR_ERROR_NONE; } // read FXAS21002 gyro over I2C int8_t FXAS21002_Read(struct PhysicalSensor *sensor, SensorFusionGlobals *sfg) {     int16_t     sample[3];     // place the measurements read into the gyroscope buffer structure     sample[CHX] = 200;     sample[CHY] = 100;     sample[CHZ] = 100;     conditionSample(sample);  // truncate negative values to -32767     addToFifo((union FifoSensor*) &(sfg->Gyro), GYRO_FIFO_SIZE, sample);           return SENSOR_ERROR_NONE; } // sfg = pointer to top level (generally global) data structure for sensor fusion int8_t FXOS8700_Init(struct PhysicalSensor *sensor, SensorFusionGlobals *sfg) {     sfg->Accel.iFIFOCount=0;     sensor->isInitialized = F_USING_ACCEL;     sfg->Accel.isEnabled = true;     return SENSOR_ERROR_NONE; } // read FXAS21002 gyro over I2C int8_t FXOS8700_Read(struct PhysicalSensor *sensor, SensorFusionGlobals *sfg) {     int16_t     sample[3];     // place the measurements read into the gyroscope buffer structure     sample[CHX] = 300;     sample[CHY] = 100;     sample[CHZ] = 100;     conditionSample(sample);  // truncate negative values to -32767     addToFifo((union FifoSensor*) &(sfg->Accel), ACCEL_FIFO_SIZE, sample);           return SENSOR_ERROR_NONE; } // sfg = pointer to top level (generally global) data structure for sensor fusion int8_t MPL3115_Init(struct PhysicalSensor *sensor, SensorFusionGlobals *sfg) {     sfg->Mag.iFIFOCount=0;     sensor->isInitialized = F_USING_MAG;     sfg->Mag.isEnabled = true;     return SENSOR_ERROR_NONE; } // read FXAS21002 gyro over I2C int8_t MPL3115_Read(struct PhysicalSensor *sensor, SensorFusionGlobals *sfg) {     int16_t     sample[3];     // place the measurements read into the gyroscope buffer structure     sample[CHX] = 100;     sample[CHY] = 100;     sample[CHZ] = 200;     conditionSample(sample);  // truncate negative values to -32767     addToFifo((union FifoSensor*) &(sfg->Mag), MAG_FIFO_SIZE, sample);           return SENSOR_ERROR_NONE; } ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ and then in the rest of main.c // Global data structures SensorFusionGlobals sfg;                ///< This is the primary sensor fusion data structure struct ControlSubsystem controlSubsystem;      ///< used for serial communications struct StatusSubsystem statusSubsystem;        ///< provides visual (usually LED) status indicator struct PhysicalSensor sensors[3];              ///< This implementation uses up to 3 sensors registerDeviceInfo_t i2cBusInfo ; typedef struct _ARM_DRIVER_I2C {   char navid;                                                               ///< Pointer to \ref ARM_I2C_GetStatus : Get I2C status. } const ARM_DRIVER_I2C; int main(){      ARM_DRIVER_I2C* I2Cdrv ;;   // defined in the .h file            initializeControlPort(&controlSubsystem);                           // configure pins and ports for the control sub-system   initializeStatusSubsystem(&statusSubsystem);                        // configure pins and ports for the status sub-system   initSensorFusionGlobals(&sfg, &statusSubsystem, &controlSubsystem); // Initialize sensor fusion structures            sfg.installSensor(&sfg, &sensors[0], 0,  1, (void*) I2Cdrv, &i2cBusInfo, FXOS8700_Init,  FXOS8700_Read);      sfg.installSensor(&sfg, &sensors[1], 0, 1, (void*) I2Cdrv, &i2cBusInfo, FXAS21002_Init, FXAS21002_Read);      sfg.installSensor(&sfg, &sensors[2], 0,   1, (void*) I2Cdrv, &i2cBusInfo, MPL3115_Init,   MPL3115_Read);            sfg.initializeFusionEngine(&sfg);             // This will initialize sensors and magnetic calibration                                    int i = 0 ;            while(1){                      sfg.readSensors(&sfg, 1);           // Reads sensors, applies HAL and does averaging (if applicable)     sfg.conditionSensorReadings(&sfg);  // magCal is run as part of this     sfg.runFusion(&sfg);                // Run the actual fusion algorithms     sfg.applyPerturbation(&sfg);        // apply debug perturbation (testing only)     sfg.loopcounter++;                  // The loop counter is used to "serialize" mag cal operations          } }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ u see data that i feed is in sample variable in each sensor read function  when i watch sfg. SV_9DOF_GBY_KALMAN  all of the parameter is zero what valuse should i feed in accel and mag and gyro to see if it work right . do u have any sample to give me so i can try with it? my build.h  #define F_USING_ACCEL           0x0001  ///< nominally 0x0001 if an accelerometer is to be used, 0x0000 otherwise #define F_USING_MAG             0x0002  ///< nominally 0x0002 if an magnetometer  is to be used, 0x0000 otherwise #define F_USING_GYRO            0x0004  ///< nominally 0x0004 if a gyro           is to be used, 0x0000 otherwise #define F_USING_PRESSURE        0x0000  ///< nominally 0x0008 if altimeter        is to be used, 0x0000 otherwise #define F_USING_TEMPERATURE     0x0000  ///< nominally 0x0010 if temp sensor      is to be used, 0x0000 otherwise #define F_ALL_SENSORS           0x001F  ///< refers to all applicable sensor types for the given physical unit #define F_1DOF_P_BASIC             0x0000     ///< 1DOF pressure (altitude) and temperature algorithm selector  - 0x0100 to include, 0x0000 otherwise #define F_3DOF_G_BASIC             0x0200     ///< 3DOF accel tilt (accel) algorithm selector                   - 0x0200 to include, 0x0000 otherwise #define F_3DOF_B_BASIC             0x0400     ///< 3DOF mag eCompass (vehicle/mag) algorithm selector           - 0x0400 to include, 0x0000 otherwise #define F_3DOF_Y_BASIC             0x0800     ///< 3DOF gyro integration algorithm selector                     - 0x0800 to include, 0x0000 otherwise #define F_6DOF_GB_BASIC             0x1000     ///< 6DOF accel and mag eCompass algorithm selector               - 0x1000 to include, 0x0000 otherwise #define F_6DOF_GY_KALMAN        0x2000     ///< 6DOF accel and gyro (Kalman) algorithm selector              - 0x2000 to include, 0x0000 otherwise #define F_9DOF_GBY_KALMAN     0x4000     ///< 9DOF accel, mag and gyro algorithm selector                  - 0x4000 to include, 0x0000 otherwise ‍‍‍‍‍‍‍‍‍‍‍‍‍ thanks allot SensorFusion
記事全体を表示
Problem with FXOS8700CQ and FXAS21002 operating together Hello All, I have managed to get both sensors generate data ready interrupts, routed at INT2 pin of each sensor, with active low polarity. I am using a TM4C123 processor, with I2C3 connected to the gyro sensor, and I2C0 connected to accelmag sensor. Here are my ISRs: // gyro interrupt service routine void gyro_isr(void) {     MAP_GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_2, GPIO_PIN_2);     if(GPIOIntStatus(GPIO_PORTD_BASE, true) & GPIO_PIN_3) {         GPIOIntClear(GPIO_PORTD_BASE, GPIO_PIN_3);         gyro_data_ready = true;     }     GPIOIntStatus(GPIO_PORTD_BASE, false);     MAP_GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_2, 0x00); } // accelmag interrupt service routine void accelmag_isr(void) {     MAP_GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_3, GPIO_PIN_3);     if(GPIOIntStatus(GPIO_PORTB_BASE, true) & GPIO_PIN_5) {         GPIOIntClear(GPIO_PORTB_BASE, GPIO_PIN_5);         accelmag_data_ready = true;     }     GPIOIntStatus(GPIO_PORTB_BASE, false);     MAP_GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_3, 0x00); } And in my main loop: while(1) {     if(gyro_data_ready) {         GyroGetData(FXAS21002C_ADDRESS, &gyroRD);         gyro_data_ready = false;     }     if(accelmag_data_ready) {         AGGetData(FXOS8700_ADDRESS, &accelRD, &magRD);         accelmag_data_ready = false;     } } The system works, interrupts are generated, triggers the ISR's and data is read. But after a while, the accelmag sensor fails to deassert the interrupt. Thus never read again. Here is a scopecap of the failure: The top 4 (D0 to D3) is the gyro sensor, D0: interrupt D1: PA2, D2: SCL3, D3: SDA3 The bottom 4 (D4 to D7) is the accelmag sensor, D4: interrupt, D5: PA3, D6: SCL3, D7: SDA3 This is just where the accelmag sensor stops responding, near to the end, the interrupt line falls at D4, you see the spike at D5, and I2C data transfer takes place, but the interrupt line is never de-asserted again. The spikes indicate entering and exiting of the ISR. My aim is to syncronize the sensors. For making calculations to get orientation from gyro, accelmag with extended kalman filtering, it is of great importance that the dt does not jitter. At first I was reading gyro's data_ready interrupt, and then reading the accelmag sensor, but then I tried a 2 interrupt approach, and It works but only for few minutes, then I get this error. At higher speeds like 400hz it crashes within few seconds. Any comments on sycnronization of these sensors, and ideas/help on the problem greatly appreciated. Best regards, Can Accelerometers Gyroscope Magnetic Sensors
記事全体を表示
P3T1035x(temp sensor) How to read the pointer register in I3C mode Can the pointer register setting access with I3C communication? Because It aborts when receiving T bit after receiving data, sending Slave address and sending the pointer value,, it looks like I2C Ack/Nack is returned from the P3T1035x. it looks like the pointer register accesses in I2C mode in the spec sheet 7.5.1 .  Timing chart etc,. I want to know the correct spec. Regards, T Re: P3T1035x(temp sensor) How to read the pointer register in I3C mode Hi Tomas Thank you very much for replying. I understood it. I currently connect an i3c controller that based on the MIPI Alliance and the temp sensor. After accessing with ccc in i3c mode, in order to access the pointer byte, I need to switch to i2c mode. In other words, when switching to i2c mode, I need to start over from the initialization sequence of i2c mode, is that correct? Regards, T Re: P3T1035x(temp sensor) How to read the pointer register in I3C mode Hi, The pointer register access (pointer byte) is only applicable in I2C mode. BRs, Tomas
記事全体を表示
コンパスのキャリブレーションの問題 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 皆さん、こんにちは。   私はCOMPASSに3軸デジタル磁力計(MAG3110)と3軸デジタル加速度センサ(MMA8451Q)を使用しています。 Freescale が提供するアルゴリズムによれば、コンパスのキャリブレーション データ (硬鉄および軟鉄) はどこにも保存されないため、電源を入れるたびに再キャリブレーションが必要になります。 キャリブレーションされた値を保存し、次回の電源投入時にこれらの値を適用する方法はありますか?可能であれば、どのような値を保存する必要がありますか?   よろしくお願いいたします。 Kishore P センサ・フュージョン Re: Compass calibration Issue <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ヴィタリー、 技術的には、3 軸磁力計 (Freescale が販売しているもの) は、X、Y、Z の感知方向にそれぞれ 1 つずつ向けられた 3 つの個別のセンサです。3 次元で磁気キャリブレーションを行うには、少なくとも 3 つの軸が必要です。1 つのデバイスに 3 つ以上の軸があるデバイスについて質問されている場合、私はそのようなものについて知りません。 完璧なセンサーを使用していても、すぐ近くにある鉄材料によって測定対象の磁場が歪む可能性があることを理解する必要があります。フィールド自体が非理想的なものになります。磁気キャリブレーションは、その歪みに対する逆伝達関数を効果的に実装します。 よろしくお願いいたします。 Mike Re: Compass calibration Issue <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、マイケル! 1 つのデバイスに 2 つの磁力計が搭載されていることについてお聞きしたいです。私の知る限り、開発者の中には、電源投入後に磁力計を校正する必要を回避するために、2 つまたは 3 つの異なる軸に配置された 2 つまたは 3 つの磁力計を使用する人もいます。私はマガジンを 1 つ持っており、ソフトとアイアンの調整を実装しました。しかし、現在 2 つのマガジンを持っており、それをアルゴリズムにどのように実装すればよいかわかりません。 1 つのデバイスで複数のマガジンを使用することについてはどう思いますか?それは意味を成しますか? Re: Compass calibration Issue <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> キショア、 素晴らしい質問ですね!コードを書いたエンジニアに問い合わせたところ、次のような返答がありました。 キャリブレーション パラメータをリファレンス ソフトウェアに (デフォルトで) 保存しないという決定は、次の 2 つの理由により行われました。 マーケティングの観点から、フリースケールは、事前に保存された値を使用するよりも、コールド スタート後のキャリブレーション アルゴリズムの動作をデモンストレーションする方が価値があると考えました。 キャリブレーション係数は温度に依存しており、その間に周囲温度または電子機器の温度が変化すると、最後の電源オフ時に保存された係数は最適ではなくなります。 したがって、最も安全な方法は、電子コンパスの電源を入れるたびにキャリブレーションを再計算することです。 これが不便な場合は、次の方法を使用する必要があります。 硬鉄の較正ベクトル(fV)、軟鉄の逆マトリックス(finvW)、地磁気の強度(fB)は、 MagCalibration構造体は電源オフ時に保存され、次回電源オン時に構造体にコピーされる必要があります。これは、これらのパラメータは前回の電源オフ以降の温度変化により不正確になる可能性があるものの、ヌルキャリブレーションよりは精度が良いという考え方に基づいています。 磁気バッファの内容は保存しないでください。ここでの論理は、これらの測定値は異なる動作温度で取得された可能性があり、新しい動作温度で電源を入れた後に新しいキャリブレーションを計算する際に邪魔になるだけであるというものです。 フィット エラーのパーセンテージ (MagCalibration 構造体の fFitErrorpc) は保存されず、電源投入時に 10% (Freescale デモ ユーザー インターフェースの 3 つの緑色のバーに対応) または 12% (2 つの緑色のバーに対応) などの値に初期化される必要があります。これにより、新しい測定値が磁気バッファに取り込まれると、以前に保存されたキャリブレーションがすぐに置き換えられます。これにより、たとえば 1% の適合誤差を持つ優れたキャリブレーションが適合誤差とともに電源オフ時に保存され、新しい動作温度ではより正確である可能性があるものの、(依然として優れた) 2% のキャリブレーション適合しか達成できない新しいキャリブレーションがロックアウトされるという問題が回避されます。 それが役に立つことを願います。 よろしくお願いいたします。 マイク・スタンリー
記事全体を表示
MPXV5004G 灵敏度和误差百分比 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我使用的是 MPXV5004G 压力传感器。 我希望记录 我的呼吸发生了敏感变化。 我把它连接到 10 位模数转换器,典型呼吸为 移动的输出值可能最多只有 1 点。 我希望提高灵敏度,但我注意到 MPXV5004G 的误差为 1.5% 或 2.5% 。 这似乎是说 输出值误差大于 1 个百分点。 1024 个值,所以即使我放大了变化,我能否 相信他们吗? 压力传感器
記事全体を表示
Sensor schematic symbols/library files for Altium? Hi, I am moving a design from EAGLE to Altium. I am looking for reference designs and more importantly a library file for the MMA8452Q. Does this exist? Where can I download it? Accelerometers Re: Sensor schematic symbols/library files for Altium? Hi George, Please see if the attached files help. We use Cadence Allegro tools, but there may be a converter to support Altium. You can also find the recommended land pattern and footprint in the AN4077. I hope it helps. Regards, Tomas PS: If my answer helps to solve your question, please mark it as "Correct" or “Helpful”. Thank you.
記事全体を表示
Sensor Fusion Version 6.0 Hi Mike,   When are you going to release the sensor fusion version 6.0? What is the new functions included in? In Version 6.0, do you have the function to detect the movement based on ACC+MAG to cancel GYRO drifting? In this way, when in stationary, there will be no YAW change even in IMU mode, right?   Thanks, Christie SensorFusion Re: Sensor Fusion Version 6.0 Just that, measure the gyro outputs at rest and then use those values as a correction going forward. Licensing details are still TBD.   We still expect to release source, but the new version may be restricted to NXP silicon.  No firm decision has been made either way.  And of course, no change to libraries already released. Mike Re: Sensor Fusion Version 6.0 Hi Mike, Thanks. Could you explain more about "a zero movement yaw initialization"? What is the licensing details? Regards, Christie Re: Sensor Fusion Version 6.0 Good question.  We actually have two threads of development underway right now.  Version 6.00 adds a number of features and is designed to run bare metal (no RTOS).  Version 7.00 (derived from 6.00) will support both bare-metal AND RTOS implementations.  It will no longer include Processor Expert support, but instead will be based on the Kinetis SDK.  We probably will NOT field 6.00 at all.  We're not planning to include the exact feature you mention, but we will be adding a zero movement yaw initialization that has much the same effect.  It will be 2nd quarter before you see V7.00.  Licensing details are still under discussion.
記事全体を表示
MPL3115A2 割り込み問題 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、 MPL3115A2 を使用していますが、ウィンドウ付きの高度計しきい値で INT1 を使用する際に問題が発生します。割り込みが発生すると、INT_SOURCE レジスタを読み取りますが、常に空です。構成は次のとおりです。 センサを有効にします: 値 0x00 を reg 0x26 に書き込みます。0x26 値 0x00 を読み取ります。0x26 値 0x00 を読み取ります。 値 0x00 を reg 0x27 に書き込みます。 値 0x20 を reg 0x28 に書き込みます。 値 0x00 を reg 0x29 に書き込みます。 値 0x00 を reg 0x2A に書き込みます。0x27 値 0x00 を読み取ります。 値 0x98 を reg 0x26 に書き込みます。0x26 値を 0x98 で読み取ります。 値 0x05 を reg 0x13 に書き込みます。0x12 値 0x05 を読み取ります。0x26 値を 0x98 で読み取ります。 値 0x1A をレジスタ 0x26 に書き込みます。0x26 値 0x1A を読み取ります。0x26 値を 0x18 で読み取ります。0x00 値 0xB0 を読み取り 次に割り込みをアクティブにします。 値 0x00 を reg 0x26 に書き込みます。0x26 値 0x00 を読み取ります。0x26 値 0x00 を読み取ります。 値 0x00 を reg 0x16 に書き込みます。 値 0x00 を reg 0x17 に書き込みます。 値 0x00 を reg 0x19 に書き込みます。 値 0x00 を reg 0x1A に書き込みます。 値 0x00 を reg 0x27 に書き込みます。 値 0x20 を reg 0x28 に書き込みます。 値 0x28 を reg 0x29 に書き込みます。 値 0x28 を reg 0x2A に書き込みます。 値 0x28 を reg 0x27 に書き込みます。 値 0xA9 を reg 0x26 に書き込みます。0x26 値 0xA9 を読み取ります。 値 0x05 を reg 0x13 に書き込みます。0x12 値 0x05 を読み取ります。0x26 値 0xA9 を読み取ります。0x26 値 0xA9 を読み取ります。 値 0xA9 を reg 0x26 に書き込みます。0x26 値 0x2B を読み取ります。0x26 値 0x2B を読み取ります。 値 0x29 を reg 0x26 に書き込みます。0x00 値 0x40 を読み取ります。 割り込みが発生すると、INT_SOURCE レジスタが読み取られ、常に値 0x00 が取得されます。 圧力センサ Re: MPL3115A2 Interrupt problem <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 失敗はここにありました: 値 0xA9 を reg 0x26 に書き込みます。0x26 値 0xA9 を読み取ります。 それは次のようになります: 値0x81をレジスタ0x26に書き込む
記事全体を表示
Dead Reckoning precision requirements Hi We have a GPS product with NXP sensor MMA8652FC (acceleromoeter), FXAS21002C (gyroscope) and MAG3110 (Magnometer)   We want to use these sensors to perform dead reckoning if GPS coverage is lost. My guess is that the software algorithm for dead reckoning with these 3 sensors is some months development time and before we start this process I would like to do a preliminary calculation or educated guess on what level of dead reckoning precision we can from the last known GPS position if our GPS speed and GPS heading direction data was 100%correct at last know GPS position.   Can anyone say something roughly about the estimated preicison we might get here with these sensors? Maybe 5 or 10% from distance traveled?   BR Øystein SensorFusion Re: Dead Reckoning precision requirements I touched on this some time back in the posting at Position Reckoning . That posting looked only at double integration errors associated with accelerometer offset.  There's also the issue or triple integration errors associated with gyro outputs.  Having said all this, you can probably improve performance above these numbers by running a higher level fusion function which incorporates your GPS data.
記事全体を表示
Toolbox for android Hello. I have a question about bluetooth between android and K64F.   I followed the step.but it didn't work.   1. install sensor fusion app 2. K64F turn on(2 jumper was installed, binary file was downloaded) 3. (in app)preferences -> Automatically enable Bluetooth on entry 4. reset app and board 5. (in app)select Local 9-axis   (in app) if board image was changed into K64F board , it means that bluetooth work well??? I shake the phone or board but the board image is not moving.   Thank you   SensorFusion Re: Toolbox for android selecting 'Local 9 xis ' was error. I select Remote 9 axis and it works well Thank you. Re: Toolbox for android Obvious question but you didn't mention whether you have a MULTI-B or MULT2-B bluetooth board connected to the FRDM-K64F. Assuming you do, make sure the jumper by the Bluetooth module (the silver square on the Bluetooth board) is in place. After you flash the K64F and power cycle you should see a flashing green LED. If the red LED is on then the software power on tests ave failed to communicate with the sensors. You've also selected "Local 9 axis" which selects the sensors on your Android tablet. You need to select "Remote 9 axis" to talk to the K64F board over Bluetooth.
記事全体を表示
使用 MP3H6115 测量压差 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好, 我目前使用两台 MP3H6115a 来测量压差。我用这个压力来计算气流速度。 问题是,我的压差在一段时间内并不恒定。我今天评估了传感器,因为速度出现了问题。我整天把传感器放在桌子上,记下每个传感器的估计压力,随着时间的推移,差值从 0.05kPa 到 0.01kPa。变化的频率非常缓慢,而且长期保持不变(约 2 小时)。 也许值得注意的是,气压整天都在下降。 有人有这方面的经验吗?这在意料之中吗? / 汤姆 Re: Differential pressure using MP3H6115 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,安德烈斯。 谢谢你的回答,我从来没有认真看过这个数据,因为我以前使用过这种传感器,而且效果很好。我不得不对它们进行校准,但效果还不错!但我现在使用的这台仪器的压力输出是非线性的,因此无法进行校准。 你能指出使用飞思卡尔传感器确定动态和静态压力的更可靠设置的方向吗? 最好的 汤姆 Re: Differential pressure using MP3H6115 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,汤姆 6115 的预期误差为 1.5% ,即大约 1.5 千帕。0.05 至 0.01 千帕的变化是正常的。 有关详细信息,请参阅http://cache.freescale.com/files/sensors/doc/data_lib/DL200.pdf?fsrch=1& sr=1(第 3-176 页),压力误差带。 祝您好运! Andres
記事全体を表示
NTM88 Hi NXP Engineer I would like to know if I can burn the APS library when I burn the bootloader. Thank you for your help. Re: NTM88 Or is there a viable way to pre-build it in first. Then the aftermarket side only burns the application. Re: NTM88 Discuss this need of yours currently we have no corresponding program. Re: NTM88 It's the aftermarket on the customer's side that wants to burn in the BOOT along with some libraries. Then just burn an app when their customer installs it. Is there any program like this? Re: NTM88 Can you repeat your question, didn't quite read it?
記事全体を表示
FXOS8700CQ is not generating Data ready interrupt on INT1 Hi, I am using Hexiwear development kit. I have configured FXOS8700CQ to generate Data ready interrupt on INT1 (PTC1). But the INT1 interrupt never triggered. FXOS8700CQ configuration is mentioned below. Please let me know, am i missing some thing? fxos_status_t FXOS_Init( handleFXOS_t* fxosHandle, const settingsFXOS_t* fxosSettings ) { /** * initialize intern structures, * which will be used from now on */ uint8_t chip_ID = 0x00; uint8_t tmp[1] = {0}; memcpy( (void*)&self, (void*)fxosHandle, sizeof(self) ); memcpy( (void*)&settings, (void*)fxosSettings, sizeof(settings) ); statusI2C_t status = I2C_Init( &(self.protocol), settings.address, settings.baudRate_kbps ); if ( STATUS_I2C_SUCCESS != status ) { return status; } else { statusI2C_t devStatus = STATUS_I2C_SUCCESS; devStatus |= I2C_ReadReg( &(self.protocol), WHO_AM_I_REG, &chip_ID); if(kFXOS_WHO_AM_I_Device_ID == chip_ID) { /** go to standby */ devStatus |= I2C_ReadReg(&(self.protocol), FXOS_CTRL_REG1, tmp); devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG1, tmp[0] & (uint8_t)~ACTIVE_MASK); devStatus |= I2C_ReadReg(&(self.protocol), FXOS_CTRL_REG1, tmp); if ((tmp[0] & ACTIVE_MASK) == ACTIVE_MASK) { catch( CATCH_I2C ); } devStatus |= I2C_WriteReg(&(self.protocol), F_SETUP_REG, F_MODE_DISABLED); // Disable the FIFO devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG2, MOD_HIGH_RES); // /* enable auto-sleep, low power in sleep, high res in wake */ devStatus |= I2C_WriteReg(&(self.protocol), FXOS_M_CTRL_REG1, (M_RST_MASK | M_OSR_MASK | M_HMS_MASK)); devStatus |= I2C_WriteReg(&(self.protocol), FXOS_M_CTRL_REG2, (M_HYB_AUTOINC_MASK)); devStatus |= I2C_WriteReg(&(self.protocol), XYZ_DATA_CFG_REG, FULL_SCALE_4G); // +/-4g range with 0.244mg/LSB devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG4, 0x01); // Enable DRDY interrupt devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG5, INT_CFG_DRDY_MASK); devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG3, WAKE_FF_MT_MASK); devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG1, HYB_ASLP_RATE_0_8HZ | HYB_DATA_RATE_100HZ | ACTIVE_MASK); devStatus |= I2C_ReadReg(&(self.protocol), FXOS_CTRL_REG1, tmp); if ((tmp[0] & ACTIVE_MASK) != ACTIVE_MASK) { catch( CATCH_I2C ); } if ( STATUS_I2C_SUCCESS != devStatus ) { catch( CATCH_I2C ); } } return devStatus; } } //Interrupt configuration /** create basic tasks */ status |= HostInterface_Init(); SIM_SCGC5 |= SIM_SCGC5_PORTC_MASK; // Turn on clock to Port C module PORTC_PCR1 |= (0|PORT_PCR_ISF_MASK |  PORT_PCR_MUX(0x1) |  PORT_PCR_IRQC(0xA)); // PC1 is configured for falling edge interrupts //Enable PORTC interrupt on NVIC NVIC_SetPriority( PORTC_IRQn, HEXIWEAR_TAP_IRQ_PRIO); Thanks, J. Chandra Sekhar Re: FXOS8700CQ is not generating Data ready interrupt on INT1 Hello Chandra, I do recommend performing the reset just writing 0x40 to the CTRL_REG2 register. Could you please make sure the INT1 pin is connected to your MCU/MPU input pin? Is your input pin configured for falling edge interrupts?                Regards, David Re: FXOS8700CQ is not generating Data ready interrupt on INT1 Hi, To perform Soft reset, i have used below code. But this command resulting the STATUS_I2C_ERROR. fxos_status_t FXOS_SoftReset() { statusI2C_t i2cStatus = I2C_WriteReg( &(self.protocol), FXOS_CTRL_REG2, RST_MASK ); if ( STATUS_I2C_SUCCESS != i2cStatus ) { return STATUS_FXOS_PROTOCOL_ERROR; } else { return STATUS_FXOS_SUCCESS; } } Thanks, J. Chandra Sekhar Re: FXOS8700CQ is not generating Data ready interrupt on INT1 Hello Chandra, Thank you for using the community.  Your device configuration seems correct. I just want to recommend applying a reset to all registers before device the configuration. Could you please make sure the INT1 pin is connected to your MCU/MPU input pin? Is your input pin configured for falling edge interrupts? Regards, David Re: FXOS8700CQ is not generating Data ready interrupt on INT1 Hi, Thanks for your response. I have checked the code and configured similarly in my Hexiwear board. But still the same, FXOS8700CQ sensor is not generating interrupt.   const gpio_input_pin_user_config_t Acc_cfg[] = { { .pinName = ACC_INT1, .config.isPullEnable = false, .config.pullSelect = kPortPullDown, .config.isPassiveFilterEnabled = false, .config.isDigitalFilterEnabled = false, .config.interrupt = kPortIntDisabled }, { .pinName = ACC_INT2, .config.isPullEnable = false, .config.pullSelect = kPortPullDown, .config.isPassiveFilterEnabled = false, .config.isDigitalFilterEnabled = false, .config.interrupt = kPortIntDisabled }, { .pinName = GPIO_PINS_OUT_OF_RANGE, } }; //Configured Pin 1 of PORTC as input GPIO_DRV_Init( Acc_cfg, NULL );  //Sensor configuration devStatus |= I2C_ReadReg( &(self.protocol), WHO_AM_I_REG, &chip_ID); if(kFXOS_WHO_AM_I_Device_ID == chip_ID) { /** go to standby */ FXOS_GotoStandby(); devStatus |= I2C_ReadReg(&(self.protocol), FXOS_CTRL_REG1, tmp); devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG1, tmp[0] & (uint8_t)~ACTIVE_MASK); devStatus |= I2C_ReadReg(&(self.protocol), FXOS_CTRL_REG1, tmp); if ((tmp[0] & ACTIVE_MASK) == ACTIVE_MASK) { catch( CATCH_I2C ); } devStatus |= I2C_WriteReg(&(self.protocol), XYZ_DATA_CFG_REG, FULL_SCALE_2G); // +/-2g range with 0.244mg/LSB devStatus |= I2C_WriteReg(&(self.protocol), FXOS_M_CTRL_REG1, (0x1F)); // Hybrid mode (accelerometer + magnetometer), max OSR devStatus |= I2C_WriteReg(&(self.protocol), FXOS_M_CTRL_REG2, 0x20); // M_OUT_X_MSB register 0x33 follows the OUT_Z_LSB register 0x06 (used for burst read) devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG2, 0x02); // High Resolution mode devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG3, 0x00); // Push-pull, active low devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG4, 0x01); // Enable DRDY interrupt devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG5, 0x01); // DRDY interrupt routed to INT1 - PTC1 devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG1, 0x35); // ODR = 3.125Hz, Reduced noise, Active mode FXOS_SetActive(); if ( STATUS_I2C_SUCCESS != devStatus ) { catch( CATCH_I2C ); } } //Interrupt handler void PORTC_IRQHandler(void) { PORT_HAL_ClearPortIntFlag(PORTC_BASE_PTR); /** Write your code here ... */ /* Unblock the task by releasing the semaphore. */ portBASE_TYPE taskToWake = pdFALSE; if (pdTRUE==xSemaphoreGiveFromISR(xReadRawDataSemaphore, &taskToWake)) { FXOS8700CQ_DataReady = 1; if (pdTRUE == taskToWake) { vPortYieldFromISR(); } } } //Task to read data from sensor void ReadRawData(task_param_t param) { xReadRawDataSemaphore = xSemaphoreCreateBinary(); if( xReadRawDataSemaphore == NULL ) { configASSERT(0); } for(;;) { /*Block waiting for the semaphore to become available. */ if( xSemaphoreTake( xReadRawDataSemaphore, LONG_TIME ) == pdTRUE ) { if(FXOS8700CQ_DataReady) { FXOS8700CQ_DataReady = 0; FXOS_ReadRawData(&AccelMagData[0]); } vPortYieldFromISR(); } } } Trying this from few days, but no luck. Request your support. Thanks, J. Chandra Sekhar Re: FXOS8700CQ is not generating Data ready interrupt on INT1 Hello Chandra, I hope all is great with you. Thank you for using the NXP communities. In this case, I highly recommend using the following bare metal project as a reference for your design: FXOS8700CQ - Bare metal example project I hope this information helps. Regards, David
記事全体を表示
How to implement the MMA8452 Linux Kernel Driver? Hello, I am working with an MMA8451Q accelerometer in an embedded Linux environment running kernel 4.19.94. The goal is to create a kernel module that will detect an interrupt from the accelerometer when the orientation changes, and then read the 0x10 register of the accelerometer to determine what the actual orientation is. So far, I have configured the MMA8451Q to send an interrupt when the orientation changes using i2cset and i2cget commands from userspace, and have created a kernel module that successfully detects this interrupt. My issue now is that I am in kernel space, so I can no longer use the simple i2cget command from the i2c-tools package in order to read the 0x10 register of the accelerometer. Instead, I have turned to the mma8452 kernel driver (which includes the MMA8451Q) in order to read the register without needing c libraries. Unfortunately, I cannot find any documentation or examples on how to use this driver. I have been able to successfully make and install the module into my kernel, as well as import the driver functions into my ISR kernel module, but cannot figure out how to implement said functions, or even what function I need. So, I am asking if anyone is aware of any documentation regarding the MMA8452 driver. Also, if there is another way to access the registers of the MMA8451Q through i2c without using c libraries (so it will function in a kernel module) that would work as well. Basically, creating my own driver to achieve one simple function: reading a register. Any help would be much appreciated!! Accelerometers Re: How to implement the MMA8452 Linux Kernel Driver? Hello, I am afraid that we do not have any further documentation or example. As mentioned before, this device is obsolete. Please accept my apologies. For further information about the I2C operation (single byte read for example), I do recommend reviewing the chapter 5.11.1 from the datasheet or using the example codes provided before as a reference. I hope this information helps. Regards, David Re: How to implement the MMA8452 Linux Kernel Driver? I have not seen the driver mentioned, no. It does seem to replace the driver provided by the Linux Kernel however and should work. As someone who is new to using kernel drivers however, is there some example usage or further documentation I can view in order to get a better understanding of how to actually call the "mma8x5x_read_data" function for example? Re: How to implement the MMA8452 Linux Kernel Driver? Hello, I hope all is great with you. Unfortunately I am not aware of such driver. Please accept my apologies. Have you considered using the drivers from the link below? NXP Sensor Drivers for Android™, Linux® and other OS Regards, David
記事全体を表示