首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
嵌入式技术
» SE-FCNTR100兆赫频率计数器/脉冲计数器
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
SE-FCNTR100兆赫频率计数器/脉冲计数器
发短消息
加为好友
m1_ljp
当前离线
UID
824598
帖子
2144
精华
0
积分
1072
阅读权限
150
在线时间
350 小时
注册时间
2010-10-29
最后登录
2013-8-27
超级版主
UID
824598
1
#
打印
字体大小:
t
T
m1_ljp
发表于 2013-4-16 14:42
|
只看该作者
SE-FCNTR100兆赫频率计数器/脉冲计数器
计数器
,
单片机
计方案
电子园51单片机学习网0bC'`/|:I-u2qq%|
应用
AT89C52
读写
SD
卡有两点需要注意。首先,需要寻找一个
实现
AT89C52
单片机
与
SD
卡通讯的解决方案;其次,
SD
卡所能接受的逻辑电平与
AT89C52
提供的逻辑电平不匹配,需要解决电平匹配问题。电子园51单片机学习网kkLCn`C0|S
电子园51单片机学习网k%}!_3l!S _ cX
通讯模式
7S#wp2z!q46917电子园51单片机学习网b3ZX9a{ceK
SD
卡有两个可选的通讯协议:
SD
模式和
SPI
模式。
SD
模式是
SD
卡标准的读写方式,但是在选用
SD
模式时,往往需要选择带有
SD
卡
控制
器接口的MCU,或者必须加入额外的
SD
卡控制单元以支持
SD
卡的读写。然而,
AT89C52
单片机
没有集成
SD
卡控制器接口,若选用
SD
模式通讯就无形中增加了产品的
硬件
成本。在
SD
卡数据读写时间要求不是很严格的情况下,选用SPI模式可以说是一种最佳的解决方案。因为在SPI模式下,通过四条线就可以完成所有的数据交换,并且目前市场上很多MCU都集成有现成的SPI接口电路,采用SPI模式对
SD
卡进行读写操作可大大简化硬件电路的
设计
。
Tr-^A:N3vX#d46917电子园51单片机学习网3o]'hlF }
虽然
AT89C52
不带
SD
卡硬件控制器,也没有现成的SPI接口模块,但是可以用软件
模拟
出SPI总线时序。本文用SPI总线模式读写
SD
卡。电子园51单片机学习网'dCl'`;B
电子园51单片机学习网 i{!n{6`~g
电平匹配
{HkuU46917
W!_(D(L8`46917
SD
卡的逻辑电平相当于3.3V TTL电平标准,而控制芯片
AT89C52
的逻辑电平为5V CMOS电平标准。因此,它们之间不能直接相连,否则会有烧毁
SD
卡的可能。出于对安全工作的考虑,有必要解决电平匹配问题。电子园51单片机学习网XmA;\ro
3_.qkdJf)[46917 要解决这一问题,最根本的就是解决逻辑器件接口的电平兼容问题,原则主要有两条:一为输出电平器件输出高电平的最小电压值,应该大于接收电平器件识别为高电平的最低电压值;另一条为输出电平器件输出低电平的最大电压值,应该小于接收电平器件识别为低电平的最高电压值。电子园51单片机学习网:C9^Z0P?%}._NP
+kX o+Ue)f8}46917 一般来说,通用的电平转换方案是采用类似SN74ALVC4245的专用电平转换芯片,这类芯片不仅可以用作升压和降压,而且允许两边电源不同步。但是,这个方案代价相对昂贵,而且一般的专用电平转换芯片都是同时转换8路、16路或者更多路数的电平,相对本系统仅仅需要转换3路来说是一种资源的浪费。电子园51单片机学习网yc'b?&c~r;gp
电子园51单片机学习网#? D+fg Mn
考虑到
SD
卡在SPI协议的工作模式下,通讯都是单向的,于是在
单片机
向
SD
卡传输数据时采用晶体管加上拉电阻法的方案,基本电路如图1所示。而在
SD
卡向
单片机
传输数据时可以直接连接,因为它们之间的电平刚好满足上述的电平兼容原则,既经济又实用。
#Y-Fe&gk(N/_:V46917
电子园51单片机学习网W];W2V*S&J
电子园51单片机学习网1jK)exp}@
这个方案需要双电源供电(一个5V电源、一个3.3V电源供电),3.3V电源可以用AMS1117稳压管从5V电源稳压获取。电子园51单片机学习网2]\a0B kpzx_%M
t^)b8W0P:z] l2?46917
硬件接口设计
'V8yO0S'd46917电子园51单片机学习网Y n%UuT0j
SD
卡提供9Pin的引脚接口便于外围电路对其进行操作,9Pin的引脚随工作模式的不同有所差异。在SPI模式下,引脚1(DAT3)作为SPI片选线CS用,引脚2(CMD)用作SPI总线的数据输出线MOSI,而引脚7(DAT0)为数据输入线MISO,引脚5用作
时钟
线(CLK)。除电源和地,保留引脚可悬空。电子园51单片机学习网 j#hz_ ^
1x sjx1F.w~u46917 本文中控制
SD
卡的MCU是ATMEL公司生产的低电压、高性能CMOS 8位
单片机
AT89C52
,内含8K字节的可反复擦写的只读程序
存储
器和256字节的随机
存储
数据
存储
器。由于
AT89C52
只有256字节的数据
存储
器,而
SD
卡的数据写入是以块为单位,每块为512字节,所以需要在
单片机
最小系统上增加一片RAM。本系统中RAM选用
存储
器芯片HM62256,容量为32K。对RAM进行读写时,锁存器把低8位地址锁存,与P2口的8位地址数据构成16位地址空间,从而可使
SD
卡一次读写512字节的块操作。系统硬件图如图2所示。
2Ff3iQ"nsW
#Qkq46917电子园51单片机学习网8Z;U+@ Vo)N4Nz
电子园51单片机学习网:Vj0OMD.I
电子园51单片机学习网 uR4r#Bz
软件设计
电子园51单片机学习网%TxG9`6|-pt
:{;k`NJH"H46917
SPI工作模式
z T Vs/b#N-|?G)Q46917
!Y.z.JSq%R46917
SD
卡在上电初期自动进入
SD
总线模式,在此模式下向
SD
卡发送
复位
命令CMD0。如果
SD
卡在接收复位命令过程中CS低电平有效,则进入SPI模式,否则工作在
SD
总线模式。电子园51单片机学习网4s/FG3DIhl"lc
+r#kL#j })q @+Vk$a46917 对于不带SPI串行总线接口的
AT89C52
单片机
来说,用软件来模拟SPI总线操作的具体做法是:将P1.5口(模拟CLK线)的初始状态设置为1,而在允许接收后再置P1.5为0。这样,MCU在输出1位SCK时钟的同时,将使接口芯片串行左移,从而输出1位数据至
AT89C52
单片机
的P1.7(模拟MISO线),此后再置P1.5为1,使
单片机
从P1.6(模拟MOSI线)输出1位数据(先为高位)至串行接口芯片。至此,模拟1位数据输入输出便完成。此后再置P1.5为0,模拟下1位数据的输入输出,依此循环8次,即可完成1次通过SPI总线传输8位数据的操作。
B-{a Wv Pcm46917
.^(N @%v-}5T46917 本文的实现程序把SPI总线读写功能集成在一起,传递的val变量既是向SPI写的数据,也是从SPI读取的数据。具体程序如下:(程序是在
Keil
uVision2的编译环境下编写)电子园51单片机学习网VjFs|%[\,|C
5[MI _,n(Oq[+G+W46917 sbit CS="
3"^5;电子园51单片机学习网2S ? T [7ks
u%L @/KM$h'h7h46917 sbit CLK= P1^5;
,w9j$](z,g"~xU46917电子园51单片机学习网[(u,HkZ M*p
sbit DataI="
1"^7;电子园51单片机学习网 WSbF"l]8g3u
电子园51单片机学习网6_Zw MKHE
sbit DataO="
1"^6;电子园51单片机学习网r,TMN4a3u#ma6^A
fA'h2I B+M%l+i:B46917 #define
SD
_Disable() CS="1" //片选关电子园51单片机学习网+id_n1c(}t~)^)^\0H
P0SX)E.^%j VP;q46917 #define
SD
_Enable() CS="0" //片选开
b m tJ/HH1h b Q2H46917电子园51单片机学习网b j;X1z$Y4~
unsigned char SPI_TransferByte(unsigned char val)
:E h Y+F \N)_/?46917电子园51单片机学习网(t'q*Tcl"xU E @
{
vC*Rb$@?[46917电子园51单片机学习网m5G(X~)G,B#a`0M:N.H
unsigned char BitCounter;电子园51单片机学习网!qT!C1E1z'Z#f}6RGO`
$CXf7h E ^46917 for(BitCounter=8; BiCounter!=0; BitCounter--)
| k QJs&R(`46917
!Q*?WJv/WO46917 { CLK="0";电子园51单片机学习网*~4h/U^8L`
电子园51单片机学习网*B*h9h{5d BM
DataI=0; // write
"D vj S(N
+~46917电子园51单片机学习网9_Gc+]F(jH'C3H
if(val&0x80) DataI="1";电子园51单片机学习网\MoRT|
&V}JrBH`46917 val<<=1;
i`;W"x G h4v46917
;`LRB2G |)i*\46917 CLK=1;
`(I P W"V xwo46917电子园51单片机学习网Yk:g W-B)s/j i
if(DataO)val|=1; // read电子园51单片机学习网 e$_+q$JD
电子园51单片机学习网0~FanwB@8F }
}
P+N4^5E3|n1mk2D_46917
m8f-s[l M1Y[46917 CLK=0;
)KeLZr46917电子园51单片机学习网Q\L B U3H R
return val;电子园51单片机学习网w(a(v!T*j7U
电子园51单片机学习网\c#aT$m
}电子园51单片机学习网Sixo1v3vis|n9Y
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议