- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi
I'm trying the code present here
Something goes wrong during the calibration because if I check the CAL register of FCNTC0 the value is TERMINATED instead of COMPLETED.
What could be the cause?
Checking the code it seems that, if I've well understood, the calibration is automatically started as soon as this function is called
Another possibility is that the configuration present into the example is not supported by the Calibration? But I think we go into the second row GAINSEL =0 (1:1) and one of the pins connected to GND and the other as the signal pin
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
The root cause of the issue is the wrong place of the calibration request in the IfxEdsadc_Edsadc_initChannel function in the_ IfxEdsadc_Edsadc.c_ file. The calibration request is made in the IfxEdsadc_Edsadc_initFirFilter function which is called before enabling the modulator. However, for correct calibration, this function has to be called after enabling the modulator.
In order to overcome this issue in the example a few modifications in the EDSADC.c file should be done. In function init_EDSADC in line 101 change edsadcChannelConfig.firFilter.calibrationTrigger to FALSE. In line 116 after calling the function IfxEdsadc_Edsadc_startScan add the following lines. We will check internally for the updating of the driver.
edsadcChannelConfig.firFilter.calibrationTrigger = TRUE; /* Start the calibration initializing the channel */ IfxEdsadc_Edsadc_initFirFilter(&g_edsadcChannel, &edsadcChannelConfig.firFilter ); while( EDSADC_CH0_FCNTC.B.CAL == 0x1 ); /* wait for the calibration completion */
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Any idea?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Any idea?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Anyone? Do someone has completed properly the calibration using ILLD?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
The root cause of the issue is the wrong place of the calibration request in the IfxEdsadc_Edsadc_initChannel function in the_ IfxEdsadc_Edsadc.c_ file. The calibration request is made in the IfxEdsadc_Edsadc_initFirFilter function which is called before enabling the modulator. However, for correct calibration, this function has to be called after enabling the modulator.
In order to overcome this issue in the example a few modifications in the EDSADC.c file should be done. In function init_EDSADC in line 101 change edsadcChannelConfig.firFilter.calibrationTrigger to FALSE. In line 116 after calling the function IfxEdsadc_Edsadc_startScan add the following lines. We will check internally for the updating of the driver.
edsadcChannelConfig.firFilter.calibrationTrigger = TRUE; /* Start the calibration initializing the channel */ IfxEdsadc_Edsadc_initFirFilter(&g_edsadcChannel, &edsadcChannelConfig.firFilter ); while( EDSADC_CH0_FCNTC.B.CAL == 0x1 ); /* wait for the calibration completion */
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi
During my last month tests I've also found this possible problem and done the same change but it doesn't solve 100% of the cases. Does it always pass and complete the calibration in your case? What device are you using (I'm using TC377)?