42.6.2.7 Automated Bit Mapping

Several segments on the LCD panel can be gathered to make a symbol, which can be animated (i.e., have several states). Data corresponding to each state of the animation can be stored in system memory, and is transferred periodically to the display memory using the DMA controller.

The DMA controller can update up to eight contiguous bits in display memory by writing to the ISDATA register, refer to 42.6.1.7 Display Memory Mapping. To update more than eight bits, the DMA controller must be configured to transfer multiple words before the shadow memory is updated. This number of words must be written to the Size bits in the Automated Bit Mapping Configuration register (ABMCFG.SIZE); it indicates the number of DMA writes to the display memory to form an animation frame.

To make an automated animation of N states with M contiguous segment values in display memory, the DMA controller must be configured to transfer N x M/8 words (8 contiguous segments are updated per write access). If segment values are not contiguous, the DMA size can be up to N x M (1 segment is updated per write access).

The display period (time between each frame) is defined by a frame counter, which will trigger a new DMA block transfer for the next frame (refer to 42.6.2.1 Frame Counters). The frame counter index must be written to the Frame Counter Selection bits in the ABMCFG register (ABMCFG.FCS).

To enable the automated bit mapping, write a '1' to the Automated Bit Mapping Enable bit in the Control B register (CTRLB.ABMEN); to disable it, write a '0' to CTRLB.ABMEN.

An animation can be repeated if the DMA controller is configured to repeat the whole transfer.

If ABM is enabled, the user can check whether ABM is busy or idle by reading the Auto Bit Mapping Busy bit in the Status register (STATUS.ABMBUSY).