6908|3

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

C8051 FO20 SPI口怎么配置 [复制链接]

C8051 FO20 SPI口怎么配置 最好有源代码

最新回复

最近在琢磨用51采集编码器,但是配置不明白   详情 回复 发表于 2013-7-28 13:55
点赞 关注

回复
举报

59

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
C8051F020  SPI特殊功能寄存器和I/O引脚的配置:
C8051F020的SPI引脚分配为
P0.0——CLK
P0.1——MISO
P0.2——MOSI
P0.3——NSS(一主多从模式,接高电平+Vdd)
P0.4~P0.7——Slaves 片选信号
C8051F020SPI特殊功能寄存器的配置:
①SPI控制寄存器SPI0CN的配置:
选择MSTEN=1,使能主方式;SPIEN=1,使能SPI。
SPIF        WCOL        MODF        RXOVRN        TXBSY        SLVSEL        MSTEN        SPIEN
0        0        0        0        0        0        1        1
所以,PI0CN=03H。

②SPI配置寄存器SPI0CFG的配置:
CKPHA        CKPOL        BC2        BC1        BC0        SPIFRS2        SPIFRS1        SPIFRS0
1        1        0        0        0        1        1        1
选择CKPHA=1,在SCK周期的第二个边沿采样数据;CKPOL=1,SCK在空闲状态处于高电平;BC2~BC0=000,表示数据从最高位一直发送到最低位;SPIFRS2~ SPIFRS0=111,表示发送8位数据。
所以,SPI0CFG=16H。

③内部振荡器控制寄存器OSCICN的配置
MSCLKE        ——        ——        IFRDY        CLKSL        IOSCEN        IFCN1        IFCN0
0        0        0        1        0        1        1        1
选择IFRDY=1,内部振荡器频率按照IFCN位确定的频率运行;IOSCEN=1使能内部振荡器;IFCN1~IFCN0=11,内部振荡器频率为16MHz。
所以,OSCICN=17H。

④SPI时钟速率寄存器SPI0CKR配置:

SCR7        SCR6        SCR5        SCR4        SCR3        SCR2        SCR1        SCR0
0        1        0        0        0        0        0        1
设定SPI的时钟为fSCK=100KHz,
则SPI0CKR =[(SYSCLK/2)/ fSCK]—1=79=41H。
所以,SPI0CKR=41H。

⑤端口I/O交叉开关寄存器0(XBR0)的配置:
CP0E        ECI0E        PCA0ME        UART0EN        SPI0EN        SMB0EN
0        0        0        0        0        0        1        0
选择SPI0EN=1,SPI总线使能,SPI的SCK、MISO、MOSI、NSS分别连到P0.0、P0.1、P0.2和P0.3四个端口引脚。
所以,XBR0=02H。

⑥端口I/O交叉开关寄存器1(XBR1)的配置:
WEAKPUD        XBARE        —        T4EXE        T4E        UART1E        EMIFLE        CNVSTE
0        1        0        0        0        0        0        0
选择WEAKPUD=0,全局弱上拉;XBARE=1,交叉开关使能。
所以,XBR1=40H。

⑦端口0输出方式寄存器P0MDOUT的配置:
D7        D6        D5        D4        D3        D2        D1        D0
0        0        0        0        1        1        1        1
选择SCK、MISO、MOSI、NSS为推挽输出方式。
所以,P0MDOUT=0DH。
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
其中最后第七条,MISO应该为开漏输出,相应的位为0。P0MDOUT值需要再算,
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

4
 

C8051F020 SPI口能不能用来采集编码器?

最近在琢磨用51采集编码器,但是配置不明白
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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