[ZLG-ARM] D12初始化求救

[复制链接]
 楼主| straw_2005 发表于 2007-6-17 12:37 | 显示全部楼层 |阅读模式
我的CPU是2220,按照2210开发板做了D12,可以控制softconnect,因为可以看到LED在闪,可是每次读D12的<br />ID都为0x1212,但是用FB命令设置DMA后,然后再读出是对的,也就是读两个字节就错,而且第二个字节跟第一个字节一样,读D12中断寄存器就为0x4040,这个问题我找了很久不知道怎么回事.我在内存里看,当发送读ID命令FD的时候发现从0x82000000(包括)以后的内存区全变为0x1212,而我用好的开发板44B0(D12 USB可以正常运行)发现,当发送FD命令后,相应的内存区(由于CS不同,这里是0x2000000)0x2000000为0x12,0x2000001为0x10,以后的全为0.补充一下,用FB命令发现设置后,0x82000000以后的内存区域也全部为所设置的值,而不是就只有0x82000000&nbsp;这个地址上为设置的值,郁闷啊,请ZLG给解释一下啊,都急死了,2210跟2220是兼容的吧在这里?
 楼主| straw_2005 发表于 2007-6-17 13:01 | 显示全部楼层

补充相关图片

我用的是ZLG提供的代码,也就是2200开发板光盘里的代码<br /><br />44B0发送FD命令后<br />0x02000000&nbsp;&nbsp;12&nbsp;10&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00<br />0x02000010&nbsp;&nbsp;12&nbsp;10&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00<br />0x02000020&nbsp;&nbsp;12&nbsp;10&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00<br />0x02000030&nbsp;&nbsp;12&nbsp;10&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;0x02000040&nbsp;&nbsp;12&nbsp;10&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;0x02000050&nbsp;&nbsp;12&nbsp;10&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;<br /><br />2220发送FD命令后<br /><br />0x82000000&nbsp;&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;<br />0x82000010&nbsp;&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;<br />0x82000020&nbsp;&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;<br />0x82000030&nbsp;&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;<br />0x82000040&nbsp;&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;12&nbsp;
smartcode 发表于 2007-6-18 08:32 | 显示全部楼层

可能是时序问题

D12要求片选信号比读写信号慢结束,而ARM的片选和读写信号是同时开始、同时结束的,所以要在硬件上加延时。<br />如果上面这点你有做到,那还有可能是你把BANK总线读写速度配置的太快了,速度降低一点试一下。
 楼主| straw_2005 发表于 2007-6-18 13:39 | 显示全部楼层

谢谢关注

恩好的,晚上回去我按照你说的仔细看看,多谢关注哦&nbsp;
 楼主| straw_2005 发表于 2007-6-18 15:03 | 显示全部楼层

一问

D12要求片选信号比读写信号慢结束,而ARM的片选和读写信号是同时开始、同时结束的,所以要在硬件上加延时。-----------&gt我查了下datasheet,参数如下<br />&nbsp;&nbsp;&nbsp;&nbsp;Symbol&nbsp;&nbsp;&nbsp;&nbsp;Parameter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Min&nbsp;&nbsp;Max&nbsp;&nbsp;&nbsp;Unit<br /><br />d12:tRHCH&nbsp;&nbsp;&nbsp;&nbsp;RD_N&nbsp;HIGH&nbsp;to&nbsp;CS_N&nbsp;(DMACK_N)&nbsp;HIGH&nbsp;time&nbsp;&nbsp;&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ns<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />2220:tCSHOEH&nbsp;&nbsp;CS&nbsp;HIGH&nbsp;to&nbsp;OE&nbsp;HIGH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-5&nbsp;&nbsp;&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ns<br /><br />也就是说D12跟LPC2220在读时序上应该是匹配的,应该不需要加硬件延时吧?速度配置我再看代码!<br /><br />这个问题希望大家能继续讨论下去!
 楼主| straw_2005 发表于 2007-6-25 19:10 | 显示全部楼层

请教

