2005xxg 发表于 2008-12-17 12:36:45

自己吹吹,本人用AT91sam7x256已经是很熟了,大家有啥问题可以来讲讲。【恢复】

自己吹吹,本人用AT91sam7x256已经是很熟了,大家有啥问题可以来讲讲。

menis2003 发表于 2008-12-17 16:53:35

请问AT91SAM7E(512)中的DMA(PDC)可以接收并行14bit的数据吗? 





如果可以,datasheet上却是如下写的(注意用<<<<  >>>>括出来的部分); 





26.1 Overview 



The Peripheral DMA Controller (PDC) transfers data between on-chip <<<<<serial peripherals>>>>suchas 

the UART, USART, SSC, SPI, MCI and the on- and off-chip memories. Using the Peripheral 

DMA Controller avoids processor intervention and removes the processor interrupt-handling 

overhead. This significantly reduces the number of clock cycles required for a data transfer and, 

as a result, improves the performance of the microcontroller and makes it more power efficient. 

The PDC channels are implemented in pairs, each pair being dedicated to a particular peripheral. 

One channel in the pair is dedicated to the receiving channel and one to the transmitting 

channel of each UART, USART, SSC and SPI. 



根据这段话能理解成为DMA只能串行的接受数据吗??

34480016 发表于 2008-12-17 18:00:58

呵呵,楼主这么自信,搞个开发板,搞些教程让大家学习一下

panxiaoku 发表于 2008-12-17 18:27:46

请帮忙分析下J-link!

2005xxg 发表于 2008-12-18 12:50:51

【1楼】 menis2003 问题: 请问AT91SAM7E(512)中的DMA(PDC)可以接收并行14bit的数据吗?  



请问,并行14bit的数据是啥意思,是来自并行外设的?还是一个14bit的数据寄存器?

2005xxg 发表于 2008-12-18 12:52:46

34480016 晕来晕去 呵呵,楼主这么自信,搞个开发板,搞些教程让大家学习一下

我的确想写写教程,包括usb和网络的使用,usb呢以一个USB数据采集卡为例,网络呢以lwip为例。

2005xxg 发表于 2008-12-18 12:54:06

panxiaoku 小苦 请帮忙分析下J-link!

分析jlink的使用还是原理?还是如何做盗版jlink,做盗版jlink,这个我不会。

panxiaoku 发表于 2008-12-18 12:59:40

J-link里不是用的ATMEL的ARM吗?是想请您分析一下J-Link的原理啊!

2005xxg 发表于 2008-12-18 13:11:31

我说的是我用熟了at91asm7x256,这个与jlink有关系吗?

chutiange_c 发表于 2008-12-18 13:12:59

./emotion/em025.gif飘过

本贴被 chutiange_c 编辑过,最后修改时间:2008-12-18,13:13:28.

rtos 发表于 2008-12-18 13:14:08

给个ADS工程,能够输出串口吧;有块7x256板子串口不能用,很郁闷。。。



或者keil ULink的也行:-P

本贴被 rtos 编辑过,最后修改时间:2008-12-18,13:14:49.

panxiaoku 发表于 2008-12-18 13:21:02

我是说J-link不就是那个做的吗??前辈能给分析一下吗??想知道里面的原理!!

2005xxg 发表于 2008-12-18 13:27:10

神州7号里面也是有arm做的,给你分析分析神州7号的原理?

panxiaoku 发表于 2008-12-18 13:29:26

算了,前辈不会就算了!也不用这么说吧!!!那你说用的很熟了是什么意思?是所有寄存器您都明白是什么意思??都明白怎么配置了????

bear1394 发表于 2008-12-18 14:18:45

顶lz!

2005xxg 发表于 2008-12-18 14:48:57

熟了,是大部分的寄存器和使用都会了,我没敢说100%的精通。

10楼的串口程序,晚上我发上来。

panxiaoku 发表于 2008-12-18 14:52:27

对不起,楼主,给你添麻烦了,还请包涵!

