|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
44b0+cpld 请高人指点 |
作者:xurenyi 栏目:ARM技术 |
我现在在44B0的板子上面加了一片CPLD(AETC7128),想在7128里面通过地址译码产生外设的片选,也就是想扩展几个IO口,引了几根地址线,还有GCS2,NWE和NOE,想问能不能实现产生片选,现在在写7128的程序,不知道这条路行得通吗?肯请高人指点一下思路,假设IO32是外设的地址片选,低电平有效,请问这样写可以吗? IO32<=NWE OR GCS2 OR ADDR14 OR ADDR12 OR ADDR11 OR ADDR3 OR ADDR2 OR ADDR2 OR ADDR1 OR NOT ADDR0 这样可以产生地址为0x4000001的扩展IO口吗? 恳请大家给我一点思路或有那位大哥以前就这样做过,那就给小弟一点启发吧!!!! |
2楼: | >>参与讨论 |
作者: xurenyi 于 2005/1/15 19:21:00 发布:
在线等!! 请大家帮忙!!! |
3楼: | >>参与讨论 |
作者: xurenyi 于 2005/1/15 19:32:00 发布:
还有一个问题,想请教大家!! 我因为有很多外设是5V的,还加了4245作双向电平转换,不知道为什么当数据线经过4245时,如果4245的方向设置为双向时,那在跑程序时就会跑飞,如果只设置为输出时,就没有什么问题,真的搞不清什么原因,恳切请大家指点!!! |
4楼: | >>参与讨论 |
作者: xurenyi 于 2005/1/16 17:27:00 发布:
自己顶一下 |
5楼: | >>参与讨论 |
作者: hebeijiang 于 2005/1/16 18:52:00 发布:
如果仅仅是扩展io,不如将数据总线接入cpld将cpld直接做成io接口 这样可以直接驱动5v器件,不用4245进行电平转换。 |
6楼: | >>参与讨论 |
作者: pandafeng 于 2005/1/17 15:30:00 发布:
顶 我用的是XILINX的芯片(XC95108)。 因为它的I/O口电压可以用3.3V,应此就免了电平转换。 对于外设的地址片选,当然不会有问题。但我只会用ABLE,不好对 你列出的表达式说对错。 我还用了44b0的nWait引脚,作慢速的i/o读写的同步。 |
7楼: | >>参与讨论 |
作者: xurenyi 于 2005/1/17 19:00:00 发布:
谢谢楼上兄弟的指点!!! 我其实就是想用CPLD扩展几个IO口,来控制几个慢速外设,在CPLD里面要出来这么几个信号: 1.外部锁存器的片选; 2.外部锁存器的锁存信号,上升沿锁存; 3.外部清零信号; 现在在写数据时,可以用示波器看到数据线上有信号,但就是没锁存. 不知道我上面写的 io32<=NWE OR GCS2 OR ADDR14 OR ADDR12 OR ADDR11 OR ADDR4 OR ADDR3 OR ADDR2 OR ADDR1 OR NOT ADDR0 是否和楼上那位兄弟所说的还要加上等待 nwait 信号了?才能同步. |
8楼: | >>参与讨论 |
作者: xurenyi 于 2005/1/17 19:04:00 发布:
请教pandafeng 我想你肯定做过和我相同的事情,不知是否可以再说详细一点,谢谢!!! |
9楼: | >>参与讨论 |
作者: whbwang 于 2005/1/17 22:15:00 发布:
我的44B0+EPM3128 用于信号隔离,包括数据输入缓冲、输出锁存等。 接口是A0-A3,D0-D7,WE,OE,NGCS2 现在已经可以正常工作 |
10楼: | >>参与讨论 |
作者: pandafeng 于 2005/1/18 2:53:00 发布:
建议 如果io32(锁存信号)写成ABEL 形式是: io32 = NEW # GCS2 # ADDR14 ... # !ADDR0; 应该没问题。 看看44B的rPCONB有没有设nGCS2 把44B的系统时钟降到最低,去掉芯片速度问题。 写个死循环,用示波器单独观察 NWE OR GCS2 是否正常。 |
11楼: | >>参与讨论 |
作者: xurenyi 于 2005/1/18 19:27:00 发布:
谢谢 pandafeng 非常感谢你的指点,不知能否将你的44B0任何一个用扩展IO口来读写外设的一个工程文件给我参考一下,非常感谢!!! xurenyi0@yahoo.com.cn |
12楼: | >>参与讨论 |
作者: xurenyi 于 2005/1/18 19:35:00 发布:
谢谢 whbwang 不知你能否详细谈一下你用 A0-A3,D0-D7,WE,OE,NGCS2 这些信号怎样得到输出锁存信号的,假若锁存信号为IO32,那么它的表达式您是怎么写的,给我参考一下,好吗?不管是用什么语言写的,非常感谢!!! |
13楼: | >>参与讨论 |
作者: littleou 于 2005/1/18 21:23:00 发布:
你用的vhdl还是verilog? 奇怪的写法,给你个参考 always @(posedge iowbuf or posedge reset)//wrirte operation begin if(reset) begin dout[31:0]<=32'h0000; end else if(CS) begin case (AddrBus[2:0]) 3'B100 : dout[7:0] <= DataBus; 3'B101 : dout[15:8] <= DataBus; 3'B110 : dout[23:16] <= DataBus; 3'b111 : dout[31:24] <= DataBus; default : dout <= dout; endcase end end // always @ (posedge iowbuf or posedge rest) * - 本贴最后修改时间:2005-1-18 21:27:16 修改者:littleou |
14楼: | >>参与讨论 |
作者: pandafeng 于 2005/1/19 3:13:00 发布:
例子 锁存器例子:(440写入地址0x0AXXXXX1) ABEL语法 ///////////////////////////// MODULE DECODE Title 'DECODE' Declarations GPIOW PIN; GCS5 PIN; DB7..DB0 PIN; // 连接44B数据总线 DB = [DB7..DB0]; ADDR3..ADDR0 PIN;//44B地址 CS0 NODE ISTYPE 'COM';//地址译码节点 LATCH_Q7..LATCH_Q0 PIN ISTYPE 'REG';//触发器 LATCH = [LATCH_Q7..LATCH_Q0]; Equations CS0 =!GCS5 & !ADDR3 & !ADDR2 & !ADDR1 & ADDR0; LATCH.CLK = 0; LATCH:=0; LATCH.AP = !GPIOW & CS0 & DB; LATCH.AR = !GPIOW & CS0 & !DB; end DECODE //////////////////////////////// 44b 使用nGCS5 /////////////////////////////// #define pIOBASE (volatile unsigned CHAR*)0x0a000000 //init nGCS5 rPCONB |= (1<<10); // PB10=nGCS5; rBWSCON &= ~(3<<20); // bus width = 8; //rBANKCON5 如有需要,才设置 //写锁存器 *(pIOBASE+1) = 0xaa; |
15楼: | >>参与讨论 |
作者: xurenyi 于 2005/1/19 19:31:00 发布:
谢谢pandafeng 及楼上各位兄弟的指点 我还有一个问题想请教大家,现在我在FLASH里面写了一个程序,复位以后可以脱机运行了,但我发现当我把其他程序载到RAM里面运行时,程序载完单步运行以后出现下面的情况, ENTRY b Resethandler b handlerundef ....... 它不能进复位中断向量段,跑到 b handlerundef 那里,但我用写到FLASH里面的工程文件作为模板文件,在SDT2.51里面,把所有的程序和头文件加进来链接所生成的映象文件到RAM里面运行又可以单步跑.我自己觉得好像把其它的程序载进RAM里面运行,按全速运行以后,它好像还是在跑FLASH里面的程序,FLSH里面的程序是控制闪灯的,当把其它的程序载进RAM里面运行按全速运行以后,灯也在闪,而RAM里面载的程序并没有闪灯的程序,请大家帮我分析一下,谢谢!!! |
16楼: | >>参与讨论 |
作者: pandafeng 于 2005/1/20 5:08:00 发布:
SDT251我只用过几天! 把main改为: void Main() { while(1); } 看看正常不? 跟踪一下看哪里产生了Exception。 |
17楼: | >>参与讨论 |
作者: xurenyi 于 2005/1/20 21:48:00 发布:
请大家帮忙 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |