首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

关于外设访问的问题?

PIO寄存器结构

PIO共包含4个固定32位长度的寄存器,映射地址偏移量也是固定的,无论是1bit宽度还是32bit宽度,所占空间都是4x4=16。如果是1bit,寄存器的最低位有效。


[此贴子已经被luoxf7于2004-8-20 14:44:15编辑过]

在PIO编程的时候,不知道你注意到没有,有4个寄存器,分别是piodirection,piodata,pioedgecapture,pioedgecapture。你构建的应该是32bit的nios吧,对应的数据宽度当然是32bit,如果不够,从低位开始,这四个寄存器的用法在datasheet上有详细说明和用法,注意一下PIO当输入的中断的用法。
在交流中前进,共同实现nios的应用。
第二个问题,我还不是特别明白你的意思,我讲一下我的理解,地址和外设的联系你可以仔细看看一下在inc文件夹下的那个excalibur.h头文件。具体输出影响到那个引脚那要看你怎么对引脚分配,这在qutrtusII里面自己分配,IO可以随便分的。
在交流中前进,共同实现nios的应用。

关于外设访问的问题?

1,在SOPC Builder 里面我选择一个PIO(并口的)其基地址可以自己编写,但是我选择其数据宽度的时候,无论是1还是32bits,他给出的地址结束位总是基址+0XF。
请给出解释,谢谢!
2,用NIOS编写程序,在选好外设后,比如它内部带的一个nios练习standard_32,里面对seven_seg_pio的地址给的是0x00000440,位宽是16位,那么请问他是如何将地址和我的外设联系上的,也就是说我怎样知道数据输出后回到影响到那些引脚。
为爱疯狂!!!
谢谢,我知道了。
我自己想到了,其实地址是随便设定的,这个和袁亚东说的一样,只要地址之间不冲突就行。
其实我要问的是,外设比如SC1602D液晶模块,如何去驱动它了。
我们至少要做这样几步:
1,在sopcbuilder中间根据你外设要用到的引脚数,添加相应的PIO模块,设定好位宽。其他比如输入还是输出等等依据具体情况而定。
2,在生成的原理图为LCD外设的输出端分配引脚资源,这时候可以看到输出端是一个11位宽的总线,至于具体哪位分配给那个引脚就由你来定了。这之前你得明白你把LCD的RS,R/W,E和8位数据线和那些引脚联系了。
3,编写程序,这时候你得明白你在第二步定义11位宽的pio数据每一位的具体意义。
一般是第八位做数据位,剩下的3位分别是rs,r/w,e。但是到底是如何的就由第二步的引脚分配决定了。
4,综合,编译,下载了。
为爱疯狂!!!
返回列表