mmc.h


1
/*#######################################################################################
2
Connect ARM to MMC/SD 
3
4
Copyright (C) 2004 Ulrich Radig
5
#######################################################################################*/
6
7
#ifndef _MMC_H_
8
 #define _MMC_H_
9
10
#include <avr/io.h>  
11
12
#define SPI_Mode      0    //1 = Hardware SPI | 0 = Software SPI
13
//#define SPI_Mode      0
14
15
#define MMC_Write      PORTD  //Port an der die MMC/SD-Karte angeschlossen ist also des SPI 
16
#define MMC_Read      PIND
17
#define MMC_Direction_REG  DDRD  
18
19
  #define SPI_DI        6    //Input Port Pin an dem Data Output der MMC/SD-Karte angeschlossen ist 
20
  #define SPI_DO        4    //Output Pin an dem Data Input der MMC/SD-Karte angeschlossen ist
21
  #define SPI_Clock      5    //Output Pin an dem die Clock der MMC/SD-Karte angeschlossen ist (clk)
22
  #define MMC_Chip_Select    7    //Output Pin an dem Chip Select der MMC/SD-Karte angeschlossen ist
23
  #define SPI_SSSD      3    //Nicht Benutz muß aber definiert werden
24
25
//Prototypes
26
extern unsigned char mmc_read_byte(void);
27
28
extern void mmc_write_byte(unsigned char);
29
30
extern void mmc_read_block(unsigned char *,unsigned char *,unsigned in);
31
32
extern unsigned char mmc_init(void);
33
34
extern unsigned char mmc_read_sector (unsigned long,unsigned char *);
35
36
extern unsigned char mmc_write_sector (unsigned long,unsigned char *);
37
38
extern unsigned char mmc_write_command (unsigned char *);
39
40
extern unsigned char mmc_read_csd (unsigned char *);
41
42
extern unsigned char mmc_read_cid (unsigned char *);
43
44
//set MMC_Chip_Select to high (MMC/SD-Karte Inaktiv)
45
#define MMC_Disable() MMC_Write|= (1<<MMC_Chip_Select);
46
47
//set MMC_Chip_Select to low (MMC/SD-Karte Aktiv)
48
#define MMC_Enable() MMC_Write&=~(1<<MMC_Chip_Select);
49
50
#define nop()  __asm__ __volatile__ ("nop" ::)
51
52
#endif //_MMC_H_