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