打印
[DSP编程]

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

[复制链接]
1658|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wushaojay|  楼主 | 2014-12-29 14:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
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;
                }
        }

使用特权

评论回复
5
wushaojay|  楼主 | 2014-12-29 15:40 | 只看该作者
#define CPLD_Button             (*((unsigned int *)0x400001))
这是定义的外扩按键的地址

使用特权

评论回复
6
wushaojay|  楼主 | 2014-12-29 15:51 | 只看该作者
其实问题就是 把CPLD映射到CE2空间,然后可以向外扩地址写入数据,并且能在CPLD上实现功能,但是CPLD输入的的数据,DSP不能再CE2空间上读取

使用特权

评论回复
7
wangch_sh| | 2014-12-29 16:07 | 只看该作者
换个空间试试。

使用特权

评论回复
8
00750| | 2014-12-29 16:44 | 只看该作者
信息太少,没法分析。

使用特权

评论回复
9
zhangmangui| | 2014-12-29 23:24 | 只看该作者
外扩是独立按键吗  还是矩阵键盘啊   
如果只是独立按键很简单   DSP断只需读数据而已  不需要写数据
VHDL中的第三行   --上升沿触发这句   不能理解啊   

使用特权

评论回复
评论
wushaojay 2014-12-31 12:42 回复TA
10 
10
wushaojay|  楼主 | 2014-12-30 08:58 | 只看该作者
zhangmangui 发表于 2014-12-29 23:24
外扩是独立按键吗  还是矩阵键盘啊   
如果只是独立按键很简单   DSP断只需读数据而已  不需要写数据
VHDL ...

外扩的是独立按键,VHDL中第三行读使能引脚 在读数据的时候应该变为低电平的吧 我看时序图是这样的啊
所以就这样写了

使用特权

评论回复
11
wushaojay|  楼主 | 2014-12-30 09:35 | 只看该作者
zhangmangui 发表于 2014-12-29 23:24
外扩是独立按键吗  还是矩阵键盘啊   
如果只是独立按键很简单   DSP断只需读数据而已  不需要写数据
VHDL ...

发现读出来的数据一直是之前写入的地址 映射到不同空间也是一样的情况

使用特权

评论回复
12
anjf163| | 2014-12-30 14:49 | 只看该作者
CPLD 与 DSP 之间的三态总线写的是否正确? 不能读,大多是总线没写好。
VHDL 不懂,若是 Verilog 可能还能帮上忙。

使用特权

评论回复
评论
wushaojay 2014-12-31 12:43 回复TA
10 
13
zhangmangui| | 2014-12-30 22:26 | 只看该作者
wushaojay 发表于 2014-12-30 09:35
发现读出来的数据一直是之前写入的地址 映射到不同空间也是一样的情况
...

你的VHDL描述   没有地址的判断吗  
应该是给按键分配一个映射地址  
然后描述语言判断读信号触发后  再去判断地址
如果是读按键值得地址   再将按键的值送入到总线  这样比较合理

使用特权

评论回复
14
wushaojay|  楼主 | 2014-12-31 09:21 | 只看该作者
anjf163 发表于 2014-12-30 14:49
CPLD 与 DSP 之间的三态总线写的是否正确? 不能读,大多是总线没写好。
VHDL 不懂,若是 Verilog 可能还能 ...

总线怎么写? 还是直接在QUARTUS里面设置?

使用特权

评论回复
15
wushaojay|  楼主 | 2014-12-31 09:23 | 只看该作者
zhangmangui 发表于 2014-12-30 22:26
你的VHDL描述   没有地址的判断吗  
应该是给按键分配一个映射地址  
然后描述语言判断读信号触发后  再 ...

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

使用特权

评论回复
16
wushaojay|  楼主 | 2014-12-31 09:51 | 只看该作者
wushaojay 发表于 2014-12-31 09:21
总线怎么写? 还是直接在QUARTUS里面设置?

果然是总线的问题 已经解决了 真的很感谢

使用特权

评论回复
17
wushaojay|  楼主 | 2014-12-31 09:53 | 只看该作者
zhangmangui 发表于 2014-12-30 22:26
你的VHDL描述   没有地址的判断吗  
应该是给按键分配一个映射地址  
然后描述语言判断读信号触发后  再 ...

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

使用特权

评论回复
18
wushaojay|  楼主 | 2014-12-31 09:57 | 只看该作者
anjf163 发表于 2014-12-30 14:49
CPLD 与 DSP 之间的三态总线写的是否正确? 不能读,大多是总线没写好。
VHDL 不懂,若是 Verilog 可能还能 ...

真是谢谢你的建议:lol

使用特权

评论回复
19
zhangmangui| | 2014-12-31 11:42 | 只看该作者
wushaojay 发表于 2014-12-31 09:53
根据你和anjf163的建议,发现真的是总线存在问题 加了这样一段代码就OK了,真是万分感谢你们两个!!
...

恩  你找找我有分享达芬奇系列最好的网站里面
进入都是TI的EVM板   上面只要外扩CPLD都提供VHDL的代码
那个写的很经典

使用特权

评论回复
20
wushaojay|  楼主 | 2014-12-31 12:42 | 只看该作者
zhangmangui 发表于 2014-12-31 11:42
恩  你找找我有分享达芬奇系列最好的网站里面
进入都是TI的EVM板   上面只要外扩CPLD都提供VHDL的代码
...

好的 谢谢:lol

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

69

帖子

2

粉丝