(7)工程模板配置外部RAM和外部FLASH&nbsp;ROM总线的访问速度是适应于大部分型号的RAM与FLASH&nbsp;ROM的。对于EasyARM2200开发板上的RAM与FLASH&nbsp;ROM的型号,必须重新配置控制总线有关参数的BCFG0和BCFG1寄存器,这样程序的运行速度才能跟上PDIUSBD12的运行速度。这些值的配置的具体方法见LPC2200数据手册以及你所使用的RAM与FLASH&nbsp;ROM的数据手册。程序的运行速度主要与CPU主频与外部RAM、FLASH速度相关。这方面在模板的target.c的TargetResetInit()函数中修改。如程序清单1所<br />#ifdef&nbsp;__DEBUG&nbsp;//开发板上JP6接为:Bank0-RAM,Bank1-Flash,JP7接为:OUTSIDE<br />MEMMAP&nbsp;=&nbsp;0x3;&nbsp;//remap<br />BCFG0&nbsp;=&nbsp;0x10000400;&nbsp;//外部RAM<br />BCFG1&nbsp;=&nbsp;0x10000460;&nbsp;//外部Flash<br />#endif<br />#ifdef&nbsp;__OUT_CHIP&nbsp;//开发板上JP6接为:Bank0-Flash,Bank1-RAM,JP7接为:OUTSIDE<br />MEMMAP&nbsp;=&nbsp;0x3;&nbsp;//remap<br />BCFG0&nbsp;=&nbsp;0x10000460;&nbsp;//外部FLASH<br />BCFG1&nbsp;=&nbsp;0x10000400;&nbsp;//外部RAM<br />#endif<br />#ifdef&nbsp;__IN_CHIP&nbsp;//开发板上JP6接为:Bank0-RAM,Bank1-Flash,JP7接为:INSIDE<br />MEMMAP&nbsp;=&nbsp;0x1;&nbsp;//remap<br />BCFG0&nbsp;=&nbsp;0x10000400;&nbsp;//外部RAM<br />BCFG1&nbsp;=&nbsp;0x10000460;&nbsp;//外部Flash<br />#endif<br />请问大侠们下面是什么意思:我的问题可能是这里么?特别请ZLG看下<br />对于EasyARM2200开发板上的RAM与FLASH&nbsp;ROM的型号,必须重新配置控制总线有关参数的BCFG0和BCFG1寄存器,这样程序的运行速度才能跟上PDIUSBD12的运行速度。
 楼主| straw_2005 发表于 2007-6-27 22:58 | 显示全部楼层

失望

没有人知道这个问题么?我对CLKOUT设置后用示波器看了,CLKOUT是可以设置进去的,可就是读ID始终不对,<br /><br />ZLG的支持感觉也不过如此啊,连这个问题也不敢答复一下郁闷
 楼主| straw_2005 发表于 2007-7-2 08:39 | 显示全部楼层

结帖+失望

如题&nbsp;
zlgarm 发表于 2007-7-2 12:19 | 显示全部楼层

解决方法

&nbsp;&nbsp;&nbsp;&nbsp;LPC22100&nbsp;的片选信号CS&nbsp;与OE&nbsp;几乎同时结束,而PDIUSBD12&nbsp;要求片选信号比读信号慢结束至少5ns。<br />&nbsp;&nbsp;&nbsp;&nbsp;为了解决这个问题,必须延迟CS&nbsp;信号的结束时间。解决的方法是:在LPC2210&nbsp;片选CS&nbsp;输出到PDIUSBD12&nbsp;的CS_N&nbsp;引脚之间串两个门,起到延迟信号的作用。<br />&nbsp;&nbsp;&nbsp;&nbsp;请发Email到usbdriver@zlgmcu.com,索取一份更加详细的说明.在email中写明你的开发板的序列号及你的要求.
 楼主| straw_2005 发表于 2007-7-2 13:11 | 显示全部楼层

没有串门,问题已经解决,谢谢

应该早点给个说明,不过还是挺谢谢的&nbsp;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

9

帖子

1

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