Revision bb46c559

View differences:

README.txt
49 49

  
50 50
AMiRo-LLD is a compilation of low-level hardware drivers, originally developed
51 51
for the Autonomous Mini Robot (AMiRo) [1]. It provides a modular design, so that
52
each driver can be (de)activated individually as required. Interface functions
53
allow for bidirectional comunication with an operating system. On the one hand
54
drivers access according hardware interfaces via defined interface functions
55
(which need to be implemented by the operating system) and any applications (or
56
the operating system itself) can take advantage of the drivers by their
57
individual interfaces. The abstraction layer of the hardware interfaces is
58
called "periphAL", which is defined by this project.
52
each driver can be activated individually as required. Interface functions allow
53
for bidirectional comunication with an operating system. On the one hand drivers
54
access according hardware interfaces via defined interface functions (which need
55
to be implemented by the operating system) and any applications (or the
56
operating system itself) can take advantage of the drivers by their individual
57
interfaces. The abstraction layer of the hardware interfaces is called
58
"periphAL", which is defined by this project.
59 59

  
60 60
Although this compilation was originally designed to be used in combination with
61 61
the AMiRo operating system (AMiRo-OS; cf. https://opensource.cit-ec.de/projects/amiro-os/),
......
64 64
not present on the AMiRo platform, are highly appreciated.
65 65

  
66 66
The files are structured as follows:
67
* include/
68
  Each driver defines exactly one include header in this directory. By
69
  convention these files are named by the form
70
    alld_<product_name>.h
71
  <product_name> is a placeholder for the exact name of the according hardware,
72
  or the product familiy, if the driver is compatible with all parts.
73
* source/
74
  Any source files are placed in this directory. Usually there is a single file
75
  for each driver. If multiple files are necessary, these should be placed in an
76
  accordingly named subfolder. Names of folders and files should comply to the
77
  aforementioned convention.
78
* templates/
79
  AMiRo-LLD requires an implementation of the defined interface and an
80
  configuration header to be accessible in the include paths at compile time.
81
  Template files for both can be found in this folder. It is recommended to
82
  place according implementations of these templated not in the AMiRo-LLD
83
  project, but the superproject which includes AMiRo-LLD.
84
* /
85
  The project root directory contains this file, a license.html file as well as
86
  a Makefile that allows to easily integrate the project. Furthermore, two
87
  interface headers are provided: amiro-lld.h and periphALtypes.h. These are
88
  entry points for any utilizing superproject, so it is not required (and not
89
  recommanded) to include each driver individually.
67
./
68
│ The project root directory contains this file, a license.html file as well as
69
│ a Makefile that allows to easily integrate the project. Furthermore, two
70
│ interface headers are provided: amiro-lld.h and periphALtypes.h. These are
71
│ entry points for any utilizing superproject, so it is not required (and not
72
│ recommended) to include each driver individually.
73
74
├── include/
75
│     Each driver defines exactly one include header in this directory. By
76
│     convention these files are named by the form
77
│     alld_<product_name>.h
78
│     <product_name> is a placeholder for the exact name of the according
79
│     hardware, or the product familiy, if the driver is compatible with all
80
│     parts.
81
82
├── source/
83
│     Any source files are placed in this directory. Usually there is a single
84
│     file for each driver. If multiple files are necessary, these should be
85
│     placed in an accordingly named subfolder. Names of folders and files
86
│     should comply to the aforementioned convention.
87
88
└── templates/
89
      AMiRo-LLD requires an implementation of the defined interface and an
90
      configuration header to be accessible in the include paths at compile
91
      time. Template files for both can be found in this folder. It is
92
      recommended to place according implementations of these templated not in
93
      the AMiRo-LLD project, but the superproject which includes AMiRo-LLD.
90 94

  
91 95
================================================================================
92 96

  
templates/alldconf.h
34 34
 */
35 35
#define AMIROLLD_CFG_TIME_SIZE          32
36 36

  
37
/*
38
 * DEACTIVATE DRIVERS BY UNDEFINING (i.e. commenting) THE ACCORDING MACROS.
39
 */
40

  
41
/**
42
 * @brief   Enable flag for the A3906 motor driver.
43
 * @note    Comment to disable.
44
 */
45
#define AMIROLLD_CFG_USE_A3906
46

  
47
/**
48
 * @brief   Enable flag for the AT24C01BN-SH-B EEPROM.
49
 * @note    Comment to disable.
50
 */
51
#define AMIROLLD_CFG_USE_AT24C01BN
52

  
53
/**
54
 * @brief   Enable flag for the BQ24103A battery charger.
55
 * @note    Comment to disable.
56
 */
57
#define AMIROLLD_CFG_USE_BQ24103A
58

  
59
/**
60
 * @brief   Enable flag for the BQ27500 fuel gauge.
61
 * @note    Comment to disable.
62
 */
63
#define AMIROLLD_CFG_USE_BQ27500
64

  
65
/**
66
 * @brief   Enable flag for the MHC5883L compass.
67
 * @note    Comment to disable.
68
 */
69
#define AMIROLLD_CFG_USE_HMC5883L
70

  
71
/**
72
 * @brief   Enable flag for the INA219 power monitor.
73
 * @note    Comment to disable.
74
 */
75
#define AMIROLLD_CFG_USE_INA219
76

  
77
/**
78
 * @brief   Enable flag for the L3G4200D gyroscope.
79
 * @note    Comment to disable.
80
 */
81
#define AMIROLLD_CFG_USE_L3G4200D
82

  
83
/**
84
 * @brief   Enable flag for the status LED.
85
 * @note    Comment to disable.
86
 */
87
#define AMIROLLD_CFG_USE_LED
88

  
89
/**
90
 * @brief   Enable flag for the LIS331DLH accelerometer.
91
 * @note    Comment to disable.
92
 */
93
#define AMIROLLD_CFG_USE_LIS331DLH
94

  
95
/**
96
 * @brief   Enable flag for the LTC4412 power path controller.
97
 * @note    Comment to disable.
98
 */
99
#define AMIROLLD_CFG_USE_LTC4412
100

  
101
/**
102
 * @brief   Enable flag for the MPR121 touch sensor.
103
 * @note    Comment to disable.
104
 */
105
#define AMIROLLD_CFG_USE_MPR121
106

  
107
/**
108
 * @brief   Enable flag for the PCA9544A I2C multiplexer.
109
 * @note    Comment to disable.
110
 */
111
#define AMIROLLD_CFG_USE_PCA9544A
112

  
113
/**
114
 * @brief   Enable flag for the PKLCS1212E4001 buzzer.
115
 * @note    Comment to disable.
116
 */
117
#define AMIROLLD_CFG_USE_PKLCS2121E4001
118

  
119
/**
120
 * @brief   Enable flag for the TLC5947 LED driver.
121
 * @note    Comment to disable.
122
 */
123
#define AMIROLLD_CFG_USE_TLC5947
124

  
125
/**
126
 * @brief   Enable flag for the TPS2051BDBV power switch.
127
 * @note    Comment to disable.
128
 */
129
#define AMIROLLD_CFG_USE_TPS2051BDBV
130

  
131
/**
132
 * @brief   Enable flag for the TPS62113 step-down converter.
133
 * @note    Comment to disable.
134
 */
135
#define AMIROLLD_CFG_USE_TPS62113
136

  
137 37
/**
138
 * @brief   Enable flag for the VCNL4020 proximity sensor.
139
 * @note    Comment to disable.
38
 * @brief   Enable flag a driver <driver_name>.
39
 * @details Use multiple such enable flags to activate drivers as required.
40
 *          Replace <driver_name> by the according value (e.g. use
41
 *          AMIROLLD_CFG_USE_A3906 in order to enable the A3906 motor driver.
140 42
 */
141
#define AMIROLLD_CFG_USE_VCNL4020
43
#define AMIROLLD_CFG_USE_<driver_name>
142 44

  
143 45
#endif /* _ALLDCONF_H_ */

Also available in: Unified diff