📄 程序说明.txt
字号:
程序说明:
一、开发环境
1、开发板:YF-02-A
2、仿真器:wiggle
3、开发软件:IAR4_30A-1_2
二、程序功能
1、程序目的:介绍AT91SAM7A3 SPI0的基本用法:
2、 功能说明: 利用SPI0接口读写外部DATAFLASH的数据,开发板上用到的是AT45DCB008。
三、开发板设置
1、依据YF-02使用向导,设置好开发板.断开J13,J14
2、在IAR环境下打开程序,插入DATAFLASH 卡,运行程序。
3、用一条串口线,连接到PC机上,通过PC机的“超级终端”观察程序执行情况。
超级终端的设置为:被特率:115200,数据位:8,
停止位:1 ,奇偶校验:无,数据流控制:硬件
4、在超级终端可以看到程序运行的结果(只打印出前255个字节的数据)。
5、拔除DATAFLASH 卡看看远行结果有什么不同?
四、附加说明
1、在ATMEL的lib_AT91SAM7S64.H中没有下面的函数,所以新建工程时,必须在此库文件中加上如下的函数:
//*----------------------------------------------------------------------------
//* \fn AT91F_SPI_Status
//* \brief Return SPI Status
//*----------------------------------------------------------------------------
__inline unsigned int AT91F_SPI_GetStatus( // \return SPI Interrupt Mask Status
AT91PS_SPI pSpi) // \arg pointer to a SPI controller
{
return pSpi->SPI_SR;
}
2、由于程序中SPI的时钟频率设置10M所以必须的将程序写到FLASH中测试才可能得到正确的结果。 用仿真调试的方法不能正常执行。
5、程序设计是按DATAFLASH的特性以1056字节(一页)为为单位设计的,所以每次必须以1056字节为单位 对DATAFLASH进行操作。
6、配置SPI接口时要注意,因为仅仅使用了4个I/O接口,其它没用到的要屏蔽掉,以免影响其性能,
没有用到I/O口可以用作其它功能,不影响SPI工作。在AT91SAM7A3开发板上用到的是SPI1来读取 DATAFLASH的!
本程序中用到的配置如下:
//*----------------------------------------------------------------------------
//* \fn AT91F_SPI0_CfgPIO
//* \brief Configure PIO controllers to drive SPI0 signals
//*----------------------------------------------------------------------------
__inline void AT91F_SPI0_CfgPIO (void)
{
// Configure PIO controllers to periph mode
AT91F_PIO_CfgPeriph(
AT91C_BASE_PIOA, // PIO controller base address
//((unsigned int) AT91C_PA12_NPCS01 ) |
((unsigned int) AT91C_PA15_MISO0 ) |
((unsigned int) AT91C_PA14_NPCS03 ) |
((unsigned int) AT91C_PA17_SPCK0 ) |
((unsigned int) AT91C_PA16_MOSI0 )// |
//((unsigned int) AT91C_PA13_NPCS02 ) |
//((unsigned int) AT91C_PA11_NPCS00 )
, // Peripheral A
0); // Peripheral B
}
四:附注
1、软件设计:张正锋
2、咨询电话: Mobile:13926575803
3、QQ:398426553
4、E-MAIL:embed_tech@126.com
5、MSN:zhangzhengfeng2008@hotmail.com
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Q&A:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
在AT91SAM7A3开发板上使用AT45DCB008 DATAFLASH 卡时发现下列问题:
1、AT45DCB008的DATASHEET说该卡的频率可达到20M,但在此测试程序中超过15M数据就不确,
设置为20M时数据完全不能存入。
2、DATAFLASH 卡不支持/* Main memory page through buffer 1, Fast program */使用该方式时,数据会出现错误。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -