Statistics
| Branch: | Tag: | Revision:

amiro-os / modules / DiWheelDrive_1-1 / module.h @ 0128be0f

History | View | Annotate | Download (17.672 KB)

1 e545e620 Thomas Schöpping
/*
2
AMiRo-OS is an operating system designed for the Autonomous Mini Robot (AMiRo) platform.
3
Copyright (C) 2016..2018  Thomas Schöpping et al.
4

5
This program is free software: you can redistribute it and/or modify
6
it under the terms of the GNU General Public License as published by
7
the Free Software Foundation, either version 3 of the License, or
8
(at your option) any later version.
9

10
This program is distributed in the hope that it will be useful,
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
GNU General Public License for more details.
14

15
You should have received a copy of the GNU General Public License
16
along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
#ifndef _AMIROOS_MODULE_H_
20
#define _AMIROOS_MODULE_H_
21
22
/*===========================================================================*/
23
/**
24
 * @name Module specific functions
25
 * @{
26
 */
27
/*===========================================================================*/
28
29
/** @} */
30
31
/*===========================================================================*/
32
/**
33
 * @name ChibiOS/HAL configuration
34
 * @{
35
 */
36
/*===========================================================================*/
37
#include <hal.h>
38
#include <hal_qei.h>
39 0128be0f Marc Rothmann
#include <aos_interrupts.h>
40 e545e620 Thomas Schöpping
41
/**
42
 * @brief   CAN driver to use.
43
 */
44
#define MODULE_HAL_CAN                          CAND1
45
46
/**
47
 * @brief   Configuration for the CAN driver.
48
 */
49
extern CANConfig moduleHalCanConfig;
50
51
/**
52 0128be0f Marc Rothmann
 * @brief   Interrupt driver (PAL).
53 e545e620 Thomas Schöpping
 */
54 0128be0f Marc Rothmann
55
extern aos_interrupt_driver_t moduleIntDriver;
56 e545e620 Thomas Schöpping
57
/**
58 0128be0f Marc Rothmann
 * @brief   Interrupt driver config.
59 e545e620 Thomas Schöpping
 */
60 0128be0f Marc Rothmann
extern aos_interrupt_cfg_t moduleIntConfig[10];
61 e545e620 Thomas Schöpping
62
/**
63
 * @brief   I2C driver to access the compass.
64
 */
65
#define MODULE_HAL_I2C_COMPASS                  I2CD1
66
67
/**
68
 * @brief   Configuration for the compass I2C driver.
69
 */
70
extern I2CConfig moduleHalI2cCompassConfig;
71
72
/**
73
 * @brief   I2C driver to access multiplexer, proximity sensors, EEPROM and power monitor.
74
 */
75
#define MODULE_HAL_I2C_PROX_EEPROM_PWRMTR       I2CD2
76
77
/**
78
 * @brief   Configuration for the multiplexer, proximity, EEPROM and power monitor I2C driver.
79
 */
80
extern I2CConfig moduleHalI2cProxEepromPwrmtrConfig;
81
82
/**
83
 * @brief   PWM driver to use.
84
 */
85
#define MODULE_HAL_PWM_DRIVE                    PWMD2
86
87
/**
88
 * @brief   Configuration for the PWM driver.
89
 */
90
extern PWMConfig moduleHalPwmDriveConfig;
91
92
/**
93
 * @brief   Drive PWM channel for the left wheel forward direction.
94
 */
95
#define MODULE_HAL_PWM_DRIVE_CHANNEL_LEFT_FORWARD     0
96
97
/**
98
 * @brief   Drive PWM channel for the left wheel backward direction.
99
 */
100
#define MODULE_HAL_PWM_DRIVE_CHANNEL_LEFT_BACKWARD    1
101
102
/**
103
 * @brief   Drive PWM channel for the right wheel forward direction.
104
 */
105
#define MODULE_HAL_PWM_DRIVE_CHANNEL_RIGHT_FORWARD    2
106
107
/**
108
 * @brief   Drive PWM channel for the right wheel backward direction.
109
 */
110
#define MODULE_HAL_PWM_DRIVE_CHANNEL_RIGHT_BACKWARD   3
111
112
/**
113
 * @brief   Quadrature encooder for the left wheel.
114
 */
115
#define MODULE_HAL_QEI_LEFT_WHEEL               QEID3
116
117
/**
118
 * @brief   Quadrature encooder for the right wheel.
119
 */
120
#define MODULE_HAL_QEI_RIGHT_WHEEL              QEID4
121
122
/**
123
 * @brief   Configuration for both quadrature encoders.
124
 */
125
extern QEIConfig moduleHalQeiConfig;
126
127
/**
128
 * @brief   QEI increments per wheel revolution.
129
 * @details 2 signal edges per pulse * 2 signals * 16 pulses per motor revolution * 22:1 gearbox
130
 */
131
#define MODULE_HAL_QEI_INCREMENTS_PER_REVOLUTION  (apalQEICount_t)(2 * 2 * 16 * 22)
132
133
/**
134
 * @brief   Serial driver of the programmer interface.
135
 */
136
#define MODULE_HAL_PROGIF                       SD1
137
138
/**
139
 * @brief   Configuration for the programmer serial interface driver.
140
 */
141
extern SerialConfig moduleHalProgIfConfig;
142
143
/**
144
 * @brief   SPI interface driver for the motion sensors (gyroscope and accelerometer).
145
 */
146
#define MODULE_HAL_SPI_MOTION                   SPID1
147
148
/**
149
 * @brief   Configuration for the motion sensor SPI interface  driver to communicate with the accelerometer.
150
 */
151
extern SPIConfig moduleHalSpiAccelerometerConfig;
152
153
/**
154
 * @brief   Configuration for the motion sensor SPI interface  driver to communicate with the gyroscope.
155
 */
156
extern SPIConfig moduleHalSpiGyroscopeConfig;
157
158 8399aeae Thomas Schöpping
/**
159
 * @brief   Real-Time Clock driver.
160
 */
161
#define MODULE_HAL_RTC                          RTCD1
162
163 e545e620 Thomas Schöpping
/** @} */
164
165
/*===========================================================================*/
166
/**
167
 * @name GPIO definitions
168
 * @{
169
 */
170
/*===========================================================================*/
171
#include <amiro-lld.h>
172
173
/**
174
 * @brief   Interrupt channel for the SYS_SYNC signal.
175
 */
176 0128be0f Marc Rothmann
#define MODULE_GPIO_INT_SYSSYNC          ((uint8_t)1)
177 e545e620 Thomas Schöpping
178
/**
179
 * @brief   Interrupt channel for the SYS_WARMRST signal.
180
 */
181 0128be0f Marc Rothmann
#define MODULE_GPIO_INT_SYSWARMRST       ((uint8_t)2)
182 e545e620 Thomas Schöpping
183
/**
184
 * @brief   Interrupt channel for the PATH_DCSTAT signal.
185
 */
186 0128be0f Marc Rothmann
#define MODULE_GPIO_INT_PATHDCSTAT       ((uint8_t)3)
187 e545e620 Thomas Schöpping
188
/**
189
 * @brief   Interrupt channel for the COMPASS_DRDY signal.
190
 */
191 0128be0f Marc Rothmann
#define MODULE_GPIO_INT_COMPASSDRDY      ((uint8_t)4)
192 e545e620 Thomas Schöpping
193
/**
194
 * @brief   Interrupt channel for the SYS_PD signal.
195
 */
196 0128be0f Marc Rothmann
#define MODULE_GPIO_INT_SYSPD            ((uint8_t)5)
197 e545e620 Thomas Schöpping
198
/**
199
 * @brief   Interrupt channel for the SYS_REG_EN signal.
200
 */
201 0128be0f Marc Rothmann
#define MODULE_GPIO_INT_SYSREGEN         ((uint8_t)6)
202 e545e620 Thomas Schöpping
203
/**
204
 * @brief   Interrupt channel for the IR_INT signal.
205
 */
206 0128be0f Marc Rothmann
#define MODULE_GPIO_INT_IRINT            ((uint8_t)7)
207 e545e620 Thomas Schöpping
208
/**
209
 * @brief   Interrupt channel for the GYRO_DRDY signal.
210
 */
211 0128be0f Marc Rothmann
#define MODULE_GPIO_INT_GYRODRDY         ((uint8_t)8)
212 e545e620 Thomas Schöpping
213
/**
214
 * @brief   Interrupt channel for the SYS_UART_UP signal.
215
 */
216 0128be0f Marc Rothmann
#define MODULE_GPIO_INT_SYSUARTUP        ((uint8_t)9)
217 e545e620 Thomas Schöpping
218
/**
219
 * @brief   Interrupt channel for the ACCEL_INT signal.
220
 */
221 0128be0f Marc Rothmann
#define MODULE_GPIO_INT_ACCELINT         ((uint8_t)10)
222 e545e620 Thomas Schöpping
223
/**
224
 * @brief   LED output signal GPIO.
225
 */
226
extern apalGpio_t moduleGpioLed;
227
228
/**
229
 * @brief   POWER_EN output signal GPIO.
230
 */
231
extern apalGpio_t moduleGpioPowerEn;
232
233
/**
234
 * @brief   COMPASS_DRDY input signal GPIO.
235
 */
236
extern apalGpio_t moduleGpioCompassDrdy;
237
238
/**
239
 * @brief   IR_INT input signal GPIO.
240
 */
241
extern apalGpio_t moduleGpioIrInt;
242
243
/**
244
 * @brief   GYRO_DRDY input signal GPIO.
245
 */
246
extern apalGpio_t moduleGpioGyroDrdy;
247
248
/**
249
 * @brief   SYS_UART_UP bidirectional signal GPIO.
250
 */
251
extern apalGpio_t moduleGpioSysUartUp;
252
253
/**
254
 * @brief   ACCEL_INT input signal GPIO.
255
 */
256
extern apalGpio_t moduleGpioAccelInt;
257
258
/**
259
 * @brief   SYS_SNYC bidirectional signal GPIO.
260
 */
261
extern apalGpio_t moduleGpioSysSync;
262
263
/**
264
 * @brief   PATH_DCSTAT input signal GPIO.
265
 */
266
extern apalGpio_t moduleGpioPathDcStat;
267
268
/**
269
 * @brief   PATH_DCEN output signal GPIO.
270
 */
271
extern apalGpio_t moduleGpioPathDcEn;
272
273
/**
274
 * @brief   SYS_PD bidirectional signal GPIO.
275
 */
276
extern apalGpio_t moduleGpioSysPd;
277
278
/**
279
 * @brief   SYS_REG_EN input signal GPIO.
280
 */
281
extern apalGpio_t moduleGpioSysRegEn;
282
283
/**
284
 * @brief   SYS_WARMRST bidirectional signal GPIO.
285
 */
286
extern apalGpio_t moduleGpioSysWarmrst;
287
288
/** @} */
289
290
/*===========================================================================*/
291
/**
292
 * @name AMiRo-OS core configurations
293
 * @{
294
 */
295
/*===========================================================================*/
296
297
/**
298
 * @brief   Event flag to be set on a SYS_SYNC interrupt.
299
 */
300 0128be0f Marc Rothmann
#define MODULE_OS_IOEVENTFLAGS_SYSSYNC          ((eventflags_t)(1 << MODULE_GPIO_INT_SYSSYNC))
301 e545e620 Thomas Schöpping
302
/**
303
 * @brief   Event flag to be set on a SYS_WARMRST interrupt.
304
 */
305 0128be0f Marc Rothmann
#define MODULE_OS_IOEVENTFLAGS_SYSWARMRST       ((eventflags_t)(1 << MODULE_GPIO_INT_SYSWARMRST))
306 e545e620 Thomas Schöpping
307
/**
308
 * @brief   Event flag to be set on a PATH_DCSTAT interrupt.
309
 */
310 0128be0f Marc Rothmann
#define MODULE_OS_IOEVENTFLAGS_PATHDCSTAT       ((eventflags_t)(1 << MODULE_GPIO_INT_PATHDCSTAT))
311 e545e620 Thomas Schöpping
312
/**
313
 * @brief   Event flag to be set on a COMPASS_DRDY interrupt.
314
 */
315 0128be0f Marc Rothmann
#define MODULE_OS_IOEVENTFLAGS_COMPASSDRDY      ((eventflags_t)(1 << MODULE_GPIO_INT_COMPASSDRDY))
316 e545e620 Thomas Schöpping
317
/**
318
 * @brief   Event flag to be set on a SYS_PD interrupt.
319
 */
320 0128be0f Marc Rothmann
#define MODULE_OS_IOEVENTFLAGS_SYSPD            ((eventflags_t)(1 << MODULE_GPIO_INT_SYSPD))
321 e545e620 Thomas Schöpping
322
/**
323
 * @brief   Event flag to be set on a SYS_REG_EN interrupt.
324
 */
325 0128be0f Marc Rothmann
#define MODULE_OS_IOEVENTFLAGS_SYSREGEN         ((eventflags_t)(1 << MODULE_GPIO_INT_SYSREGEN))
326 e545e620 Thomas Schöpping
327
/**
328
 * @brief   Event flag to be set on a IR_INT interrupt.
329
 */
330 0128be0f Marc Rothmann
#define MODULE_OS_IOEVENTFLAGS_IRINT            ((eventflags_t)(1 << MODULE_GPIO_INT_IRINT))
331 e545e620 Thomas Schöpping
332
/**
333
 * @brief   Event flag to be set on a GYRO_DRDY interrupt.
334
 */
335 0128be0f Marc Rothmann
#define MODULE_OS_IOEVENTFLAGS_GYRODRDY         ((eventflags_t)(1 << MODULE_GPIO_INT_GYRODRDY))
336 e545e620 Thomas Schöpping
337
/**
338
 * @brief   Event flag to be set on a SYS_UART_UP interrupt.
339
 */
340 0128be0f Marc Rothmann
#define MODULE_OS_IOEVENTFLAGS_SYSUARTUP        ((eventflags_t)(1 << MODULE_GPIO_INT_SYSUARTUP))
341 e545e620 Thomas Schöpping
342
/**
343
 * @brief   Event flag to be set on a ACCEL_INT interrupt.
344
 */
345 0128be0f Marc Rothmann
#define MODULE_OS_IOEVENTFLAGS_ACCELINT         ((eventflags_t)(1 << MODULE_GPIO_INT_ACCELINT))
346 e545e620 Thomas Schöpping
347 6b53f6bf Thomas Schöpping
#if (AMIROOS_CFG_SHELL_ENABLE == true) || defined(__DOXYGEN__)
348 e545e620 Thomas Schöpping
/**
349
 * @brief   Shell prompt text.
350
 */
351
extern const char* moduleShellPrompt;
352 6b53f6bf Thomas Schöpping
#endif
353 e545e620 Thomas Schöpping
354
/**
355
 * @brief   Additional HAL initialization hook.
356
 */
357
#define MODULE_INIT_HAL_EXTRA() {                                             \
358
  qeiInit();                                                                  \
359
}
360
361
/**
362
 * @brief   Unit test initialization hook.
363
 */
364
#define MODULE_INIT_TESTS() {                                                 \
365
  /* add unit-test shell commands */                                          \
366 6b53f6bf Thomas Schöpping
  aosShellAddCommand(&aos.shell, &moduleUtAlldA3906.shellcmd);                \
367
  aosShellAddCommand(&aos.shell, &moduleUtAlldAt24c01bn.shellcmd);            \
368
  aosShellAddCommand(&aos.shell, &moduleUtAlldHmc5883l.shellcmd);             \
369
  aosShellAddCommand(&aos.shell, &moduleUtAlldIna219.shellcmd);               \
370
  aosShellAddCommand(&aos.shell, &moduleUtAlldL3g4200d.shellcmd);             \
