2002-11-26 10:23 AM
2011-05-17 02:32 AM
2011-05-17 02:32 AM
The ''on the fly'' modification note concerns the SCI-M control registers which would then be the SICR, SOCR, BRGHR, BRGLR, CHCR and CCR registers.
So, on fly access to all other registers such as the IMR, ISR, RXBR, TXBR, ACR and IDPR registers is then allowed and does not require any access to the Baud Rate Generator. This is good because the user does not want to re-initialize and re-start the SCI-M peripheral after each transmission, reception or SCI interrupt. By the way, you will find 4 SCI-M source examples in the user guide software library (transmission, reception, examples with or without DMA). These programs target the ST92F120 or the ST90158 but since that's the exact same SCI-M periphal as the ST92163's one, you should be all set. Jojo2011-05-17 02:32 AM
You can do it, but be carefull. Modifying your interrupt vector with your interrupt enabled or modifying your DMA pointer while the DMA is in process may be full of surprise
However, you can certainly modify these registers outside your Baud Rate High Register / Low Register subroutine Jojo2011-05-17 02:32 AM
Cool. There were a number of registers Jojo did not mention explicitly: S_IVR, RDCPR, RDAPR, TDCPR, and TDAPR. I would expect that the 4 DMA related registers should be writeable at any time, because as JoJo says, you don't want to reinitialize the SCI-M on every transmission. But how about S_IVR? Can S_IVR be modified on the fly?
(I will also check the examples in the library - maybe the answer is in there, but maybe not).