Figure 43-21. Examples of Digit Mapped in Display Memory
a
b
c
g
f
e
d
b
c
a
g
d
f
e
COM0
COM1
COM2
COM3
COM4
COM5
COM6
COM7
SEGn
SEGn + 1
SEGn + 2
Display Memory
7-segment digit
c
d
h
g
16-segment digit
a
b
l
m
f
e
i
j k
n o p
h
g
a
i
l
b
k
COM0
COM1
COM2
COM3
COM4
COM5
COM6
COM7
SEGn
SEGn +
1
SEGn +
2
Display Memory
c
d
j
o
p
SEGn + 3
SEGn + 4
SEGn + 5
n
f
m
e
Several digits can be mapped in display memory to form a digits chain, which is used to display a
characters string. Once configured, the user updates a digit by providing up to 24 bits with a single write
access. ASCII tables provide standard symbols which should be handled by software before being
displayed.
Each character is a continuous display area with its SEG axis defined by the Character Mapping
Configuration register (CMCFG.NSEG). The maximum size is 24. Refer also to the example figure below.
Figure 43-22. Character Mapping Example
COM0
COM1
COM2
COM3
COM4
COM5
COM6
COM7
SEG
n
2
3
4
5
0
1
SEG
n
SEG
n
+ 1
4
6
8
10
7
9
0
2
1
3
5
18
21
16
19
22
17
20
23
SEG
n
SEG
n
+ 1
SEG
n
+ 2
6
9
12
15
10
13
8
11
14
0
3
1
4
7
2
5
6
7
13
14
12
15
11
21
22
SEG
n
SEG
n
+ 1
SEG
n
+ 2
8
12
16
20
13
17
10
14
18
0
4
1
5
9
2
6
23
SEG
n
+ 3
11
15
19
3
7
SEG
n
SEG
n
+ 1
SEG
n
+ 2
16
18
0
8
1
9
17
2
10
SEG
n
+ 3
19
3
11
SEG
n
+ 4
20
4
12
SEG
n
+ 5
21
5
13
SEG
n
+ 6
22
6
14
SEG
n
+ 7
23
7
15
NSEG=7
3
2
1
0
SEG
n
SEG
n
+ 1
SEG
n
+ 2
14
21
22
16
23
0
7
1
8
15
2
9
SEG
n
+ 3
17
3
10
SEG
n
+ 4
18
4
11
SEG
n
+ 5
19
5
12
SEG
n
+ 6
20
6
13
6
SEG
n
SEG
n
+ 1
SEG
n
+ 2
12
18
19
14
20
0
6
1
7
13
2
8
SEG
n
+ 3
15
21
3
9
SEG
n
+ 4
16
22
4
10
SEG
n
+ 5
17
23
5
11
5
SEG
n
SEG
n
+ 1
SEG
n
+ 2
10
15
20
16
21
12
17
22
0
5
1
6
11
2
7
SEG
n
+ 3
13
18
23
3
8
SEG
n
+ 4
14
19
4
9
4
The 24 segments value is updated by a write access to the Character Mapping Segments Data register
(CMDATA).
Since the CMDATA register can be up to 24 bits whereas a digit can consist of less than 24 segments, a
mask can be configured to write only selected bits: Writing a '1' to a bit in the Character Mapping Data
Mask register (CMDMASK) will mask the corresponding bit in the CMDATA register. This bit will not be
written in display memory when CMDATA register is written. Write a '0' to a bit of CMDMASK to disable
the mask for that bit. The corresponding bit in CMDATA will be written to display memory.
CMDATA is not written to the display memory in one shot, but in a serial way. Serialization takes 24 APB
cycles. The user can check the status of the serial writing by reading the Character Mapping Write Busy
bit in the Status register (STATUS.CMWRBUSY). Any write access to the display memory through
CMDATA/SDATA/ISDATA will be ignored when STATUS.CMWRBUSY is high. Therefore, user must not
write to CMDATA while STATUS.CMWRBUSY is asserted.
The coordinate of a character is defined by Character Mapping Index (CMINDEX) register.
The expected usage model for character mapping is shown below:
Atmel SAM L22G / L22J / L22N [DATASHEET]
Atmel-42402E-SAM L22G / L22J / L22N_Datasheet_Complete-07/2016
1079