-
找嘉立创吧,一千应该不用吧?
-
26楼"弥补了总线仲裁时间不易预估的不稳定因素,",我现在就想知道,总线仲裁的最坏情况下多久时间可以分配给优先级最高的DMA请求,这个时间太长的话,DMA这个请求还没处理,下一个请求又来了,这不就丢数了么? ...
z_no1 发表于 2010-12-7 09:20
关于每个DMA周期的具体时间,ST早有一篇应用笔记详细地给出了计算方法,不必“墙裂妖球”,找来看看就好。下面贴图是核心部分:
STM32_DMA_Latency.GIF
(38.01 KB)
下载次数:0
2010-12-7 10:01
AN2548 - Using the STM32F101xx and STM32F103xx DMA controller.pdf (141.81 KB)
下载次数:3
2010-12-7 10:01
-
我用RLINK仿真,发现RST_SR的IWDG复位标志被置位,也就是说看门狗已经溢出,但是芯片没有复位,见鬼了!
-
感谢fpcc回复,应该不是寄存器的原因。因为代码我放到购买的开发板上是没有问题的。
最近我又做了进一步的测试,发现程序在NBOOT中,从汇编跳到C语言的时候,程序才跑飞了。初步认定是SDRAM电路有问题。我对SDRAM做了如下测试。向0X30000000到0X30000400地址分别写入32位0XAAAAAAAA与0x55555555,再读出,并通过串口打印出。发现写入的数据0xaaaaaaaa和0x55555555都是正确的。由此证明32位的数据线是没有问题的。
于是我又做了如下测试,向0X30000000到0X300003ff地址中写入32位垒加数。每加一个地址数字加1,例如:
地址 0X30000000 写入 数值0X00000000
地址 0X30000001 写入 数值0X00000001
地址 0X30000002 写入 数值0X00000002
----------------------
地址 0X300003ff 写入 数值0X000003ff
0X400个数据都写完之后,再统一读出这个0X400个数据。发现我的做的板子打印的数据如下所示:
80 00 00 00 81 00 00 00 82 00 00 00 83 00 00 00 84 00 00 00 85 00 00 00 86 00 ~~~~~
90 00 00 00 91 00 00 00 92 00 00 00 93 00 00 00 94 00 00 00 95 00 00 00 96 00 ~~~~~
A0 00 00 00 A1 00 00 00 A2 00 00 00 A3 00 00 00 A4 00 00 00 A5 00 00 00 A6 00 ~~~~~
B0 00 00 00 B1 00 00 00 B2 00 00 00 B3 00 00 00 B4 00 00 00 B5 00 00 00 B6 00 ~~~~~
80 00 00 00 81 00 00 00 82 00 00 00 83 00 00 00 84 00 00 00 85 00 00 00 86 00 ~~~~~
90 00 00 00 91 00 00 00 92 00 00 00 93 00 00 00 94 00 00 00 95 00 00 00 96 00 ~~~~~
A0 00 00 00 A1 00 00 00 A2 00 00 00 A3 00 00 00 A4 00 00 00 A5 00 00 00 A6 00 ~~~~~
B0 00 00 00 B1 00 00 00 B2 00 00 00 B3 00 00 00 B4 00 00 00 B5 00 00 00 B6 00 ~~~~~
80 00 00 00 81 00 00 00 82 00 00 00 83 00 00 00 84 00 00 00 85 00 00 00 86 00 ~~~~~
90 00 00 00 91 00 00 00 92 00 00 00 93 00 00 00 94 00 00 00 95 00 00 00 96 00 ~~~~~
A0 00 00 00 A1 00 00 00 A2 00 00 00 A3 00 00 00 A4 00 00 00 A5 00 00 00 A6 00 ~~~~~
B0 00 00 00 B1 00 00 00 B2 00 00 00 B3 00 00 00 B4 00 00 00 B5 00 00 00 B6 00 ~~~~~
C0 00 00 00 C1 00 00 00 C2 00 00 00 C3 00 00 00 C4 00 00 00 C5 00 00 00 C6 00 ~~~~~
D0 00 00 00 D1 00 00 00 D2 00 00 00 D3 00 00 00 D4 00 00 00 D5 00 00 00 D6 00 ~~~~~
E0 00 00 00 E1 00 00 00 E2 00 00 00 E3 00 00 00 E4 00 00 00 E5 00 00 00 E6 00 ~~~~~
F0 00 00 00 F1 00 00 00 F2 00 00 00 F3 00 00 00 F4 00 00 00 F5 00 00 00 F6 00 ~~~~~
80 01 00 00 81 01 00 00 82 01 00 00 83 01 00 00 84 01 00 00 85 01 00 00 86 01 ~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
而购买的开发板,打印数据如下:
00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 06 00 ~~~~~
10 00 00 00 11 00 00 00 12 00 00 00 13 00 00 00 14 00 00 00 15 00 00 00 16 00 ~~~~~
20 00 00 00 21 00 00 00 22 00 00 00 23 00 00 00 24 00 00 00 25 00 00 00 26 00 ~~~~~
30 00 00 00 31 00 00 00 32 00 00 00 33 00 00 00 34 00 00 00 35 00 00 00 36 00 ~~~~~
40 00 00 00 41 00 00 00 42 00 00 00 43 00 00 00 44 00 00 00 45 00 00 00 46 00 ~~~~~
50 00 00 00 51 00 00 00 52 00 00 00 53 00 00 00 54 00 00 00 55 00 00 00 56 00 ~~~~~
60 00 00 00 61 00 00 00 62 00 00 00 63 00 00 00 64 00 00 00 65 00 00 00 66 00 ~~~~~
70 00 00 00 71 00 00 00 72 00 00 00 73 00 00 00 74 00 00 00 75 00 00 00 76 00 ~~~~~
80 00 00 00 81 00 00 00 82 00 00 00 83 00 00 00 84 00 00 00 85 00 00 00 86 00 ~~~~~
90 00 00 00 91 00 00 00 92 00 00 00 93 00 00 00 94 00 00 00 95 00 00 00 96 00 ~~~~~
A0 00 00 00 A1 00 00 00 A2 00 00 00 A3 00 00 00 A4 00 00 00 A5 00 00 00 A6 00 ~~~~~
B0 00 00 00 B1 00 00 00 B2 00 00 00 B3 00 00 00 B4 00 00 00 B5 00 00 00 B6 00 ~~~~~
C0 00 00 00 C1 00 00 00 C2 00 00 00 C3 00 00 00 C4 00 00 00 C5 00 00 00 C6 00 ~~~~~
D0 00 00 00 D1 00 00 00 D2 00 00 00 D3 00 00 00 D4 00 00 00 D5 00 00 00 D6 00 ~~~~~
E0 00 00 00 E1 00 00 00 E2 00 00 00 E3 00 00 00 E4 00 00 00 E5 00 00 00 E6 00 ~~~~~
F0 00 00 00 F1 00 00 00 F2 00 00 00 F3 00 00 00 F4 00 00 00 F5 00 00 00 F6 00 ~~~~~
00 01 00 00 01 01 00 00 02 01 00 00 03 01 00 00 04 01 00 00 05 01 00 00 06 01 ~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
因为数据线前面的试验表明是没有问题,所以从数据的显示现象,感觉上是我做板子的第7位地址线一直是高电平,应该是第7位地址线与VCC短接。但后来发现SDRAM地址线是行和列复用的,不太像是地址线有问题。
出现以上现象,希望有了解SDRAM或ARM的高手跳出来指点一下,小弟在此先感谢了。
备注: 我的SDRAM是两片HY57V561620FTP-H的SDRAM .CPU为S3C2440.
-
mcp_read中使用两种方法读取数据,前一个#if 0到#endif用的是gpc口的spi功能;后一个是直接使用GPC口模拟的spi功能,模拟的比较简单,能够读出数据,就是前一种使用芯片提供的SPI功能读不出数据
-
Peasant_Lee大哥,最近在哪呢啊?
-
系统跑不起来有很多情况的,你没给出任何出错的信息,没有人会知道是什么出问题的
-
这个思想的话,我也明白,但是就是不会写
-
接收指定ID,只跟过滤器和屏蔽器的设置有关
-
看看周立功的那本2410 相关的书籍。有的。
-
2# 版主 1对1是:先设置好地址,9位通信,进入静默模式里并设置地址标记检测(WAKE=1),这样在收到匹配的地址后UASRT被唤醒,然后转为8位通信接收后面的数据,接收完成之后再次进入静默模式9位通信状态,等待下次被匹配的地址唤醒。
问题是好像没有一个广播地址,可以把所有stm32全部唤醒,接收广播类数据!
求香版主指点!
-
开了啊,你是指我的手持设备的端口开了吗?我用PC连服务器都能连上的。
-
还有一疑惑,应该说是不清楚吧,
用STM32F103,72MHz HCLK下,按上述二个DMA向同一GPIO传送数据时,GPIO端数据更新最快能到多少?不知道怎样计算,还得烦请香版主出手帮助!
-
周立功的技术支持,广州那边比较强,上海这边就不谈了,绝对低水准。
-
这是用高版本库的一个初学者的典型问题
你在 core_cm3.c 文件里包含 core_cm3.h 了么?
-
你的数据发送速度是不是太快了,慢点试试看。
-
回复2楼:没有加上拉电阻,是否必须要加呢?六个通道中为什么有3个正常,3个不正常?
回复3楼:这个顺序我也试过,但是效果是一样的。
-
你的芯片里面至少要跑两套程序
A. 用来更新固件
B. 正常工作的
平时工作时用B
需要更新时需要能从B转到A,用A来更换B
-
顶一下,我不信这样的问题只被我碰到!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
谢谢