Revision bb46c559
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