17.LED屏接口
17.1 LED 控制卡接口
CH559提供了LED 屏控制卡数据传输接口,内置4级FIFO,支持DMA 和中断,节约CPU处理时间,支持1/2/4路数据线接口。
表17.1.1 LED屏接口相关寄存器列表
名称 | 地址 | 描述 | 复位值 |
LED_STAT | 2880h | LED状态寄存器 | 010x 0000b |
LED_CTRL | 2881h | LED控制寄存器 | 0000 0010b |
LED_FIFO_CN | 2882h | FIFO计数状态寄存器(只读) | 0000 0000b |
LED_DATA | 2882h | LED数据寄存器(只写) | xxxx xxxxb |
LED_CK_SE | 2883h | LED时钟分频设置寄存器 | 0001 0000b |
LED_DMA_AH | 2884h | DMA当前缓冲区地址高字节 | 000x xxxxb |
LED_DMA_AL | 2885h | DMA当前缓冲区地址低字节 | xxxx xxx0b |
LED_DMA | 2884h | LED_DMA_AL 和LED_DMA_AH 组成16位SFR | xxxxh |
LED_DMA_CN | 2886h | LED DMA 剩余计数寄存器 | xxxx xxxxb |
LED_DMA_XH | 2888h | DMA当前辅助缓冲区地址高字节 | 000x xxxxb |
LED_DMA_XL | 2889h | DMA当前辅助缓冲区地址低字节 | xxxx xxx0b |
LED_DMA_X | 2888h | LED_DMA_XL 和LED_DMA_XH 组成16位SFR | xxxxh |
pLED_* | 298*h | 在bXIR_XSFR置1后,该名称用于以pdata类型寻址上述xSFR,比xdata类型寻址更快捷 | |
LED 状态寄存器(LED_STAT):
位 | 名称 | 访问 | 描述 | 复位值 |
7 | bLED_IF_DMA_END | RW | DMA 完成中断标志位,该位为1 表示有中断;该位为0 则无中断。写1清零或写LED_DMA_CN 时清零 | 0 |
6 | bLED_FIFO_EMPTY | RO | FIFO空状态指示位,为1表示FIFO空 | 0 |
5 | bLED_IF_FIFO_REQ | RW | 该位为1 表示请求向FIFO写入数据中断标志位,由FIFO<=2触发;该位为0 则无中断。写1 清零 | 0 |
4 | bLED_CLOCK | R0 | LED 时钟信号的当前电平 | x |
3 | 保留 | RO | 保留 | 0 |
[2:0] | MASK_LED_FIFO_CNT | R0 | LED 的FIFO 当前计数 | 000b |
LED 控制寄存器(LED_CTRL):
位 | 名称 | 访问 | 描述 | 复位值 |
7 | bLED_CHAN_MOD1 | RW | LED 通道模式高位 | 0 |
6 | bLED_CHAN_MOD0 | RW | LED 通道模式低位 | 0 |
5 | bLED_IE_FIFO_REQ | RW | 该位为1 使能请求FIFO数据中断;该位为0 关闭使能 | 0 |
4 | bLED_DMA_EN | RW | 该位为1 使能LED的DMA和DMA中断;为0 则关闭使能 | 0 |
3 | bLED_OUT_EN | RW | 该位为1 使能LED 信号输出;该位为0 则禁止 | 0 |
2 | bLED_OUT_POLAR | RW | LED 数据输出极性控制位,该位为0 则直通输出,数据 0 输出低电平,数据1 输出高电平;该位为1 则反极性输出,数据0 输出高电平,数据1 输出低电平 | 0 |
1 | bLED_CLR_ALL | RW | 该位为1 清空LED 中断标志和FIFO,需要软件清零 | 1 |
0 | bLED_BIT_ORDER | RW | 数据字节的位序控制位,最前位通过LED0 发送,该位为0则LSB低位在前;该位为1则MSB 高位在前 | 0 |
表17.1.2 LED通道模式
bLED_CHAN_MOD1 | bLED_CHAN_MOD0 | 描述 |
0 | 0 | 单通道数据输出:LED0 |
0 | 1 | 双通道数据输出:LED0和LED1 |
1 | 0 | 4 通道数据输出:LED0~LED3 DMA 只使用主缓冲区,按字节依次向LED0~LED3提供数据 |
1 | 1 | 4 通道数据输出:LED0和LED1成组、LED2 和LED3成组 DMA 使用主缓冲区LED_DMA 向LED0和LED1 提供数据,同时使用辅助缓冲区LED_DMA_X 向LED2和LED3 提供数据 |
FIFO计数状态寄存器(LED_FIFO_CN):
位 | 名称 | 访问 | 描述 | 复位值 |
[7:0] | LED_FIFO_CN | RO | FIFO当前数据字节数,仅低3 位有效,高5位固定为0 | 00h |
LED 数据寄存器(LED_DATA):
位 | 名称 | 访问 | 描述 | 复位值 |
[7:0] | LED_DATA | WO | LED 数据端口,用于将数据写入FIFO | xxh |
LED 时钟分频设置寄存器(LED_CK_SE):
位 | 名称 | 访问 | 描述 | 复位值 |
[7:0] | LED_CK_SE | RW | 设置LED 输出时钟的分频系数 | 10h |
DMA 当前缓冲区地址(LED_DMA):
位 | 名称 | 访问 | 描述 | 复位值 |
[7:0] | LED_DMA_AH | RW | 当前DMA 地址高字节,可预置初值,DMA 后自动增加,仅低5位有效,高3位固定为0 | xxh |
[7:0] | LED_DMA_AL | RW | 当前DMA 地址低字节,可预置初值,DMA 后自动增加,仅高7位有效,最低位固定为0,仅支持偶地址 | xxh |
DMA 当前辅助缓冲区地址(LED_DMA_X):
位 | 名称 | 访问 | 描述 | 复位值 |
[7:0] | LED_DMA_XH | RW | 辅助缓冲区当前DMA 地址高字节,可预置初值,DMA 后自动增加,仅低5 位有效,高3位固定为0 | xxh |
[7:0] | LED_DMA_XL | RW | 辅助缓冲区当前DMA 地址低字节,可预置初值,DMA 后自动增加,仅高7 位有效,最低位固定为0,仅支持偶地址 | xxh |
DMA 剩余计数寄存器(LED_DMA_CN):
位 | 名称 | 访问 | 描述 | 复位值 |
[7:0] | LED_DMA_CN | RW | LED_DMA 主缓冲区中当前DMA 剩余计数,以双字节为单位,可预置初值,DMA 操作后自动减少。不含辅助缓冲区LED_DMA_X 中的剩余计数 | 00h |
17.2 LED 控制应用
- 设置LEDC和必要的LED0~LED3 为输出,可选地,设置相应I/O的驱动能力;
- 设置LED_CK_SE 选择LED输出时钟频率;
- 设置DMA起始地址LED_DMA 指向准备输出数据的缓冲区,即主缓冲区;
- 如果是LED 通道模式3,那么还要设置辅助DMA 起始地址LED_DMA_X指向辅助缓冲区;
- 设置LED 控制寄存器LED_CTRL,选择通道模式、输出极性、位顺序、启用中断和DMA 等,例如LED_CTRL = bLED_CHAN_MOD0 | bLED_DMA_EN | bLED_OUT_EN;
- 设置DMA计数,启动DMA发送,或者用写FIFO的方式发送数据;
- 查询或者使用中断处理中断相应状态。