camtime 发表于 2008-12-18 15:07:08

精华啊,精华啊 -- LZ

很熟的人应该拿得出来.

bcndance 发表于 2008-12-18 15:14:11

请问LZ,7X256的JTAG接法,TDO需要上拉么?

2005xxg 发表于 2008-12-18 15:16:17

7X256的JTAG接法,TDO需要上拉么?

需要上拉,保险。

ralfak 发表于 2008-12-19 12:07:57

楼主挺自信,你要是熟悉了所有例程,你可以把7X256从启动过程到中断处理先讲一遍。

然后针对uc/os和 freertos讲讲系统移植。

然后针对SPI访问SD卡讲讲文件系统。

然后针对EMAC讲讲uip或者lwip

然后针对can讲讲CAN总线。

然后针对DMA讲讲3个在操作系统上的工作

可以讲讲如何让系统定时器和DEBUG串口同时工作

要研究的工作挺多。

h2dos 发表于 2008-12-19 12:13:17

20楼强_暴./emotion/em006.gif

2005xxg 发表于 2008-12-19 13:34:48

除了下面的2条,有啥难的?

然后针对can讲讲CAN总线。 

然后针对DMA讲讲3个在操作系统上的工作 

Embedtech 发表于 2008-12-19 13:55:56

Jlink与7X256没有任何关系的.



期待楼主的教程中.

ralfak 发表于 2008-12-19 14:23:48

撅了半天

一没有一个电路,

二没有一个代码,

三没有一篇文档,

四没有讲半点理论,

夸夸其谈,言之无物。

我敢说你连官方例程都没看完。

本贴被 ralfak 编辑过,最后修改时间:2008-12-19,14:25:49.

ralfak 发表于 2008-12-19 14:28:34

to 2 楼,是可以接收14位数据的,你得自己填充位,

spi支持16位传送。

SPI也是支持DMA的。

并不是只支持串行方式DMA,

而是7X256根本没有并行接口

I/O口读数据方式不支持DMA

jiamengyu 发表于 2008-12-19 21:09:24

低调,一定要低调。。哈哈哈。。。

2005xxg 发表于 2008-12-19 21:51:39

想在at91sam7x256上移植ucos,lwip?下面是几个大虾的文档

1) uC/OS-II 平台下的 LwIP 移植笔记――作者:焦海波 

点击此处下载 ourdev_550843.pdf(文件大小:1004K) (原文件名:AT7X256_uCOS平台下的LwIP移植笔记.pdf) 

2005xxg 发表于 2008-12-19 21:54:00

2)AT91SAM7X-EK官方文档

点击此处下载 ourdev_550862.pdf(文件大小:570K) (原文件名:AT91SAM7X-EK官方文档.pdf) 

2005xxg 发表于 2008-12-19 22:00:48

3) 移植ucos必看之 μC/OS-II The Real-Time kernel V2.83 release notebook

点击此处下载 ourdev_550882.pdf(文件大小:313K) (原文件名:UCos2.83 ReleaseNotes.pdf) 

4)移植ucos必看之 Micrium官方在arm7上的移植说明

点击此处下载 ourdev_550883.pdf(文件大小:516K) (原文件名:AN-1014.pdf) 

2005xxg 发表于 2008-12-19 22:04:32

看下ucos的代码,看下micrium官方在arm7上的移植说明,结合焦海波大虾的文档,加上自己的调试,相信你会搞定AT91sam7x256+Dm9161+ucos+lwip的。

gliet_su 发表于 2008-12-19 22:19:44

LZ,不是吧,我们需要的是你的亲口传授,不是链接。

这里头不是光移植什么的,主要是你的经验。

rtos 发表于 2008-12-20 09:33:52

哪里有串口代码呢?

panxiaoku 发表于 2008-12-20 09:45:25

楼上,还等呢?自己去搜一下吧!

2005xxg 发表于 2008-12-20 10:55:22

at91sam7s64 的uart的初始化:



