SysIo  1.9.0
Embedded Library and tools
nanopi.h
1 
8 #ifndef _SYSIO_NANOPI_H_
9 #define _SYSIO_NANOPI_H_
10 #include <sysio/defs.h>
11 #ifdef __cplusplus
12  extern "C" {
13 #endif
14 /* ========================================================================== */
15 
123 typedef enum {
124  // H3
125  eNanoPiModelNeo,
126  eNanoPiModelNeoAir,
127  eNanoPiModelNeoM1,
128  eNanoPiModelNeoM1Plus,
129  // H5
130  eNanoPiModelNeo2,
131  eNanoPiModelNeoPlus2,
132  //---
133  eNanoPiModelUnknown = -1
134 } eNanoPiModel;
135 
139 typedef enum {
140  eNanoPiMcuH3,
141  eNanoPiMcuH5,
142  eNanoPiMcuUnknown = -1
143 } eNanoPiMcu;
144 
145 /* structures =============================================================== */
149 typedef struct xNanoPi {
151  int iGpioRev;
153  int iMemMB;
154  const char * sManufacturer;
155 } xNanoPi;
156 
157 /* internal public functions ================================================ */
163 
168 const xNanoPi * pxNanoPiInfo (void);
169 
176 const char * sNanoPiModelToStr (eNanoPiModel eModel);
177 
184 const char * sNanoPiMcuToStr (eNanoPiMcu eMcu);
185 
186 
187 /* constants ================================================================ */
188 #define GPIO_A0 0
189 #define GPIO_A1 6
190 #define GPIO_A2 2
191 #define GPIO_A3 3
192 #define GPIO_A4 17
193 #define GPIO_A5 18
194 #define GPIO_A6 1
195 #define GPIO_A7 26
196 #define GPIO_A8 23
197 #define GPIO_A9 25
198 #define GPIO_A10 19
199 #define GPIO_A11 9
200 #define GPIO_A12 8
201 #define GPIO_A13 27
202 #define GPIO_A14 29
203 #define GPIO_A15 28
204 #define GPIO_A16 24
205 #define GPIO_A17 11
206 #define GPIO_A18 31
207 #define GPIO_A19 30
208 #define GPIO_A20 21
209 #define GPIO_A21 22
210 
211 #define GPIO_C0 12
212 #define GPIO_C1 13
213 #define GPIO_C2 14
214 #define GPIO_C3 10
215 
216 #define GPIO_G6 15
217 #define GPIO_G7 16
218 #define GPIO_G8 4
219 #define GPIO_G9 5
220 
221 #define GPIO_G11 7
222 
223 #define GPIO_L3 33
224 
225 #define GPIO_L10 32
226 #define GPIO_L11 20
227 
228 #define LED_STATUS GPIO_A10
229 #define LED_POWER GPIO_L10
230 #define IR_RX GPIO_L11
231 
232 #define PWM1 1
233 
234 #define I2C0_SDA 8
235 #define I2C0_SCL 9
236 
237 #define I2C1_SDA 30
238 #define I2C1_SCL 31
239 
240 #define SPI0_CS 10
241 #define SPI0_MOSI 12
242 #define SPI0_MISO 13
243 #define SPI0_CLK 14
244 
245 #define SPI1_CS 27
246 #define SPI1_MOSI 28
247 #define SPI1_MISO 24
248 #define SPI1_CLK 29
249 
250 #define UART1_TX 15
251 #define UART1_RX 16
252 #define UART1_RTS 4
253 #define UART1_CTS 5
254 
255 #define UART2_TX 0
256 #define UART2_RX 6
257 #define UART2_RTS 2
258 #define UART2_CTS 3
259 
260 #define UART3_TX 27
261 #define UART3_RX 29
262 #define UART3_RTS 28
263 #define UART3_CTS 24
264 
265 #define SPDIF_OUT 11
266 
267 // Raspberry Pi Names
268 #define GPIO_GEN0 0
269 #define GPIO_GEN1 1
270 #define GPIO_GEN2 2
271 #define GPIO_GEN3 3
272 #define GPIO_GEN4 4
273 #define GPIO_GEN5 5
274 #define GPIO_GEN6 6
275 #define GPIO_GEN7 7
276 
277 #define I2C_SDA 8
278 #define I2C_SCL 9
279 
280 #define SPI_CE0_N 10
281 // --- incompatible #define SPI_CE1_N 11
282 #define SPI_MOSI 12
283 #define SPI_MISO 13
284 #define SPI_SCLK 14
285 
286 #define UART_TXD 15
287 #define UART_RXD 16
288 
293 #if ! defined(__DOXYGEN__)
294 // -----------------------------------------------------------------------------
295 /* Allwinner H3 internals ================================================== */
296 #define H3_IO1_BASE (0x01C20000)
297 #define H3_IO2_BASE (0x01F02000)
298 #define H3_PAGE_SIZE (4*1024)
299 #define H3_BLOCK_SIZE (4*1024)
300 #endif /* !defined(__DOXYGEN__) */
301 
302 /* ========================================================================== */
303 #ifdef __cplusplus
304  }
305 #endif
306 #endif /*_SYSIO_NANOPI_H_ defined */
struct xNanoPi xNanoPi
Information sur le NanoPi.
Information sur le NanoPi.
Definition: nanopi.h:149
const char * sManufacturer
Definition: nanopi.h:154
int iMemMB
Definition: nanopi.h:153
eNanoPiMcu
Type de MCU SoC.
Definition: nanopi.h:139
const char * sNanoPiMcuToStr(eNanoPiMcu eMcu)
Chaîne de caractères correspondant à un mcu.
const xNanoPi * pxNanoPiInfo(void)
Lecture des informations sur le NanoPi.
eNanoPiMcu eMcu
Definition: nanopi.h:152
eNanoPiModel
Modèle de NanoPi.
Definition: nanopi.h:123
const char * sNanoPiModelToStr(eNanoPiModel eModel)
Chaîne de caractères correspondant à un modèle.
eNanoPiModel eModel
Definition: nanopi.h:150
eNanoPiModel eNanoPiBoard(void)
Retourne le modèle de carte nanopi.
int iGpioRev
Definition: nanopi.h:151