资源简介
MMC驱动层包含SD卡读写操作接口;FAT层包含文件操作接口。
代码片段和文件信息
// ***********************************************************
// File: mmc.c
// Description: Library to access a MultiMediaCard
// functions: init read write ...
// C. Speck / S. Schauer
// Texas Instruments Inc
// June 2005
//
// Version 1.1
// corrected comments about connection the MMC to the MSP430
// increased timeout in mmcGetXXResponse
//
// ***********************************************************
// MMC Lib
// ***********************************************************
#include
#include “mmc.h“
// Function Prototypes
char mmcGetResponse(void);
char mmcGetXXResponse(const char resp);
// char mmcCheckBusy(void);
unsigned char spiSendByte(const unsigned char data);
char mmc_GoIdle();
// Varialbes
//char mmc_buffer[512] = { 0 }; // Buffer for mmc i/o for data and registers
//---------------------------------------------------------------------
unsigned char spiSendByte(const unsigned char data)
{
while (!(USICTL1&USIIFG)); // Wait for RX to finish
USISRL=data;
USICNT = 8; // send 8 bits of data
while (!(USICTL1&USIIFG)); // Wait for RX to finish
return (USISRL); // Store data
}
void MMC_initSPI(void){
//chip select
SD_CSn_PxDIR|=SD_CSn_PIN;
SD_CSn_PxOUT|=SD_CSn_PIN;
USICTL0 |= USIPE7 + USIPE6 + USIPE5 + USIMST + USIOE; // Port SPI master
//USICTL1 |= USICKPH; // USICKPH; // Counter interrupt flag remains set
USICKCTL = USIDIV_0 + USISSEL_2 + USICKPL; // /4 SMCLK + USICKPL +
USICTL0 &= ~USISWRST; // USI released for operation
}
// Initialize MMC card
//set DI and CS high and apply more than 74 pulses to SCLK
char initMMC (void){
int i;
CS_HIGH(); //sey CS high
for(i=0;i<11;i++)
spiSendByte(0xff);//set DI high with ff (10 times)
return (mmc_GoIdle());
}
char mmc_GoIdle(){
char response=0x01;
CS_LOW();
//Send Command 0 to put MMC in SPI mode
mmcSendCmd(MMC_GO_IDLE_STATE00x95);
//Now wait for READY RESPONSE
if(mmcGetResponse()!=0x01)
return MMC_INIT_ERROR;
while(response==0x01)
{
CS_HIGH();
spiSendByte(0xff);
CS_LOW();
mmcSendCmd(MMC_SEND_OP_COND0x000xff);
response=mmcGetResponse();
}
CS_HIGH();
spiSendByte(0xff);
return (MMC_SUCCESS);
}
// mmc Get Responce
char mmcGetResponse(void)
{
//Response comes 1-8bytes after command
//the first bit will be a 0
//followed by an error code
//data will be 0xff until response
int i=0;
char response;
while(i<=64)
{
response=spiSendByte(0xff);
if(response==0x00)break;
if(response==0x01)break;
i++;
}
return response;
}
char mmcGetXXResponse(const char resp)
{
//Response comes 1-8bytes after command
//the first bit will be a 0
//followed by an error code
//data will be 0xff un
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14457 2012-03-28 14:24 SD\mmc.c
文件 4862 2012-04-03 21:16 SD\mmc.h
文件 13310 2012-04-01 22:14 SD\ThinFAT.c
文件 3489 2012-04-01 22:14 SD\ThinFAT.h
目录 0 2012-04-02 13:53 SD
----------- --------- ---------- ----- ----
36118 5
- 上一篇:合格证打印
- 下一篇:C8051F120最小系统的原理图,PCB图
相关资源
- MSP430实现串口通信的源程序代码
- MSP430小车控制
- msp430g2553测频程序
- msp430g2553测频率
- MSP430驱动SD卡程序
- SD卡初始化流程图超详细
- msp430产生SPWM波程序
- 基于msp430g2553的触摸按键程序
- msp430元件库封装
- msp430f5438a操作nrf24l01
- msp430中断嵌套程序
- MSP430+LORA
- msp430f5438的AD转换结果通过串口输送到
- MSP430控制LCD1602显示
- ADC序列通道多次转换12864液晶程序ms
- msp430串口计算器
- 按键控制MSP430F5529单片机控制灯闪烁
- MSP430F系列单片机bootloader原理及实现方
- MSP430F5529原理图
- MSP430F149单片机对继电器的控制程序和
- MSP430 SD卡FAT16源码!!!经典
- LCD1602程序 for MSP430F449
- STM32-基于SD卡的FATFS文件系统
- 基于MSP430F6638的数字钟代码
- 2018年TI杯电子设计大赛FDC2214、TPS630
- MSP430F5529LP 串口通信 UART 代码 CCS工程
- 基于MSP430的UART串口控制机械臂
- fdc2214驱动程序——基于MSP430F5529
- 基于MSP430F149单片机的语音播报模块使
- msp430f5529计算fft程序,可用
评论
共有 条评论