Revision 88449987 modules/LightRing_1-2/module.h

View differences:

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