This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
This question regards to ScanIF.
I need to change a period of starting TSM on the fly.
I am doing this by reprogramming the divider of ACLK clock (in SIFCTL4.SIFDIV3A / 3B).
Unfortunatelly I observe that switch from SIFDIV3_162 | SIFDIV2_2 to SIFDIV3_18 | SIFDIV2_2 takes about 5ms. This is delay before first cycle of the TSM with new period.
Is it possible to make this delay shorter? What it depends on?
Regards,
Piotr
Hello Piotr,
According to page 902 in the MSPx4xx User's Guide, the TSM automatically starts and re-starts periodically based on a divided ACLK start signal selected with the SIFDIV2x bits, the SIFDIV3Ax and SIFDIV3Bx bits when SIFTSMRP = 0. For example, if SIFDIV3A and SIFDIV3B are configured to 270 ACLK cycles, then the TSM automatically starts every 270 ACLK cycles. When SIFTSMRP = 1 the TSM re−starts immediately with the SIFTSM0 state at the end of the previous sequence i.e. with the next ACLK cycle after encountering a state with SIFSTOP = 1. The SIFIFG2 interrupt flag is set when the TSM starts.
The SIFDIV3Ax and SIFDIV3Bx bits may be updated anytime during operation. When updated, the current TSM sequence will continue with the old settings until the last state of the sequence completes. The new settings will take affect at the start of the next sequence.
On page 933 in the MSPx4xx User's Guide, you will find a table with possible delays in ACLK cycles ranging from 2 cycles to 450 cycles.
Does this make sense?
Regards,
James
MSP Customer Applications
Same problem here!
I need to perform auto calibration of SacnIF using TCI method. For that I increase frequency of SIF from 50Hz to 1000Hz. So At begining I have TSM cycles every 20ms. Then right after SIFIFG3 interrupt flag is set and interrupt is triggered I setup new frequency. BUT, next cycle is triggered after 10ms and then rest of cycles are triggered every 1ms.
It looks like ScanIF is sleeping during cycles, but wakes up every half cycle to check for test cycle (it is also injected in the middle of period). And in this point it switches the frequency. Sadly, I couldn't reduce this half cycle dead time when freq is changed.
Regards.
James Evans said:Hello Piotr,
This makes sense. Keep in mind that the SIFDIV3Ax and SIFDIV3Bx bits may be updated anytime during operation. When updated, the current TSM sequence will continue with the old settings until the last state of the sequence completes. The new settings will take affect at the start of the next sequence.
Hi James,
I change SIFDIV3xx after TSM is stopped, i.e. last command is executed and interrupt is generated. I do not understand why the update of these registers is not effective immediately.
Regards,
Piotr
**Attention** This is a public forum