371
  aosShellAddCommand(&aos.shell, &moduleUtAlldLed.shellcmd);                  \
372
  aosShellAddCommand(&aos.shell, &moduleUtAlldLis331dlh.shellcmd);            \
373
  aosShellAddCommand(&aos.shell, &moduleUtAlldLtc4412.shellcmd);              \
374
  aosShellAddCommand(&aos.shell, &moduleUtAlldPca9544a.shellcmd);             \
375
  aosShellAddCommand(&aos.shell, &moduleUtAlldTps62113.shellcmd);             \
376
  aosShellAddCommand(&aos.shell, &moduleUtAlldVcnl4020.shellcmd);             \
377 e545e620 Thomas Schöpping
}
378
379
/**
380
 * @brief   Periphery communication interfaces initialization hook.
381
 */
382
#define MODULE_INIT_PERIPHERY_COMM() {                                        \
383
  /* serial driver */                                                         \
384
  sdStart(&MODULE_HAL_PROGIF, &moduleHalProgIfConfig);                        \
385
  /* I2C */                                                                   \
386
  moduleHalI2cCompassConfig.clock_speed = (HMC5883L_LLD_I2C_MAXFREQUENCY < moduleHalI2cCompassConfig.clock_speed) ? HMC5883L_LLD_I2C_MAXFREQUENCY : moduleHalI2cCompassConfig.clock_speed;  \
387
  moduleHalI2cCompassConfig.duty_cycle = (moduleHalI2cCompassConfig.clock_speed <= 100000) ? STD_DUTY_CYCLE : FAST_DUTY_CYCLE_2;  \
388
  i2cStart(&MODULE_HAL_I2C_COMPASS, &moduleHalI2cCompassConfig);              \
389
  moduleHalI2cProxEepromPwrmtrConfig.clock_speed = (PCA9544A_LLD_I2C_MAXFREQUENCY < moduleHalI2cProxEepromPwrmtrConfig.clock_speed) ? PCA9544A_LLD_I2C_MAXFREQUENCY : moduleHalI2cProxEepromPwrmtrConfig.clock_speed; \
390
  moduleHalI2cProxEepromPwrmtrConfig.clock_speed = (VCNL4020_LLD_I2C_MAXFREQUENCY < moduleHalI2cProxEepromPwrmtrConfig.clock_speed) ? VCNL4020_LLD_I2C_MAXFREQUENCY : moduleHalI2cProxEepromPwrmtrConfig.clock_speed; \
391
  moduleHalI2cProxEepromPwrmtrConfig.clock_speed = (AT24C01BN_LLD_I2C_MAXFREQUENCY < moduleHalI2cProxEepromPwrmtrConfig.clock_speed) ? AT24C01BN_LLD_I2C_MAXFREQUENCY : moduleHalI2cProxEepromPwrmtrConfig.clock_speed; \
392
  moduleHalI2cProxEepromPwrmtrConfig.clock_speed = (INA219_LLD_I2C_MAXFREQUENCY < moduleHalI2cProxEepromPwrmtrConfig.clock_speed) ? INA219_LLD_I2C_MAXFREQUENCY : moduleHalI2cProxEepromPwrmtrConfig.clock_speed; \
393
  moduleHalI2cProxEepromPwrmtrConfig.duty_cycle = (moduleHalI2cProxEepromPwrmtrConfig.clock_speed <= 100000) ? STD_DUTY_CYCLE : FAST_DUTY_CYCLE_2;  \
394
  i2cStart(&MODULE_HAL_I2C_PROX_EEPROM_PWRMTR, &moduleHalI2cProxEepromPwrmtrConfig);  \
395
  /* SPI is shared between accelerometer and gyroscope and needs to be restarted for each transmission */ \
396
  /* PWM */                                                                   \
397
  pwmStart(&MODULE_HAL_PWM_DRIVE, &moduleHalPwmDriveConfig);                  \
398
  /* QEI */                                                                   \
399
  qeiStart(&MODULE_HAL_QEI_LEFT_WHEEL, &moduleHalQeiConfig);                  \
