[DSP编程] DSP不能从CPLD外扩的独立按键读入数据 是什么原因,求分析

[复制链接]
2732|20
 楼主| wushaojay 发表于 2014-12-29 14:27 | 显示全部楼层 |阅读模式


这是些的部分CPLD代码  同时DSP向CPLD外扩的LED等是可以写进的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| wushaojay 发表于 2014-12-29 15:16 | 显示全部楼层
测了读写使能引脚和CE引脚在程序运行的时候都是高电平?好奇怪啊 而且 在通过DSP操作外扩的LED寄存器是没有问题的
wangch_sh 发表于 2014-12-29 15:27 | 显示全部楼层
CPLD程序不懂。你读取按键的程序是怎样的?按键地址是多少?
 楼主| wushaojay 发表于 2014-12-29 15:39 | 显示全部楼层
        while(1)
        {
        button = CPLD_Button;
                //scan K1
                if(!(button&0x0001))  
                {
                        if(k1_down==0)
                        {
                                printf("K1 press\n");
                                k1_down = 1;
                        }
                }
                else
                {
                        k1_down = 0;
                }
                //scan K2
                if(!(button&0x0002))  
                {
                        if(k2_down==0)
                        {
                                printf("K2 press\n");
                                k2_down = 1;
                        }
                }
                else
                {
                        k2_down = 0;
                }
                if(!(button&0x0004))  
                {
                        if(k3_down==0)
                        {
                                printf("K3 press\n");
                                k3_down = 1;
                        }
                }
                else
                {
                        k3_down = 0;
                }
                //scan K4
                if(!(button&0x0008))  
                {
                        if(k4_down==0)
                        {
                                printf("K4 press\n");
                                k4_down = 1;
                        }
                }
                else
                {
                        k4_down = 0;
                }
        }
 楼主| wushaojay 发表于 2014-12-29 15:40 | 显示全部楼层
#define CPLD_Button             (*((unsigned int *)0x400001))
这是定义的外扩按键的地址
 楼主| wushaojay 发表于 2014-12-29 15:51 | 显示全部楼层
其实问题就是 把CPLD映射到CE2空间,然后可以向外扩地址写入数据,并且能在CPLD上实现功能,但是CPLD输入的的数据,DSP不能再CE2空间上读取
wangch_sh 发表于 2014-12-29 16:07 | 显示全部楼层
换个空间试试。
00750 发表于 2014-12-29 16:44 | 显示全部楼层
信息太少,没法分析。
zhangmangui 发表于 2014-12-29 23:24 | 显示全部楼层
外扩是独立按键吗  还是矩阵键盘啊   
如果只是独立按键很简单   DSP断只需读数据而已  不需要写数据
VHDL中的第三行   --上升沿触发这句   不能理解啊   

评论

10  发表于 2014-12-31 12:42
 楼主| wushaojay 发表于 2014-12-30 08:58 | 显示全部楼层
zhangmangui 发表于 2014-12-29 23:24
外扩是独立按键吗  还是矩阵键盘啊   
如果只是独立按键很简单   DSP断只需读数据而已  不需要写数据
VHDL ...

外扩的是独立按键,VHDL中第三行读使能引脚 在读数据的时候应该变为低电平的吧 我看时序图是这样的啊
所以就这样写了
 楼主| wushaojay 发表于 2014-12-30 09:35 | 显示全部楼层
zhangmangui 发表于 2014-12-29 23:24
外扩是独立按键吗  还是矩阵键盘啊   
如果只是独立按键很简单   DSP断只需读数据而已  不需要写数据
VHDL ...

发现读出来的数据一直是之前写入的地址 映射到不同空间也是一样的情况
anjf163 发表于 2014-12-30 14:49 | 显示全部楼层
CPLD 与 DSP 之间的三态总线写的是否正确? 不能读,大多是总线没写好。
VHDL 不懂,若是 Verilog 可能还能帮上忙。

评论

10  发表于 2014-12-31 12:43
zhangmangui 发表于 2014-12-30 22:26 | 显示全部楼层
wushaojay 发表于 2014-12-30 09:35
发现读出来的数据一直是之前写入的地址 映射到不同空间也是一样的情况
...

你的VHDL描述   没有地址的判断吗  
应该是给按键分配一个映射地址  
然后描述语言判断读信号触发后  再去判断地址
如果是读按键值得地址   再将按键的值送入到总线  这样比较合理
 楼主| wushaojay 发表于 2014-12-31 09:21 | 显示全部楼层
anjf163 发表于 2014-12-30 14:49
CPLD 与 DSP 之间的三态总线写的是否正确? 不能读,大多是总线没写好。
VHDL 不懂,若是 Verilog 可能还能 ...

总线怎么写? 还是直接在QUARTUS里面设置?
 楼主| wushaojay 发表于 2014-12-31 09:23 | 显示全部楼层
zhangmangui 发表于 2014-12-30 22:26
你的VHDL描述   没有地址的判断吗  
应该是给按键分配一个映射地址  
然后描述语言判断读信号触发后  再 ...

有地址映射的 ,主要是弄成一个片选信号,然后在判断的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| wushaojay 发表于 2014-12-31 09:51 | 显示全部楼层
wushaojay 发表于 2014-12-31 09:21
总线怎么写? 还是直接在QUARTUS里面设置?

果然是总线的问题 已经解决了 真的很感谢
 楼主| wushaojay 发表于 2014-12-31 09:53 | 显示全部楼层
zhangmangui 发表于 2014-12-30 22:26
你的VHDL描述   没有地址的判断吗  
应该是给按键分配一个映射地址  
然后描述语言判断读信号触发后  再 ...

根据你和anjf163的建议,发现真的是总线存在问题 加了这样一段代码就OK了,真是万分感谢你们两个!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| wushaojay 发表于 2014-12-31 09:57 | 显示全部楼层
anjf163 发表于 2014-12-30 14:49
CPLD 与 DSP 之间的三态总线写的是否正确? 不能读,大多是总线没写好。
VHDL 不懂,若是 Verilog 可能还能 ...

真是谢谢你的建议:lol
zhangmangui 发表于 2014-12-31 11:42 | 显示全部楼层
wushaojay 发表于 2014-12-31 09:53
根据你和anjf163的建议,发现真的是总线存在问题 加了这样一段代码就OK了,真是万分感谢你们两个!!
...

恩  你找找我有分享达芬奇系列最好的网站里面
进入都是TI的EVM板   上面只要外扩CPLD都提供VHDL的代码
那个写的很经典
 楼主| wushaojay 发表于 2014-12-31 12:42 | 显示全部楼层
zhangmangui 发表于 2014-12-31 11:42
恩  你找找我有分享达芬奇系列最好的网站里面
进入都是TI的EVM板   上面只要外扩CPLD都提供VHDL的代码
...

好的 谢谢:lol
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

69

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部