Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1068922
  • 博文数量: 135
  • 博客积分: 10182
  • 博客等级: 上将
  • 技术积分: 1565
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-07 16:05
文章分类

全部博文(135)

文章存档

2011年(5)

2010年(20)

2009年(3)

2008年(16)

2007年(91)

分类: LINUX

2007-07-04 22:19:08

   正式的A/D板终于做出来了,趁热赶紧进行测试。令人郁闷的是4片max146,两片行,两片不行。why?奋战了一天,晚上终于搞定。原因出在这两个函数身上:
static inline void AT91_CfgPIO_SPI_CS2(void) {
 AT91_SYS->PIOA_PDR = AT91C_PA5_NPCS2;
}
static inline void AT91_CfgPIO_SPI_CS3(void) {
 AT91_SYS->PIOA_PDR = AT91C_PA6_NPCS3;
}
:-)。它们并不能完成任务。
static inline void AT91_CfgPIO_SPI_CS0(void) {
 AT91_SYS->PIOA_PDR = AT91C_PA3_NPCS0;
}
static inline void AT91_CfgPIO_SPI_CS1(void) {
 AT91_SYS->PIOA_PDR = AT91C_PA4_NPCS1;
}
这两个却可以,所以两片可以,两片不行。
解决方法很简单,就是将I/O线分配给外设A了:
AT91_SYS->PIOA_ASR |= (1 << 5);
AT91_SYS->PIOA_ASR |= (1 << 6);
调试心得就是多从软件入手,借助printk语句,观察关键状态寄存器,硬件一般都没有问题,:-)。
阅读(2289) | 评论(2) | 转发(0) |
0

上一篇:基于arm的网络图像传输

下一篇:编程修养

给主人留下些什么吧!~~

chinaunix网友2008-06-11 21:34:58

你好,我们从C51要转到linux,我希望能和你合作。 我也是北京的,如方便联系。 邮箱:abc8276@hotmail.com

zyap20002008-01-22 15:37:53

小弟我正在用9200+linux做一个数据采集板。芯片选用的是max1230(16通道、spi接口的ad芯片)。入手很难,老是找不到方法。能否给你的程序让我学习学习。谢谢啦! 我的邮箱:zyap2000@126.com