400
  qeiStart(&MODULE_HAL_QEI_RIGHT_WHEEL, &moduleHalQeiConfig);                 \
401
  qeiEnable(&MODULE_HAL_QEI_LEFT_WHEEL);                                      \
402
  qeiEnable(&MODULE_HAL_QEI_RIGHT_WHEEL);                                     \
403
}
404
405
/**
406
 * @brief   Periphery communication interface deinitialization hook.
407
 */
408
#define MODULE_SHUTDOWN_PERIPHERY_COMM() {                                    \
409
  /* PWM */                                                                   \
410
  pwmStop(&MODULE_HAL_PWM_DRIVE);                                             \
411
  /* QEI */                                                                   \
412
  qeiDisable(&MODULE_HAL_QEI_LEFT_WHEEL);                                     \
413
  qeiDisable(&MODULE_HAL_QEI_RIGHT_WHEEL);                                    \
414
  qeiStop(&MODULE_HAL_QEI_LEFT_WHEEL);                                        \
415
  qeiStop(&MODULE_HAL_QEI_RIGHT_WHEEL);                                       \
416
  /* I2C */                                                                   \
417
  i2cStop(&MODULE_HAL_I2C_COMPASS);                                           \
418
  i2cStop(&MODULE_HAL_I2C_PROX_EEPROM_PWRMTR);                                \
419
  /* don't stop the serial driver so messages can still be printed */         \
420
}
421
422
/** @} */
423
424
/*===========================================================================*/
425
/**
426 6b53f6bf Thomas Schöpping
 * @name Startup Shutdown Synchronization Protocol (SSSP)
427
 * @{
428
 */
429
/*===========================================================================*/
430
431
/**
432
 * @brief   PD signal GPIO.
433
 */
434
extern apalControlGpio_t moduleSsspGpioPd;
435
436
/**
437
 * @brief   SYNC signal GPIO.
438
 */
439
extern apalControlGpio_t moduleSsspGpioSync;
440
441
/**
442 933df08e Thomas Schöpping
 * @brief   UP signal GPIO.
443
 */
444
extern apalControlGpio_t moduleSsspGpioUp;
445
446
/**
447 6b53f6bf Thomas Schöpping
 * @brief   Event flags for PD signal events.
448
 */
449
#define MODULE_SSSP_EVENTFLAGS_PD               MODULE_OS_IOEVENTFLAGS_SYSPD
450
451
/**
452 933df08e Thomas Schöpping
 * @brief   Event flags for SYNC signal events.
453 6b53f6bf Thomas Schöpping
 */
454
#define MODULE_SSSP_EVENTFLAGS_SYNC             MODULE_OS_IOEVENTFLAGS_SYSSYNC
455
456
/**
457 933df08e Thomas Schöpping
 * @brief   Event flags for UP signal events.
458
 */
459
#define MODULE_SSSP_EVENTFLAGS_UP               MODULE_OS_IOEVENTFLAGS_SYSUARTUP
460
461 6b53f6bf Thomas Schöpping
/** @} */
462
463
/*===========================================================================*/
464
/**
465 e545e620 Thomas Schöpping
 * @name Low-level drivers
466
 * @{
467
 */
468
/*===========================================================================*/
469
#include <alld_a3906.h>
470
#include <alld_at24c01bn-sh-b.h>
471
#include <alld_hmc5883l.h>
472
#include <alld_ina219.h>
473
#include <alld_l3g4200d.h>
474
#include <alld_led.h>
475
#include <alld_lis331dlh.h>
476
#include <alld_ltc4412.h>
477
#include <alld_pca9544a.h>
478
#include <alld_tps62113.h>
479
#include <alld_vcnl4020.h>
480
481
/**
482
 * @brief   Motor driver.
483
 */
484
extern A3906Driver moduleLldMotors;
485
486
/**
487
 * @brief   EEPROM driver.
488
 */
489
extern AT24C01BNDriver moduleLldEeprom;
490
491
/**
492
 * @brief   Compass driver.
493
 */
