4. 实验原理
l 内容:利用ADSP-BF561处理器EBIU(外部总线接口单元)与CPLD的无缝连接,
通过对异步Bank3的写操作,从而实现数码管和LED的程序控制。
l 原理:利用CPLD做一个LED控制器,用于动态扫描LED的显示。通过BF561的EBIU接口控制LED的显示字符。
开发板上设计了2个数码管和8个LED指示灯。数码管和LED复用数据总线,采用74HC245作为总线驱动芯片。CPLD内部固化了一个LED控制器,控制器采用动态扫描的方式维持LED显示。使用时ADSP-BF561处理器只需通过EBIU接口向CPLD内部的LED控制器送入需要显示的内容,LED控制器会自动将所要显示的数据锁存,并通过扫描维持该数据的显示,直到BF561重新向控制器送入数据信息。
CPLD与ADSP-BF561处理器的内部接口配置
LEDCS | LED_A1 | LED_A0 | pLED_DAT_OUT | 说明 |
上升沿 | 0 | 0 | XX | 数码管0显示数据 |
上升沿 | 0 | 1 | XX | 数码管1显示数据 |
上升沿 | 1 | 0 | XX | LED显示数据 |
上升沿 | 1 | 1 | 保留 | 保留 |
表1
其中pLED_DAT_OUT的数据D0-D7分别对应的数码管的8段a-h。
实验时驱动代码的编写过程要按照以下步骤进行
第一:向pCtrOut_Flag_OE寄存器写入数据,使能驱动器HC245 LED_OE=0。
第二:选择写入地址向pCtrOut_Flag_B对应的LED_A1和LED_A0写入数据。
第三:向pLED_DAT_OUT寄存器写入要显示的参数。
第四:控制pCtrIner_Flag寄存器的LEDCS位,使其产生一个上升沿,此时数据写入相应的寄存器:
pCtrOut_Flag_OE映射的物理地址为:0x20350000
pCtrIner_Flag映射的物理地址为:0x20360000
pCtrOut_Flag_B映射的物理地址为:0x20380000
pLED_DAT_OUT映射的物理地址为:0x20390000