// 在IARARM中中断函数进入和返回的方式一样,并不需要__IRQ这类的关键字,加上这个关键字反而会出错

void UART0_RCV_ISR(void) 

{ 

    unsigned char ucRccData;

    

    // ARM 是自动清空中断标志的

    ucRccData = AT91C_BASE_US0->US_RHR & 0xFF;

    // 将接收到的数据发送回

    AT91F_US_PutChar(AT91C_BASE_US0,ucRccData);

    // AIC中断结束命令寄存器指示中断处理结束,可以写入任意值

    *AT91C_AIC_EOICR = 0x00;

}





// uart初始化

void UartInit()

{

    // IO连接外设uart0

    AT91F_US0_CfgPIO();

    // 允许uart0外围时钟

    AT91F_US0_CfgPMC();

    // uart配置

    // 标准模式 8位数据位,1位停止位,无奇偶校验

    // 期望波特率为9600,实际为18432000*73/28/313=9595.62,误差为0.04%。

    AT91F_US_Configure(AT91C_BASE_US0,AT91B_MCK,AT91C_US_ASYNC_MODE,9600,0);  

    // 禁止所有中断

    AT91C_BASE_US0->US_IDR = 0xF3FFF; 

    // 仅仅使能接收中断,注意这两句的顺序,如果反了,就不能进入接收中断了

    AT91C_BASE_US0->US_IER = AT91C_US_RXRDY;

    // 设置接收中断服务函数地址

    AT91C_AIC_SVR=(unsigned int )*UART0_RCV_ISR;

    //打开AIC中断

    *AT91C_AIC_IECR = 1 << AT91C_ID_US0;  

    // 允许接收

    AT91F_US_EnableRx(AT91C_BASE_US0);

    // 允许发送

    AT91F_US_EnableTx(AT91C_BASE_US0);

}

panxiaoku 发表于 2008-12-21 18:21:11

在别的贴里还见到一2004xxg,不知道是不是楼主!

2005xxg 发表于 2008-12-22 16:36:27

那个不是我,我只注册了2005xxg,是05年毕业的,xxg是我姓名的简拼。

2005xxg 发表于 2008-12-22 16:37:55

2004xxg,在论坛里我搜了下,没有这个ID呀?

xk2yx 发表于 2008-12-22 16:56:19

不错,希望LZ能给出更多的调试经验和步骤。

banyan_city 发表于 2008-12-22 17:15:43

顶出水平,嘻嘻

bcndance 发表于 2008-12-22 17:17:55

请教LZ,能否提供简单7x256的启动代码或者模版

以供参考学习

huanxian 发表于 2008-12-22 17:32:58

LZ,不错。

2005xxg 发表于 2008-12-22 21:39:39

.

2005xxg 发表于 2008-12-22 21:39:57

发篇我以前写得文档,用keil mdk 环境 。“AT91Sam7x256 Flash操作总结 ”,里面有keil for at91sam7x256的启动代码的分析,大家看看。 



点击此处下载 ourdev_555142.doc(文件大小:350K) (原文件名:AT91Sam7x256flash操作总结.doc) 



Keil启动文件分析:

打开Sam7.s看见如下代码段

        Stack_Size      EQU     (UND_Stack_Size + SVC_Stack_Size + 

        ABT_Stack_Size + \

        FIQ_Stack_Size + IRQ_Stack_Size + USR_Stack_Size)



                AREA    STACK, NOINIT, READWRITE, ALIGN=3

Stack_Mem     SPACE   Stack_Size



Stack_Top       EQU     Stack_Mem + Stack_Size



Heap_Size       EQU     0x00000400



                AREA    HEAP, NOINIT, READWRITE, ALIGN=3

Heap_Mem      SPACE   Heap_Size



//上面分别是设置堆栈大小,并分配堆栈空间,此时堆栈的起始地址并未确定,需要在__user_initial_stackheap()函数中设置。



;  Setup Main Oscillator 设置主时钟,并等待主时钟稳定

                LDR     R1, =PMC_MOR_Val

                STR     R1, 



