|
1 /* Arduino SdFat Library |
|
2 * Copyright (C) 2009 by William Greiman |
|
3 * |
|
4 * This file is part of the Arduino SdFat Library |
|
5 * |
|
6 * This Library is free software: you can redistribute it and/or modify |
|
7 * it under the terms of the GNU General Public License as published by |
|
8 * the Free Software Foundation, either version 3 of the License, or |
|
9 * (at your option) any later version. |
|
10 * |
|
11 * This Library is distributed in the hope that it will be useful, |
|
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
14 * GNU General Public License for more details. |
|
15 * |
|
16 * You should have received a copy of the GNU General Public License |
|
17 * along with the Arduino SdFat Library. If not, see |
|
18 * <http://www.gnu.org/licenses/>. |
|
19 */ |
|
20 /** |
|
21 * \file |
|
22 * \brief configuration definitions |
|
23 */ |
|
24 #include "Marlin.h" |
|
25 #ifdef SDSUPPORT |
|
26 |
|
27 #ifndef SdFatConfig_h |
|
28 #define SdFatConfig_h |
|
29 #include <stdint.h> |
|
30 //------------------------------------------------------------------------------ |
|
31 /** |
|
32 * To use multiple SD cards set USE_MULTIPLE_CARDS nonzero. |
|
33 * |
|
34 * Using multiple cards costs 400 - 500 bytes of flash. |
|
35 * |
|
36 * Each card requires about 550 bytes of SRAM so use of a Mega is recommended. |
|
37 */ |
|
38 #define USE_MULTIPLE_CARDS 0 |
|
39 //------------------------------------------------------------------------------ |
|
40 /** |
|
41 * Call flush for endl if ENDL_CALLS_FLUSH is nonzero |
|
42 * |
|
43 * The standard for iostreams is to call flush. This is very costly for |
|
44 * SdFat. Each call to flush causes 2048 bytes of I/O to the SD. |
|
45 * |
|
46 * SdFat has a single 512 byte buffer for SD I/O so it must write the current |
|
47 * data block to the SD, read the directory block from the SD, update the |
|
48 * directory entry, write the directory block to the SD and read the data |
|
49 * block back into the buffer. |
|
50 * |
|
51 * The SD flash memory controller is not designed for this many rewrites |
|
52 * so performance may be reduced by more than a factor of 100. |
|
53 * |
|
54 * If ENDL_CALLS_FLUSH is zero, you must call flush and/or close to force |
|
55 * all data to be written to the SD. |
|
56 */ |
|
57 #define ENDL_CALLS_FLUSH 0 |
|
58 //------------------------------------------------------------------------------ |
|
59 /** |
|
60 * Allow use of deprecated functions if ALLOW_DEPRECATED_FUNCTIONS is nonzero |
|
61 */ |
|
62 #define ALLOW_DEPRECATED_FUNCTIONS 1 |
|
63 //------------------------------------------------------------------------------ |
|
64 /** |
|
65 * Allow FAT12 volumes if FAT12_SUPPORT is nonzero. |
|
66 * FAT12 has not been well tested. |
|
67 */ |
|
68 #define FAT12_SUPPORT 0 |
|
69 //------------------------------------------------------------------------------ |
|
70 /** |
|
71 * SPI init rate for SD initialization commands. Must be 5 (F_CPU/64) |
|
72 * or 6 (F_CPU/128). |
|
73 */ |
|
74 #define SPI_SD_INIT_RATE 5 |
|
75 //------------------------------------------------------------------------------ |
|
76 /** |
|
77 * Set the SS pin high for hardware SPI. If SS is chip select for another SPI |
|
78 * device this will disable that device during the SD init phase. |
|
79 */ |
|
80 #define SET_SPI_SS_HIGH 1 |
|
81 //------------------------------------------------------------------------------ |
|
82 /** |
|
83 * Define MEGA_SOFT_SPI nonzero to use software SPI on Mega Arduinos. |
|
84 * Pins used are SS 10, MOSI 11, MISO 12, and SCK 13. |
|
85 * |
|
86 * MEGA_SOFT_SPI allows an unmodified Adafruit GPS Shield to be used |
|
87 * on Mega Arduinos. Software SPI works well with GPS Shield V1.1 |
|
88 * but many SD cards will fail with GPS Shield V1.0. |
|
89 */ |
|
90 #define MEGA_SOFT_SPI 0 |
|
91 //------------------------------------------------------------------------------ |
|
92 /** |
|
93 * Set USE_SOFTWARE_SPI nonzero to always use software SPI. |
|
94 */ |
|
95 #define USE_SOFTWARE_SPI 0 |
|
96 // define software SPI pins so Mega can use unmodified 168/328 shields |
|
97 /** Software SPI chip select pin for the SD */ |
|
98 uint8_t const SOFT_SPI_CS_PIN = 10; |
|
99 /** Software SPI Master Out Slave In pin */ |
|
100 uint8_t const SOFT_SPI_MOSI_PIN = 11; |
|
101 /** Software SPI Master In Slave Out pin */ |
|
102 uint8_t const SOFT_SPI_MISO_PIN = 12; |
|
103 /** Software SPI Clock pin */ |
|
104 uint8_t const SOFT_SPI_SCK_PIN = 13; |
|
105 //------------------------------------------------------------------------------ |
|
106 /** |
|
107 * The __cxa_pure_virtual function is an error handler that is invoked when |
|
108 * a pure virtual function is called. |
|
109 */ |
|
110 #define USE_CXA_PURE_VIRTUAL 1 |
|
111 #endif // SdFatConfig_h |
|
112 |
|
113 |
|
114 #endif |