494
extern HMC5883LDriver moduleLldCompass;
495
496
/**
497
 * @brief   Power monitor (VDD) driver.
498
 */
499
extern INA219Driver moduleLldPowerMonitorVdd;
500
501
/**
502
 * @brief   Gyroscope driver.
503
 */
504
extern L3G4200DDriver moduleLldGyroscope;
505
506
/**
507
 * @brief   Status LED driver.
508
 */
509
extern LEDDriver moduleLldStatusLed;
510
511
/**
512
 * @brief   Accelerometer driver.
513
 */
514
extern LIS331DLHDriver moduleLldAccelerometer;
515
516
/**
517
 * @brief   Power path controler (charging pins) driver.
518
 */
519
extern LTC4412Driver moduleLldPowerPathController;
520
521
/**
522
 * @brief   I2C multiplexer driver.
523
 */
524
extern PCA9544ADriver moduleLldI2cMultiplexer;
525
526
/**
527
 * @brief   Step down converter (VDRIVE) driver.
528
 */
529
extern TPS62113Driver moduleLldStepDownConverterVdrive;
530
531
/**
532
 * @brief   Proximity sensor driver.
533
 */
534
extern VCNL4020Driver moduleLldProximity;
535
536
/** @} */
537
538
/*===========================================================================*/
539
/**
540
 * @name Unit tests (UT)
541
 * @{
542
 */
543
/*===========================================================================*/
544
#if (AMIROOS_CFG_TESTS_ENABLE == true) || defined(__DOXYGEN__)
545
#include <ut_alld_a3906.h>
546
#include <ut_alld_at24c01bn-sh-b.h>
547
#include <ut_alld_hmc5883l.h>
548
#include <ut_alld_ina219.h>
549
#include <ut_alld_l3g4200d.h>
550
#include <ut_alld_led.h>
551
#include <ut_alld_lis331dlh.h>
552
#include <ut_alld_ltc4412.h>
553
#include <ut_alld_pca9544a.h>
554
#include <ut_alld_tps62113.h>
555
#include <ut_alld_vcnl4020.h>
556
557
/**
558
 * @brief   A3906 (motor driver) unit test object.
559
 */
560
extern aos_unittest_t moduleUtAlldA3906;
561
562
/**
563
 * @brief   AT24C01BN-SH-B (EEPROM) unit test object.
564
 */
565
extern aos_unittest_t moduleUtAlldAt24c01bn;
566
567
/**
568
 * @brief   HMC5883L (compass) unit test object.
569
 */
570
extern aos_unittest_t moduleUtAlldHmc5883l;
571
572
/**
573
 * @brief   INA219 (power monitor) unit test object.
574
 */
575
extern aos_unittest_t moduleUtAlldIna219;
576
577
/**
578
 * @brief   L3G4200D (gyroscope) unit test object.
579
 */
580
extern aos_unittest_t moduleUtAlldL3g4200d;
581
582
/**
583
 * @brief   Status LED unit test object.
584
 */
585
extern aos_unittest_t moduleUtAlldLed;
586
587
/**
588
 * @brief   LIS331DLH (accelerometer) unit test object.
589
 */
590
extern aos_unittest_t moduleUtAlldLis331dlh;
591
592
/**
593
 * @brief   LTC4412 (power path controller) unit test object.
594
 */
595
extern aos_unittest_t moduleUtAlldLtc4412;
596
597
/**
598
 * @brief   PCA9544A (I2C multiplexer) unit test object.
599
 */
600
extern aos_unittest_t moduleUtAlldPca9544a;
601
602
/**
603
 * @brief   TPS62113 (step-down converter) unit test object.
604
 */
605
extern aos_unittest_t moduleUtAlldTps62113;
606
607
/**
608
 * @brief   VCNL4020 (proximity sensor) unit test object.
609
 */
610
extern aos_unittest_t moduleUtAlldVcnl4020;
611
612
#endif /* AMIROOS_CFG_TESTS_ENABLE == true */
613
614
/** @} */
615
616
#endif /* _AMIROOS_MODULE_H_ */