17. LED屏接口

17.LED屏接口

17.1 LED 控制卡接口

CH559提供了LED 屏控制卡数据传输接口,内置4级FIFO,支持DMA 和中断,节约CPU处理时间,支持1/2/4路数据线接口。

表17.1.1 LED屏接口相关寄存器列表
名称地址描述复位值
LED_STAT2880hLED状态寄存器010x 0000b
LED_CTRL2881hLED控制寄存器0000 0010b
LED_FIFO_CN2882hFIFO计数状态寄存器(只读)0000 0000b
LED_DATA2882hLED数据寄存器(只写)xxxx xxxxb
LED_CK_SE2883hLED时钟分频设置寄存器0001 0000b
LED_DMA_AH2884hDMA当前缓冲区地址高字节000x xxxxb
LED_DMA_AL2885hDMA当前缓冲区地址低字节xxxx xxx0b
LED_DMA2884hLED_DMA_AL 和LED_DMA_AH 组成16位SFRxxxxh
LED_DMA_CN2886hLED DMA 剩余计数寄存器xxxx xxxxb
LED_DMA_XH2888hDMA当前辅助缓冲区地址高字节000x xxxxb
LED_DMA_XL2889hDMA当前辅助缓冲区地址低字节xxxx xxx0b
LED_DMA_X2888hLED_DMA_XL 和LED_DMA_XH 组成16位SFRxxxxh
pLED_*298*h在bXIR_XSFR置1后,该名称用于以pdata类型寻址上述xSFR,比xdata类型寻址更快捷

LED 状态寄存器(LED_STAT):

名称访问描述复位值
7bLED_IF_DMA_ENDRWDMA 完成中断标志位,该位为1 表示有中断;该位为0 则无中断。写1清零或写LED_DMA_CN 时清零0
6bLED_FIFO_EMPTYROFIFO空状态指示位,为1表示FIFO空0
5bLED_IF_FIFO_REQRW该位为1 表示请求向FIFO写入数据中断标志位,由FIFO<=2触发;该位为0 则无中断。写1 清零0
4bLED_CLOCKR0LED 时钟信号的当前电平x
3保留RO保留0
[2:0]MASK_LED_FIFO_CNTR0LED 的FIFO 当前计数000b

LED 控制寄存器(LED_CTRL):

名称访问描述复位值
7bLED_CHAN_MOD1RWLED 通道模式高位0
6bLED_CHAN_MOD0RWLED 通道模式低位0
5bLED_IE_FIFO_REQRW该位为1 使能请求FIFO数据中断;该位为0 关闭使能0
4bLED_DMA_ENRW该位为1 使能LED的DMA和DMA中断;为0 则关闭使能0
3bLED_OUT_ENRW该位为1 使能LED 信号输出;该位为0 则禁止0
2bLED_OUT_POLARRWLED 数据输出极性控制位,该位为0 则直通输出,数据 0 输出低电平,数据1 输出高电平;该位为1 则反极性输出,数据0 输出高电平,数据1 输出低电平0
1bLED_CLR_ALLRW该位为1 清空LED 中断标志和FIFO,需要软件清零1
0bLED_BIT_ORDERRW数据字节的位序控制位,最前位通过LED0 发送,该位为0则LSB低位在前;该位为1则MSB 高位在前0
表17.1.2 LED通道模式
bLED_CHAN_MOD1bLED_CHAN_MOD0描述
00单通道数据输出:LED0
01双通道数据输出:LED0和LED1
104 通道数据输出:LED0~LED3
DMA 只使用主缓冲区,按字节依次向LED0~LED3提供数据
114 通道数据输出:LED0和LED1成组、LED2 和LED3成组 DMA 使用主缓冲区LED_DMA 向LED0和LED1 提供数据,同时使用辅助缓冲区LED_DMA_X 向LED2和LED3 提供数据

FIFO计数状态寄存器(LED_FIFO_CN):

名称访问描述复位值
[7:0]LED_FIFO_CNROFIFO当前数据字节数,仅低3 位有效,高5位固定为000h

LED 数据寄存器(LED_DATA):

名称访问描述复位值
[7:0]LED_DATAWOLED 数据端口,用于将数据写入FIFOxxh

LED 时钟分频设置寄存器(LED_CK_SE):

名称访问描述复位值
[7:0]LED_CK_SERW设置LED 输出时钟的分频系数10h

DMA 当前缓冲区地址(LED_DMA):

名称访问描述复位值
[7:0]LED_DMA_AHRW当前DMA 地址高字节,可预置初值,DMA 后自动增加,仅低5位有效,高3位固定为0xxh
[7:0]LED_DMA_ALRW当前DMA 地址低字节,可预置初值,DMA 后自动增加,仅高7位有效,最低位固定为0,仅支持偶地址xxh

DMA 当前辅助缓冲区地址(LED_DMA_X):

名称访问描述复位值
[7:0]LED_DMA_XHRW辅助缓冲区当前DMA 地址高字节,可预置初值,DMA 后自动增加,仅低5 位有效,高3位固定为0xxh
[7:0]LED_DMA_XLRW辅助缓冲区当前DMA 地址低字节,可预置初值,DMA 后自动增加,仅高7 位有效,最低位固定为0,仅支持偶地址xxh

DMA 剩余计数寄存器(LED_DMA_CN):

名称访问描述复位值
[7:0]LED_DMA_CNRWLED_DMA 主缓冲区中当前DMA 剩余计数,以双字节为单位,可预置初值,DMA 操作后自动减少。不含辅助缓冲区LED_DMA_X 中的剩余计数00h

17.2 LED 控制应用

  1. 设置LEDC和必要的LED0~LED3 为输出,可选地,设置相应I/O的驱动能力;
  2. 设置LED_CK_SE 选择LED输出时钟频率;
  3. 设置DMA起始地址LED_DMA 指向准备输出数据的缓冲区,即主缓冲区;
  4. 如果是LED 通道模式3,那么还要设置辅助DMA 起始地址LED_DMA_X指向辅助缓冲区;
  5. 设置LED 控制寄存器LED_CTRL,选择通道模式、输出极性、位顺序、启用中断和DMA 等,例如LED_CTRL = bLED_CHAN_MOD0 | bLED_DMA_EN | bLED_OUT_EN;
  6. 设置DMA计数,启动DMA发送,或者用写FIFO的方式发送数据;
  7. 查询或者使用中断处理中断相应状态。