2015-10-19 03:20 AM
Hello,
when I was working on SPC56EL with older SPC5 Studio versions, the overflow callback was called only when the internal counter was overflowing. This was perfect to detect too low frequency which can't be measured. On SPC564B and SPC5 Studio V3.7, the driver is reworked compared to older versions and the overlow callback is now called all the time, when edges are detected on the input. Can you please confirm this bug or new behaviour... Second problem is the frequency range: I have to measure frequencies between 4Hz and 5kHz on different channels with 1Hz resolution. Since the eMIOS clock is the same for all channel, how could I achieve that? I actually use a clock of 120MHz/2/256=234375 Hz. It allows period measurement down to 3.5Hz with high precision. But at 5kHz, the counter reaches 234375 / 5000 = 46 and this corresponds to 234375 / 46 = 5095 Hz which is far away from 5000Hz. To be able to reach 1Hz resolution on other micros, I usually have two methods. The edge detection for low frequencies only. For high frequencies, I'm using a timer that counts all edges during a fix period of time determined by another timer.2015-10-20 08:14 AM
Hello Aurelien ,
the driver is coming from SPC5-HAL sourceforge repository :https://sourceforge.net/projects/spc5-hal/?source=directory
within different version of SPC5STudio, we are putting a SVN Tags. there are some few differences on eMIOS driverstrunk\_code\hal\platforms\SPC5xx.(cf svn logs)
for your problem, i am checking with eMIOS experts. Best regards Erwan
2015-10-26 04:10 AM
Hello,
any news from eMIOS experts? The HAL changed a lot between my 2 developpement but the fact is that with the ''previous'' version the overflow callback was functionnal.2015-11-05 02:44 AM
Hello Aurelien ,
i am back sorry for the delay could you increase eTimerX priority for eMIOS ? you should check icu_lld.c / icu_lld.h. 2 revisions in 2015 Revision: 1142 Author: lzambrano Date: mercredi 23 septembre 2015 11:11:22 Message: Modifications to fix the ticket ER328822. ---- Revision: 890 Author: lzambrano Date: jeudi 12 février 2015 15:20:43 Message: Modify the Velvety clock tree and add the eTimer support for Velvety Best Regards Erwan2015-11-05 05:45 AM
Sorry Aurelien ,
I was on EL Side not B Side. for B Devices, for icu_lld.* there is no update in 2015 could you give us your configuration ? (by email if you want) Best Regards Erwan2015-11-06 12:45 AM
Hello Aurelien ,
You can use Input Period Measurement. (Type G Channel and Type H channel) (Cf reference manual) Did you try this ? Best regards Erwan ________________ Attachments : 2015-11-06_093707.png : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006qWcj&d=%2Fa%2F0X0000000boQ%2FaUtL6BhoAiJ_afecnAv4HJt9JrhnaB8lxE05Usy7Sc0&asPdf=false2015-11-19 06:35 AM
Hello Erwan,
I sent you my configuration.xml on the 9th of Nov. by mail. All my freq inputs are mapped to IPM compatible pins (type G and H). I confirm that the overflow callback was working on EL and that on B the behavior changed.
Regarding my second problem, the frequency range, like I mentioned in the forum, I actually use a clock of 120MHz/2/256=234375 Hz to clock both eMIOS. It allows period measurement down to 3.5Hz with high precision. But at 5kHz, the counter reaches 234375 / 5000 = 46 and this corresponds to 234375 / 46 = 5095 Hz which is 95 Hz away from 5000Hz.To be able to reach 1Hz resolution on other micros, I usually have 3 methods.
- Low freq: counting the time between edges based on edge detection (the one used by IPM). - High freq (>1kHz): a timer that counts all edges during a fix period of time determined by another timer. - Universal method: a mix of that, it counts the time of 16 periods. How could I achieve this last method using IPM inputs? If it’s not possible I will try to increase the eMIOS clock to 60MHz allowing to measure frequency higher than 60000000 / 65535 = 916 only… I would like to be more flexible using my methods.Thank you for helping!