;  Wait until Main Oscillator is stablilized

                IF      (PMC_MOR_Val:AND:PMC_MOSCEN) != 0

MOSCS_Loop      LDR     R2, 

                ANDS    R2, R2, #PMC_MOSCS

                BEQ     MOSCS_Loop

                ENDIF



;  Setup the PLL  设置PLL,并等待PLL稳定

                IF      (PMC_PLLR_Val:AND:PMC_MUL) != 0

                LDR     R1, =PMC_PLLR_Val

                STR     R1, 



;  Wait until PLL is stabilized

PLL_Loop        LDR     R2, 

                ANDS    R2, R2, #PMC_LOCK

                BEQ     PLL_Loop

                ENDIF



;  Select Clock

                IF      (PMC_MCKR_Val:AND:PMC_CSS) == 1     ; Main Clock Selected

                LDR     R1, =PMC_MCKR_Val

                AND     R1, #PMC_CSS

                STR     R1, 

WAIT_Rdy1       LDR     R2, 

                ANDS    R2, R2, #PMC_MCKRDY

                BEQ     WAIT_Rdy1

                LDR     R1, =PMC_MCKR_Val

                STR     R1, 

WAIT_Rdy2       LDR     R2, 

                ANDS    R2, R2, #PMC_MCKRDY

                BEQ     WAIT_Rdy2

                ELIF    (PMC_MCKR_Val:AND:PMC_CSS) == 3     ; PLL  Clock Selected

                LDR     R1, =PMC_MCKR_Val

                AND     R1, #PMC_PRES

                STR     R1, 

WAIT_Rdy1       LDR     R2, 

                ANDS    R2, R2, #PMC_MCKRDY

                BEQ     WAIT_Rdy1

                LDR     R1, =PMC_MCKR_Val

                STR     R1, 

WAIT_Rdy2       LDR     R2, 

                ANDS    R2, R2, #PMC_MCKRDY

                BEQ     WAIT_Rdy2

                ENDIF   ; Select Clock

                ENDIF   ; PMC_SETUP



上面的代码分别是设置主时钟,首先允许主时钟(注意SAM的时钟分为主时钟,PLL时钟,慢时钟,分别对应18.432M晶振,PLL,32768HZ的内部RC电路),主时钟的稳定时间为6 × 8个慢时钟周期,当主时钟稳定后,使能PLL,PLL的输入为18.432/5,输出为(18.432/5)*(25+ 1) =95.8464MHz,然后选择PLL的2分频为主机时钟(注意这个主机时钟与主时钟不一样,主机时钟指单片机的机器时钟)。上面的代码设置USB时钟为95.8464MHz,当我们使用USB的时候,要重新设置USB时钟为PLL时钟的2分频。

2005xxg 发表于 2008-12-22 22:10:28

坛子里感觉 ralfak是这方面的高手,大家有问题可以问他,我算是抛砖引玉,自己吹吹,然后把潜水的高人引出来,呵呵,请 ralfak留下qq方式,能否共同写点教程出来,活跃活跃气氛,ucos,lwip,usb,部分我来写,spi,sd卡,can总线你来写??

mikeggp 发表于 2008-12-25 16:32:33

楼主好!请教个问题!ATM9260 的SPI通讯如何初始化!

pengchhui 发表于 2008-12-25 16:44:43

请问知道这个是什么问题吗?



