3202|3

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何通过2440spi总线读写外设的寄存器? [复制链接]

平台:arm开发板,用spi总线外接1个fir红外芯片,s3c2440 + linux2.6.24.7

现在2440这边已经做好了,insmod bitbang.ko,s3c24xx.ko,insmod spidev.ko,用testspi,用示波器可以测到时钟和数据的波形都是对的,但不知道如何读写fir的寄存器?以前都是并行总线,ioremap就可以了,第一次接触spi总线,请有经验的大侠们不吝赐教!万分感谢

最新回复

现在可以读写了,只要在总线是实现设备的读写时序,device会自动响应的; 这个code我也有,它是自己实现spi时序的,根本没用kernel带动spi驱动, 感谢你的回答,分数给你了  详情 回复 发表于 2008-11-12 16:04
点赞 关注

回复
举报

84

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
都这么长的时间怎么连个回复的人都没有,是我提的问题水平太低,大家都不些回复么?20分要白白浪费了饿
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
你的SPI驱动里面实现读写函数就可以了吧
下面是我在ADS下的SPI读写函数:
/****************************************************************************
【功能说明】SPI接口写入数据
****************************************************************************/
void Spi_Write( U8 Data )
{
        U8 m ;

        for( m = 0; m < 8; m++ )
        {
                if( (Data&0x80)==0x80 )
                        MCP2510_SI_H;                //SI put 1
                else
                        MCP2510_SI_L;                //SI put 0

                { U16 k=0; for( ; k <= DELAY_TIME; k++ ) ;  }  //延时至少300ns
                MCP2510_SCK_H ;                //SCK put 1
                Data = Data<<1 ;
                MCP2510_SCK_L ;                //SCK put 0
                { U16 k=0; for( ; k <= DELAY_TIME; k++ ) ;  }  //延时至少300ns
        }
}

/****************************************************************************
【功能说明】SPI接口读出数据
****************************************************************************/
U8 Spi_Read( )
{
        U8 m ;
        U8 data = 0 ;

        for( m = 0; m < 8; m++ )
        {
                MCP2510_SCK_H ;                //SCK put 1
                { U16 k=0; for( ; k <= DELAY_TIME; k++ ) ;  }  //延时至少300ns
                data = data<<1;
                if( MCP2510_SO_GET != 0 )
                        data |= 0x01 ;
                else
                        data &= 0xfe;

                { U16 k=0; for( ; k <= DELAY_TIME; k++ ) ;  }  //延时至少300ns
                MCP2510_SCK_L ;                //SCK put 0
                { U16 k=0; for( ; k <= DELAY_TIME; k++ ) ;  }  //延时至少300ns
        }

        return (data);
}

***********************************************************************************
功能最全的2440开发板-飞凌TE2440Ⅱ: http://www.witech.com.cn/product/TE-ARM2440-2.html
***********************************************************************************
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

4
 
现在可以读写了,只要在总线是实现设备的读写时序,device会自动响应的;

这个code我也有,它是自己实现spi时序的,根本没用kernel带动spi驱动,
感谢你的回答,分数给你了
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表