2、FontRAM
FONTRAM是字体集图像的内存,字体集图像将在SpiFlash存储器(或者其他外部存储器)上准备,并将下载到FontRAM,当前的FontRam的大小是10KBytes。字体项的最大数量取决于FontRAM的大小。
2.1、字体索引值
在FW将SPiFlash的字体集图像下载到FontRAM后,FW使用索引值,FONT索引值。如果FW在16*26字体集上使用0xA0 FontRam索引值,该字体项的实际位置将位于4160字节(0xA0*16*26/8)上。因此,FontRAM索引0xA0表示FongRAM中的0xA0*R391[6:0]位置。
R300[4] : font width info. 0:12 pixels 1:16 pixels R390[4:0] : font height (*2) R391[6:0]: font size in Byte |
表2.2:FontRAM索引相关的寄存器。
2.2、FontImages
2.3、多BPP图像
为了支持Multi_BPP字体,TW8836具有多BPP开始寄存器
Start of Multi-BPP registers 2BPP: R305[1:1]R30B[7:0] 3BPP: R305[2:2]R393[7:0] 4BPP: R305[3:3]R394[7:0] |
首先找到1BPP字体,然后找到2BPP、3BPP、4BPP字体。TW8836不允许颠倒和混合的顺序。
2.4、FOntRAM FIFO
FontRAM FIFO有8字节并在VSync区域更新。
如果下载的字体图像数据大于FIFO大小,请在VSync上将其关闭,然后更新数据
2.5、下载字体图像
此处仅提供函数名,我用的是内部FontRAM,直接写入字模数组的方式。
void FOsdFontSetFifo(int8u fOn);
void FOsdDownloadFontBySerial(int16u dest_font_index, int8u *dat, int8u unit_size, int8u unit_num);备注:
dest_font_index:fontRam地址
dat:字模数组
unit_size:一个字模数组的大小,计算方式:假设字模像素是16*16,则unit_size=16*16/8 = 32,you see?
unit_num:字模的个数