免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1584 | 回复: 0
打印 上一主题 下一主题

ARM9200的spi使用问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-19 15:40 |只看该作者 |倒序浏览
大家好:帮忙解决一个困扰我很久的问题啊,急急急!
问题如下:在我的arm9200系统上使用spi扩展了一个MCP2510的SPI转CAN转芯片,还扩展了DM9000A的网卡芯片,我的SPI使用如下:PA0:MISO;PA1:MOSI;PA2:SPCK;PA4:NPCS1,我的DM9000的中断信号线使用:LAN_INIT:PA3/NPCS0/IRQ5,我想SPI口工作在master方式下,采用固定外设方式,DM9000的网卡中断采用IRQ5.我的SPI的驱动程序中,SPI初始化部分如下:
//初始化SPI
void SPI_Init(void)
{  
AT91_SYS->PIOA_PDR =  AT91C_PIO_PA0;  //disable PA0 IO mode
AT91_SYS->PIOA_ASR =  AT91C_PIO_PA0;  //set MISO

AT91_SYS->PIOA_PDR =  AT91C_PIO_PA1;  //disable PA1 IO mode
AT91_SYS->PIOA_ASR =  AT91C_PIO_PA1;  //set MOSI

AT91_SYS->PIOA_PDR =  AT91C_PIO_PA2;  //disable PA2 IO mode
AT91_SYS->PIOA_ASR =  AT91C_PIO_PA2;  //set SPCLK

AT91_SYS->PIOA_PDR =  AT91C_PIO_PA3;  //disable PA3 IO mode
AT91_SYS->PIOA_BSR =  AT91C_PIO_PA3;  //set irq5
  
AT91_SYS->PIOA_PDR =  AT91C_PIO_PA4;  //disable PA4 IO mode
AT91_SYS->PIOA_ASR =  AT91C_PIO_PA4;  //set NPCS1

AT91_SYS->PMC_PCER = 1 << AT91C_ID_SPI;  // Enable Peripheral clock

AT91S_SPI_CFG->SPI_IDR =0x000000ff;  //禁用中断

AT91S_SPI_CFG->SPI_CSR0=0x00000202;
AT91S_SPI_CFG->SPI_CSR1=0x00000202;
AT91S_SPI_CFG->SPI_CSR2=0x00000202;
AT91S_SPI_CFG->SPI_CSR3=0x00000202;
//主机模式,片选直接相连,时钟/32,模式错误检测,固定外设选择,地址为NPCS1
AT91S_SPI_CFG->SPI_MR |= AT91C_SPI_MSTR | AT91C_SPI_MODFDIS | AT91C_SPI_DIV32 | 0xd0000;
AT91S_SPI_CFG->SPI_CR = AT91C_SPI_SPIEN;     // Enable SPI  
}

可是在程序执行的时候,总是说MCP2515无法进入配置模式,读出的状态总是0x00,如果在上面这段spi初始化程序中去掉AT91_SYS->PIOA_BSR =  AT91C_PIO_PA3;  //set irq5 这句,那么MCP2515就工作正常,可是我的DM9000中断需要将其配置为IRQ5这种方式下啊,难道SPI在master方式下,别的NPCS线不能作为其他用法吗???请假各位帮忙解决一下,拜托大家了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP