查看: 5226|回复: 7

[其他] 关于SPI模块编程

[复制链接]

该用户从未签到

1

主题

2

帖子

0

新手上路

Rank: 1

积分
24
最后登录
1970-1-1
发表于 2008-11-27 10:28:12 | 显示全部楼层 |阅读模式
大家好。请问谁有用过fresscale单片机的SPI模块外接SPI系列的铁电存储器FRAM(FM25040A).
硬件上的连接。是接单片机的SPI模块。
PTE4(ss) 接 25040的/SS
PTE5(MISO) 接 25040的so
PTE6(MOSI) 接 25040的si
PTE7(SCK) 接 25040的sck
PTE8 (VSS)接 25040的vss
25040的/hold(保持管脚),/wp(写保护管脚),VDD都接到5V上。
我的程序想实现往FM25040A写数据,然后读数据。可是好像写不到数据那样,数据寄存器读不到任何数据。
请大家帮帮忙找找原因。感激不尽。 
#include "Cpu.h"
/* Include shared modules, which are used for whole project */
#include &quotE_Types.h"
#include &quotE_Error.h"
#include &quotE_Const.h"
#include "IO_Map.h"
//fm25040的指令
#define WREN    0X06  //写允许指令
#define WRDI    0X04  //禁止写指令
#define RDSR    0x05  //写状态寄存器指令
#define WRSR    0X01  //读状态寄存器指令
#define READ    0x03  //写地址指令
#define WRITE   0X02  //读地址指令
#define maxaddr 0x0fff
#define minaddr 0
#define cs_low() (PTED_PTED4=0)
#define cs_high() (PTED_PTED4=1)
unsigned char i=0;
unsigned char rebuff1;
unsigned int k,d;
//==============================================================
//函数名:Init_SPI
//作者:KLY
//日期:2007-11-8 10:34   
//功能:初始化SPI,波特率62.5KHZ//05,设置模式0,使能SPI (CPOL, CPHA=0,0)
//输入参数:无         250k//03
//返回值:无
//修改记录:无
//===============================================================
void SPI2_Init(void)
{
  /* SPI1C1: SPIE=0,SPE=1,SPTIE=0,MSTR=1,CPOL=0,CPHA=0,SSOE=0,LSBFE=0 */
  setReg8(SPI1C1, 0x50);               
  /* SPI1C2: ??=0,??=0,??=0,MODFEN=0,BIDIROE=0,??=0,SPISWAI=0,SPC0=0 */
 
  setReg8(SPI1C2, 0x00); //双向模式              
 /* SPI1BR: ??=0,SPPR2=0,SPPR1=0,SPPR0=0,??=0,SPR2=1,SPR1=0,SPR0=1 */
  setReg8(SPI1BR, 0x03); 
 
  PTED_PTED4=0; //初始值
  PTEDD_PTEDD4=1;//设置为输出(片选管脚)
  PTEPE_PTEPE4=1;//上拉           
}

/***************************延时函数*******************************/
void delay(unsigned char t) {
     unsigned char i,j;
    
     for(i=0;i 8));//0;//发送写高8位地址
    while(!SPI1S_SPTEF);
   
    SPI1D=((unsigned char)(ADR));//0;//发送写低8位地址
    while(!SPI1S_SPTEF);
   
   
   
    SPI1D=DATA1;   //写高8位数据
    while(!SPI1S_SPTEF);
  
   // rebuff1=SPI1D; //读高8位数据
    // while(!SPI1S_SPRF);
     
    cs_high();
 
 }
 
 /************************读数据函数*********************************/
void READDATA(unsigned int ADR)
{
         
      cs_low();
             
     SPI1D=READ; //FM25040A读指令
     while(!SPI1S_SPTEF);
     
    // SPI1D=ADR;  //发送读地址  
    // while(!SPI1S_SPTEF);
    
     SPI1D=((unsigned char)(ADR>> 8));//0;//发送写高8位地址
    while(!SPI1S_SPTEF);
   
    SPI1D=((unsigned char)(ADR));//0;//发送写低8位地址
    while(!SPI1S_SPTEF);
  
      
   while(SPI1S_SPRF);
     rebuff1=SPI1D; //读8位数据
     
        
  
 
     cs_high();
  
}
  
void main(void)
{
  /*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/
    PE_low_level_init();
   
    SPI2_Init();    //SPI初始化
     
      cs_high();
              
  
        for(k=0;k
我知道答案 目前已有6人回答
回复

使用道具 举报

该用户从未签到

0

主题

4

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
发表于 2009-5-11 10:31:16 | 显示全部楼层

RE:关于SPI模块编程

正在阅读中!!!!

该用户从未签到

40

主题

256

帖子

0

金牌会员

Rank: 6Rank: 6

积分
10386
最后登录
2023-4-17
发表于 2009-5-12 13:10:01 | 显示全部楼层

RE:关于SPI模块编程

顶一个,SPI我做过一个,写外部EEPROM。也是有些问题。
请高手指点。

该用户从未签到

0

主题

2

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
发表于 2009-5-13 16:25:38 | 显示全部楼层

回复:关于SPI模块编程

关注中

该用户从未签到

33

主题

441

帖子

0

新手上路

Rank: 1

积分
7703
最后登录
1970-1-1
发表于 2009-5-14 09:30:06 | 显示全部楼层

RE:关于SPI模块编程

是什么型号的mcu?SPI操作问题多半是你寄存器配置不对

该用户从未签到

0

主题

5

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
发表于 2009-5-20 17:05:50 | 显示全部楼层

RE:关于SPI模块编程

关注中,SPI我做过一个,也是有些问题。用仿真器时程序运行正常,拔掉仿真器SPI口无输出波形

该用户从未签到

1

主题

7

帖子

0

新手上路

Rank: 1

积分
38
最后登录
1970-1-1
发表于 2009-5-20 19:44:21 | 显示全部楼层

回复:关于SPI模块编程

顶一个

该用户从未签到

10

主题

55

帖子

0

新手上路

Rank: 1

积分
104
最后登录
1970-1-1
发表于 2011-6-1 14:29:37 | 显示全部楼层

回复:关于SPI模块编程

回复第 6 楼 jndisheng于2009-05-20 09:05:50发表:
关注中,SPI我做过一个,也是有些问题。用仿真器时程序运行正常,拔掉仿真器SPI口无输出波形
 

你好,拔掉仿真器后程序不能运行 ,请问如何使程序下载到板中呢?谢谢
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-25 09:48 , Processed in 0.098770 second(s), 28 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表