ATmega8GPSLoggerBasismodul  20131018
mmc.h
Go to the documentation of this file.
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 1 //1 = Hardware SPI | 0 = Software SPI
13 //#define SPI_Mode 0
14 
15 #define MMC_Write PORTB //Port an der die MMC/SD-Karte angeschlossen ist also des SPI
16 #define MMC_Read PINB
17 #define MMC_Direction_REG DDRB
18 
19 #if defined (__AVR_ATmega128__)
20  #define SPI_DI 3 //Port Pin an dem Data Output der MMC/SD-Karte angeschlossen ist
21  #define SPI_DO 2 //Port Pin an dem Data Input der MMC/SD-Karte angeschlossen ist
22  #define SPI_Clock 1 //Port Pin an dem die Clock der MMC/SD-Karte angeschlossen ist (clk)
23  #define MMC_Chip_Select 4 //Port Pin an dem Chip Select der MMC/SD-Karte angeschlossen ist
24  #define SPI_SS 0 //Nicht Benutz muß aber definiert werden
25 #endif
26 
27 #if defined (__AVR_ATmega32__)
28  #define SPI_DI 6 //Port Pin an dem Data Output der MMC/SD-Karte angeschlossen ist
29  #define SPI_DO 5 //Port Pin an dem Data Input der MMC/SD-Karte angeschlossen ist
30  #define SPI_Clock 7 //Port Pin an dem die Clock der MMC/SD-Karte angeschlossen ist (clk)
31  #define MMC_Chip_Select 3 //Port Pin an dem Chip Select der MMC/SD-Karte angeschlossen ist
32  #define SPI_SS 4 //Nicht Benutz mu� aber definiert werden
33 #endif
34 
35 #if defined (__AVR_ATmega8__)
36  #define SPI_DI 4 //Port Pin an dem Data Output der MMC/SD-Karte angeschlossen ist
37  #define SPI_DO 3 //Port Pin an dem Data Input der MMC/SD-Karte angeschlossen ist
38  #define SPI_Clock 5 //Port Pin an dem die Clock der MMC/SD-Karte angeschlossen ist (clk)
39  #define MMC_Chip_Select 2 //Port Pin an dem Chip Select der MMC/SD-Karte angeschlossen ist
40  #define SPI_SS 2 //Nicht Benutz muß aber definiert werden
41 #endif
42 
43 //Prototypes
44 extern unsigned char mmc_read_byte(void);
45 
46 extern void mmc_write_byte(unsigned char);
47 
48 extern void mmc_read_block(unsigned char *,unsigned char *,unsigned in);
49 
50 extern unsigned char mmc_init(void);
51 
52 extern unsigned char mmc_read_sector (unsigned long,unsigned char *);
53 
54 extern unsigned char mmc_write_sector (unsigned long,unsigned char *);
55 
56 extern unsigned char mmc_write_command (unsigned char *);
57 
58 extern unsigned char mmc_read_csd (unsigned char *);
59 
60 extern unsigned char mmc_read_cid (unsigned char *);
61 
62 //set MMC_Chip_Select to high (MMC/SD-Karte Inaktiv)
63 #define MMC_Disable() MMC_Write|= (1<<MMC_Chip_Select);
64 
65 //set MMC_Chip_Select to low (MMC/SD-Karte Aktiv)
66 #define MMC_Enable() MMC_Write&=~(1<<MMC_Chip_Select);
67 
68 #define SDC_PutSector mmc_write_sector
69 
70 #define SDC_GetSector mmc_read_sector
71 
72 #define nop() __asm__ __volatile__ ("nop" ::)
73 
74 #endif //_MMC_H_
75 
76 
void mmc_write_byte(unsigned char)
Definition: mmc.c:166
unsigned char mmc_write_command(unsigned char *)
Definition: mmc.c:99
unsigned char mmc_init(void)
Definition: mmc.c:32
unsigned char mmc_read_csd(unsigned char *)
Definition: mmc.c:322
unsigned char mmc_read_cid(unsigned char *)
Definition: mmc.c:309
void mmc_read_block(unsigned char *, unsigned char *, unsigned in)
unsigned char mmc_read_sector(unsigned long, unsigned char *)
Definition: mmc.c:286
unsigned char mmc_read_byte(void)
Definition: mmc.c:135
unsigned char mmc_write_sector(unsigned long, unsigned char *)
Definition: mmc.c:195