Revision 88449987 modules/LightRing_1-2/module.h
modules/LightRing_1-2/module.h | ||
---|---|---|
85 | 85 |
*/ |
86 | 86 |
extern SPIConfig moduleHalSpiLightConfig; |
87 | 87 |
|
88 |
#if defined(AMIROLLD_CFG_DW1000) |
|
89 |
/** |
|
90 |
* @brief SPI interface driver for UWB DW1000 module. |
|
91 |
*/ |
|
92 |
#define MODULE_HAL_SPI_UWB SPID2 |
|
93 |
|
|
94 |
/** |
|
95 |
* @brief Configuration for the high-speed SPI interface driver of DW1000 module. |
|
96 |
*/ |
|
97 |
extern SPIConfig moduleHalSpiUwbHsConfig; |
|
98 |
|
|
99 |
/** |
|
100 |
* @brief Configuration for the low-speed SPI interface driver of DW1000 module. |
|
101 |
*/ |
|
102 |
extern SPIConfig moduleHalSpiUwbLsConfig; |
|
103 |
|
|
104 |
#else |
|
105 |
|
|
88 | 106 |
/** |
89 | 107 |
* @brief SPI interface driver for the breakout header. |
90 | 108 |
*/ |
91 | 109 |
#define MODULE_HAL_SPI_BREAKOUT SPID2 |
92 | 110 |
|
111 |
#endif /* defined(AMIROLLD_CFG_DW1000) */ |
|
112 |
|
|
93 | 113 |
/** |
94 | 114 |
* @brief UART interface driver for the breakout header (alternative to serial). |
95 | 115 |
*/ |
... | ... | |
155 | 175 |
extern ROMCONST apalControlGpio_t moduleGpioSysUartDn; |
156 | 176 |
|
157 | 177 |
/** |
158 |
* @brief IO_7 breakout signal GPIO. |
|
159 |
*/ |
|
160 |
extern apalControlGpio_t moduleGpioBreakoutIo7; |
|
161 |
|
|
162 |
/** |
|
163 |
* @brief IO_8 breakout signal GPIO. |
|
164 |
*/ |
|
165 |
extern apalControlGpio_t moduleGpioBreakoutIo8; |
|
166 |
|
|
167 |
/** |
|
168 | 178 |
* @brief IO_4 breakout signal GPIO. |
169 | 179 |
*/ |
170 | 180 |
extern apalControlGpio_t moduleGpioBreakoutIo4; |
... | ... | |
175 | 185 |
extern apalControlGpio_t moduleGpioBreakoutIo1; |
176 | 186 |
|
177 | 187 |
/** |
178 |
* @brief IO_2 breakout signal GPIO. |
|
179 |
*/ |
|
180 |
extern apalControlGpio_t moduleGpioBreakoutIo2; |
|
181 |
|
|
182 |
/** |
|
183 | 188 |
* @brief LED output signal GPIO. |
184 | 189 |
*/ |
185 | 190 |
extern ROMCONST apalControlGpio_t moduleGpioLed; |
... | ... | |
209 | 214 |
*/ |
210 | 215 |
extern ROMCONST apalControlGpio_t moduleGpioSysSync; |
211 | 216 |
|
217 |
#if defined(AMIROLLD_CFG_DW1000) |
|
218 |
|
|
219 |
/** |
|
220 |
* @brief DW1000 reset output signal |
|
221 |
* @note the reset pin should be drived as low by MCU to activate. |
|
222 |
* Then, put back the reset pin as input to MCU (tri-state float on the air |
|
223 |
* is not supported in AMiRo) |
|
224 |
*/ |
|
225 |
extern ROMCONST apalControlGpio_t moduleGpioDw1000Reset; |
|
226 |
|
|
227 |
/** |
|
228 |
* @brief DW1000 wakeup signal |
|
229 |
*/ |
|
230 |
extern ROMCONST apalControlGpio_t moduleGpioDw1000WakeUp; |
|
231 |
|
|
232 |
/** |
|
233 |
* @brief DW1000 interrupt IRQn input signal. |
|
234 |
*/ |
|
235 |
extern ROMCONST apalControlGpio_t moduleGpioDw1000Irqn; |
|
236 |
|
|
237 |
/** |
|
238 |
* @brief DW1000 SPI chip select output signal. |
|
239 |
*/ |
|
240 |
extern ROMCONST apalControlGpio_t moduleGpioSpiChipSelect ; |
|
241 |
|
|
242 |
#else |
|
243 |
/** |
|
244 |
* @brief IO_2 breakout signal GPIO. |
|
245 |
*/ |
|
246 |
extern apalControlGpio_t moduleGpioBreakoutIo2; |
|
247 |
|
|
248 |
/** |
|
249 |
* @brief IO_7 breakout signal GPIO. |
|
250 |
*/ |
|
251 |
extern apalControlGpio_t moduleGpioBreakoutIo7; |
|
252 |
|
|
253 |
/** |
|
254 |
* @brief IO_8 breakout signal GPIO. |
|
255 |
*/ |
|
256 |
extern apalControlGpio_t moduleGpioBreakoutIo8; |
|
257 |
|
|
258 |
#endif /* defined(AMIROLLD_CFG_DW1000) */ |
|
259 |
|
|
212 | 260 |
/** @} */ |
213 | 261 |
|
214 | 262 |
/*===========================================================================*/ |
... | ... | |
263 | 311 |
*/ |
264 | 312 |
#define MODULE_OS_IOEVENTFLAGS_BREAKOUTIO7 AOS_IOEVENT_FLAG(PAL_PAD(LINE_IO_7)) |
265 | 313 |
|
314 |
#if defined(AMIROLLD_CFG_DW1000) |
|
315 |
/** |
|
316 |
* @brief Event flag to be call dwt_isr() interrupt. |
|
317 |
*/ |
|
318 |
#define MODULE_OS_IOEVENTFLAGS_DW1000 AOS_IOEVENT_FLAG(PAL_PAD(LINE_IO_8)) |
|
319 |
#else |
|
266 | 320 |
/** |
267 | 321 |
* @brief Event flag to be set on a IO_8 (breakout) interrupt. |
268 | 322 |
*/ |
269 | 323 |
#define MODULE_OS_IOEVENTFLAGS_BREAKOUTIO8 AOS_IOEVENT_FLAG(PAL_PAD(LINE_IO_8)) |
324 |
#endif /* defined(AMIROLLD_CFG_DW1000) */ |
|
270 | 325 |
|
271 | 326 |
/** |
272 | 327 |
* @brief Event flag to be set on a SYS_PD interrupt. |
... | ... | |
286 | 341 |
*/ |
287 | 342 |
#define MODULE_INIT_INTERRUPTS() { \ |
288 | 343 |
/* breakout interrupts must be enabled explicitely */ \ |
344 |
MODULE_INIT_INTERRUPTS_DW1000(); \ |
|
289 | 345 |
} |
346 |
#if defined(AMIROLLD_CFG_DW1000) |
|
347 |
#define MODULE_INIT_INTERRUPTS_DW1000() { \ |
|
348 |
palSetLineCallback(moduleGpioDw1000Irqn.gpio->line, aosSysGetStdIntCallback(), &moduleGpioDw1000Irqn.gpio->line); \ |
|
349 |
palEnableLineEvent(moduleGpioDw1000Irqn.gpio->line, APAL2CH_EDGE(moduleGpioDw1000Irqn.meta.edge)); \ |
|
350 |
} |
|
351 |
#else /* defined(AMIROLLD_CFG_DW1000) */ |
|
352 |
#define MODULE_INIT_INTERRUPTS_DW1000() { \ |
|
353 |
} |
|
354 |
#endif /* defined(AMIROLLD_CFG_DW1000) */ |
|
290 | 355 |
|
291 | 356 |
/** |
292 | 357 |
* @brief Unit test initialization hook. |
... | ... | |
298 | 363 |
aosShellAddCommand(&aos.shell, &moduleUtAlldLed.shellcmd); \ |
299 | 364 |
aosShellAddCommand(&aos.shell, &moduleUtAlldMic9404x.shellcmd); \ |
300 | 365 |
aosShellAddCommand(&aos.shell, &moduleUtAlldTlc5947.shellcmd); \ |
366 |
MODULE_INIT_TESTS_DW1000(); \ |
|
301 | 367 |
} |
368 |
#if defined(AMIROLLD_CFG_DW1000) |
|
369 |
#define MODULE_INIT_TESTS_DW1000() { \ |
|
370 |
aosShellAddCommand(&aos.shell, &moduleUtAlldDw1000.shellcmd); \ |
|
371 |
} |
|
372 |
#else /* defined(AMIROLLD_CFG_DW1000) */ |
|
373 |
#define MODULE_INIT_TESTS_DW1000() { \ |
|
374 |
} |
|
375 |
#endif /* defined(AMIROLLD_CFG_DW1000) */ |
|
302 | 376 |
|
303 | 377 |
/** |
304 | 378 |
* @brief Periphery communication interfaces initialization hook. |
... | ... | |
313 | 387 |
i2cStart(&MODULE_HAL_I2C_EEPROM_PWRMTR_BREAKOUT, &moduleHalI2cEepromPwrmtrBreakoutConfig); \ |
314 | 388 |
/* SPI */ \ |
315 | 389 |
spiStart(&MODULE_HAL_SPI_LIGHT, &moduleHalSpiLightConfig); \ |
390 |
MODULE_INIT_PERIPHERY_COMM_DW1000(); \ |
|
316 | 391 |
} |
392 |
#if defined(AMIROLLD_CFG_DW1000) |
|
393 |
#define MODULE_INIT_PERIPHERY_COMM_DW1000() { \ |
|
394 |
spiStart(&MODULE_HAL_SPI_UWB, &moduleHalSpiUwbLsConfig); \ |
|
395 |
} |
|
396 |
#else /* defined(AMIROLLD_CFG_DW1000) */ |
|
397 |
#define MODULE_INIT_PERIPHERY_COMM_DW1000() { \ |
|
398 |
} |
|
399 |
#endif /* defined(AMIROLLD_CFG_DW1000) */ |
|
317 | 400 |
|
318 | 401 |
/** |
319 | 402 |
* @brief Periphery communication interface deinitialization hook. |
... | ... | |
323 | 406 |
spiStop(&MODULE_HAL_SPI_LIGHT); \ |
324 | 407 |
/* I2C */ \ |
325 | 408 |
i2cStop(&MODULE_HAL_I2C_EEPROM_PWRMTR_BREAKOUT); \ |
409 |
MODULE_SHUTDOWN_PERIPHERY_COMM_DW1000(); \ |
|
326 | 410 |
/* don't stop the serial driver so messages can still be printed */ \ |
327 | 411 |
} |
412 |
#if defined(AMIROLLD_CFG_DW1000) |
|
413 |
#define MODULE_SHUTDOWN_PERIPHERY_COMM_DW1000() { \ |
|
414 |
/* SPI */ \ |
|
415 |
spiStop(&MODULE_HAL_SPI_UWB); \ |
|
416 |
} |
|
417 |
#else /* defined(AMIROLLD_CFG_DW1000) */ |
|
418 |
#define MODULE_SHUTDOWN_PERIPHERY_COMM_DW1000() { \ |
|
419 |
} |
|
420 |
#endif /* defined(AMIROLLD_CFG_DW1000) */ |
|
421 |
|
|
422 |
/** |
|
423 |
* @brief HOOK to call process_deca_irq() func when the dw1000 interrupt pin is activated. |
|
424 |
*/ |
|
425 |
#define MODULE_MAIN_LOOP_IO_EVENT(eventflags) { \ |
|
426 |
MODULE_MAIN_LOOP_IO_EVENT_DW1000(); \ |
|
427 |
} |
|
428 |
#if defined(AMIROLLD_CFG_DW1000) |
|
429 |
#define MODULE_MAIN_LOOP_IO_EVENT_DW1000() { \ |
|
430 |
if(eventflags & MODULE_OS_IOEVENTFLAGS_DW1000) { \ |
|
431 |
process_deca_irq(); \ |
|
432 |
} \ |
|
433 |
} |
|
434 |
#else /* defined(AMIROLLD_CFG_DW1000) */ |
|
435 |
#define MODULE_MAIN_LOOP_IO_EVENT_DW1000() { \ |
|
436 |
} |
|
437 |
#endif /* defined(AMIROLLD_CFG_DW1000) */ |
|
328 | 438 |
|
329 | 439 |
/** @} */ |
330 | 440 |
|
... | ... | |
390 | 500 |
//#include <alld_SNx5C3221E.h> |
391 | 501 |
#include <alld_TLC5947.h> |
392 | 502 |
|
503 |
#if defined(AMIROLLD_CFG_DW1000) |
|
504 |
#include <alld_DW1000.h> |
|
505 |
|
|
506 |
extern DW1000Driver moduleLldDw1000; |
|
507 |
|
|
508 |
#endif /* defined(AMIROLLD_CFG_DW1000) */ |
|
509 |
|
|
393 | 510 |
/** |
394 | 511 |
* @brief EEPROM driver. |
395 | 512 |
*/ |
... | ... | |
452 | 569 |
//#include <ut_alld_SNx5C3221E_v1.h> |
453 | 570 |
#include <ut_alld_TLC5947_v1.h> |
454 | 571 |
|
572 |
#if defined(AMIROLLD_CFG_DW1000) && (AMIROLLD_CFG_DW1000 == 1) |
|
573 |
#include <ut_alld_DW1000_v1.h> |
|
574 |
|
|
575 |
/** |
|
576 |
* @brief DW1000 unit test object. |
|
577 |
*/ |
|
578 |
extern aos_unittest_t moduleUtAlldDw1000; |
|
579 |
|
|
580 |
#endif /* defined(AMIROLLD_CFG_DW1000) && (AMIROLLD_CFG_DW1000 == 1) */ |
|
581 |
|
|
455 | 582 |
/** |
456 | 583 |
* @brief EEPROM unit test object. |
457 | 584 |
*/ |
Also available in: Unified diff