Error: Undefined external "__write" referred in ?putchar ( C:\Program Files\IAR Systems\Embedded Workbench 4.0  

2005xxg 发表于 2008-12-26 12:30:30

"__write" 没有定义。

wenxusun 发表于 2008-12-30 23:52:57

那么请教下楼主有,没有基于FAT32文件系统的SD读卡器方面的代码、总结或笔记之类的呢?

LuoPan19770708 发表于 2008-12-31 08:13:20

To 47: "__write" 没有定义。

很可能大家都明白是某个函数库中的WRITE中的入口没有定义。

但请问能提供解决方法吗?

2005xxg 发表于 2008-12-31 08:42:39

没有基于FAT32文件系统的SD读卡器方面的代码、总结或笔记之类的呢?

很抱歉,暂时还没搞这方面的东西,没有代码,总结和笔记。



To 47: "__write" 没有定义。

很可能大家都明白是某个函数库中的WRITE中的入口没有定义。

但请问能提供解决方法吗?



我还没装上iar5,但是只要是函数没定义,有个好方法,你到iar的安装目录里面搜索write,就能找到包含这个函数的文件,然后将这个文件用inlcude 引入。

LuoPan19770708 发表于 2008-12-31 10:59:31

To 50:

高手就是高手!

是能找到WRITE.C的文件,但加入后依然会有问题?会提示某些文件WRITE被重复定义?

lost_sunshine 发表于 2009-1-4 10:37:44

有些人。。。。。楼主这种提问回答的方式也挺好,希望可以坚持下去,日积月累,就可以总结出一个文档了

richter_t 发表于 2009-1-4 10:47:53

不知道有同好在7x256上接过eeprom么?我外接了一个AT24C64A,使用IAR5.2的样例调试,发现做片写时,mcu总是收到nack。大家有没有这方面的经验,指正一下

richter_t 发表于 2009-1-6 13:24:31

樓主抽空看看亞

zhang7cy 发表于 2009-1-7 13:39:11

没实质内容顶的到挺高,顶

cyr_hongfeng 发表于 2009-1-7 13:55:59

AT91sam7x256是什么?

cumtlazyboy 发表于 2009-1-8 19:39:22

请教楼主,PLL外围的RC电路如何计算???谢谢!!!

liu6_tao 发表于 2009-1-8 21:59:42

标记下 呵呵

cetc 发表于 2009-3-11 21:51:39

我把AT91sam7x256-ek上的AT91sam7x256换成AT91sam7x512,为什么ucos就烧不进去了呢?

yongshi01 发表于 2009-7-8 09:55:41

请问AT91sam7x256如何用J-Flash设置加密?
不知道安全位放在哪里啊?

dr2001 发表于 2009-7-8 10:11:08

To 3#
JLink我没有猜错的话,应该是基于SSC和SPI实现的,我没有认真核对JLink的电路图。
如果要我来做的话,SSC是TDI/TDO的主信号回路,SSC的TCK反馈给SPI,用来处理TMS相关的东西。顺便监控RTCK之类的信号。
我以前想用9200的SSC做JTAG来着,不过后来没有写完代码。分析SSC能实现的输出时序,实际上非常便于实现JTAG的信号时序的。SPI就稍微麻烦一些。

To 53#
IIC的没有问题。建议根据手册上TWI模块的要求,设置时钟,引脚状态等。
另外波特率先给最低的试试看。尤其是要算好地址。

To 57#
PLL RC计算在ATmel 7x256的页面上有一个Excel文件下载,使用那个文件进行计算就可以了。如果用18。432的晶体则直接看EVK的参数。

To 59#
7x512是两个Bank的,如果只写前边256k,应该是一样的。如果容量更大,可能需要写另外一组寄存器才能操作后边的256k Flash。
详情请参考手册。

To 60#
ATmel的加密就是往寄存器里写一个数据。这个东西物理上放在什么地方,目前没看到有资料说。恩。

zhijianli88 发表于 2009-10-30 11:36:52

我想问一下,我用的at91sam7x256的板子,程序是直接通过keil_download下到板子的,下完以后就能跑,而且是对的,但当我把jlink与板子断开以后,程序就跑不对了,为什么呢,请各位大虾指教

hjjun 发表于 2009-12-16 14:38:00

顶起来!

868net 发表于 2010-1-1 18:45:56

谢谢

lxbeiming 发表于 2010-1-5 10:44:46

顶起来

liumaojun_cn 发表于 2010-1-5 12:50:08

mark

WOTASOM 发表于 2010-5-8 20:45:34

AT91SAM7X256 看门狗不起作用, 不知道大家是否遇到过?

gdtsz 发表于 2010-5-9 23:34:55

回复【50楼】2005xxg
-----------------------------------------------------------------------
    2005xxg兄弟很久没有现身了,不知道还在不在坛了里,如在,能不能留个联系方式?或联系下我?

zxh93621164 发表于 2010-8-25 10:00:19

回复【楼主位】2005xxg
-----------------------------------------------------------------------
请问LZ:
    AT91SAM7X256不启用PLL,能直接使用外部晶振作为主时钟吗?

itspy 发表于 2010-11-11 17:56:58

回复【12楼】2005xxg
神州7号里面也是有arm做的,给你分析分析神州7号的原理?
-----------------------------------------------------------------------

怎么知道的,是用ARM,无图无真相

zentodone 发表于 2010-12-29 13:17:25

AT91SAM7X256中FLASH写数据具体是怎么配置的,楼主能否给个说明?谢谢!

flyingsnail 发表于 2011-9-23 20:53:37

来学习了。

babaili2010 发表于 2011-9-24 11:08:27

给力

mzbhy 发表于 2011-9-24 11:47:36

很好。

babaili2010 发表于 2011-9-26 09:52:20

还是找一款开发板,自己没事搞搞吧。

lliijjaa 发表于 2011-9-26 09:54:34

我想问一下芯片的波特率怎么计算啊

qiuhun 发表于 2011-9-26 19:41:28

lz 我是arm初学者老师给了我一块stm32开发板 我想问一下 stm32学到什么程度可以学arm9???

funv 发表于 2011-9-27 11:29:29

一直都是用 8051 最近想学下ARM, 但在 RTOS,半主机方式,Flash操作等方面很难做个实验,请做个例子............

koala 发表于 2011-9-30 06:11:41

楼主能说说菜鸟怎么开始学习ARM吗

wushifeng 发表于 2012-2-21 23:33:38

楼主,能不能给个AT91SAM7X512最小系统和JTAG的电路原理图啊.小弟急需。

rainjoe 发表于 2013-5-1 19:04:03

请教AT917X256 SPI通信问题KEIL环境死活调不通

postek 发表于 2013-5-1 21:10:35

51单片机我也到不3这个层次呀

rainjoe 发表于 2013-5-6 19:16:54

dr2001 发表于 2009-7-8 10:11 static/image/common/back.gif
To 3#
JLink我没有猜错的话,应该是基于SSC和SPI实现的,我没有认真核对JLink的电路图。
如果要我来做的话 ...

at91sam7x256 spi通信一直调不通 请问有初始化和简单读写的例程么 谢谢

rainjoe 发表于 2013-5-6 19:17:41

at91sam7x256 spi通信一直调不通 请问有初始化和简单读写的例程么 谢谢

飞翔Y 发表于 2013-6-13 19:05:00

楼主,不要在这瞎扯淡了,没有一点实际东东,到此瞎吹,也许那天听人说有AT91SAM7X256就到这来吹自己

2005xxg 发表于 2013-9-2 09:19:40

哈哈,多年前的帖子了,是个哗众取众的帖子,目的是抛砖引玉,现在搞STM32了。

chenxujiaoyang 发表于 2013-9-2 09:45:18

一定要低调,做技术的更是要低调,少说话多做事

eryueniao 发表于 2013-9-7 13:38:30

厉害                                                                        

luoyouhui2008 发表于 2013-10-27 23:54:25

2005xxg 发表于 2013-9-2 09:19 static/image/common/back.gif
哈哈,多年前的帖子了,是个哗众取众的帖子,目的是抛砖引玉,现在搞STM32了。 ...

您好!请问怎么加密设置AT91SAM7SE512(即禁止JTAG访问Flash等),我这边一设置安全位就出问题程序跑飞现象,不知道您有相关加密例程没有? 2679793656@qq.com 多谢
页: [1]
查看完整版本: 自己吹吹,本人用AT91sam7x256已经是很熟了,大家有啥问题可以来讲讲。【恢复】