Revision 88449987 modules/LightRing_1-2/module.c

View differences:

modules/LightRing_1-2/module.c
69 69
  /* CR2                         */ SPI_CR2_RXDMAEN | SPI_CR2_TXDMAEN,
70 70
};
71 71

  
72
#if defined(AMIROLLD_CFG_DW1000)
73

  
74
/*! SPI (high speed) configuration for DW1000 */
75
SPIConfig moduleHalSpiUwbHsConfig = {
76
  /* circular buffer mode        */ false,
77
  /* callback function pointer   */ NULL,
78
  /* chip select line port       */ PAL_PORT(LINE_SPI_SS_N),
79
  /* chip select line pad number */ PAL_PAD(LINE_SPI_SS_N),
80
  /* CR1                         */ 0,                                  // 36/2 Mbps
81
  /* CR2                         */ SPI_CR2_RXDMAEN | SPI_CR2_TXDMAEN,  // 0
82
};
83
/*! SPI (low speed) configuration for DW1000 */
84
SPIConfig moduleHalSpiUwbLsConfig = {
85
  /* circular buffer mode        */ false,
86
  /* callback function pointer   */ NULL,
87
  /* chip select line port       */ PAL_PORT(LINE_SPI_SS_N),
88
  /* chip select line pad number */ PAL_PAD(LINE_SPI_SS_N),
89
  /* CR1                         */ SPI_CR1_BR_1 | SPI_CR1_BR_0,        // 36/16 Mbps
90
  /* CR2                         */ SPI_CR2_RXDMAEN | SPI_CR2_TXDMAEN,  // 0
91
};
92

  
93
#endif /* defined(AMIROLLD_CFG_DW1000) */
94

  
72 95

  
73 96
/*===========================================================================*/
74 97
/**
......
212 235
  },
213 236
};
214 237

  
238
#if defined (AMIROLLD_CFG_DW1000)
215 239
/**
216
 * @brief   IO_7 breakout signal GPIO.
240
 * @brief   DW1000 interrrupt input signal GPIO.
217 241
 */
218
static apalGpio_t _gpioBreakoutIo7 = {
242
static apalGpio_t _gpioDw1000Irqn = {
243
  /* line */  LINE_IO_8,            // (GPIOB, GPIOB_IO_8),
244
};
245
ROMCONST apalControlGpio_t moduleGpioDw1000Irqn = {
246
  /* GPIO */ &_gpioDw1000Irqn,
247
  /* meta */ {
248
    /* direction      */ APAL_GPIO_DIRECTION_INPUT,
249
    /* active state   */ APAL_GPIO_ACTIVE_LOW,
250
    /* interrupt edge */ APAL_GPIO_EDGE_RISING,
251
  },
252
};
253

  
254
/**
255
 * @brief   DW1000 reset output signal GPIO.
256
 */
257
static apalGpio_t _gpioDw1000Reset = {
219 258
  /* line */ LINE_IO_7,
220 259
};
221
apalControlGpio_t moduleGpioBreakoutIo7 = {
222
  /* GPIO */ &_gpioBreakoutIo7,
260
ROMCONST apalControlGpio_t moduleGpioDw1000Reset = {
261
  /* GPIO */ &_gpioDw1000Reset,
223 262
  /* meta */ {
224
    /* direction      */ APAL_GPIO_DIRECTION_UNDEFINED,
263
    /* direction      */ APAL_GPIO_DIRECTION_BIDIRECTIONAL,
225 264
    /* active state   */ APAL_GPIO_ACTIVE_LOW,
226 265
    /* interrupt edge */ APAL_GPIO_EDGE_NONE,
227 266
  },
228 267
};
229 268

  
230 269
/**
270
 * @brief   IO_2 breakout signal GPIO.
271
 */
272
static apalGpio_t _gpioDw1000WakeUp = {
273
  /* line */ LINE_IO_2,
274
};
275
ROMCONST apalControlGpio_t moduleGpioDw1000WakeUp = {
276
  /* GPIO */ &_gpioDw1000WakeUp,
277
  /* meta */ {
278
    /* direction      */ APAL_GPIO_DIRECTION_OUTPUT,
279
    /* active state   */ APAL_GPIO_ACTIVE_HIGH,
280
    /* interrupt edge */ APAL_GPIO_EDGE_NONE,
281
  },
282
};
283

  
284
/**
285
 * @brief   DW1000 SPI chip select output signal GPIO.
286
 */
287
static apalGpio_t _gpioSpiChipSelect = {
288
  /* line */ LINE_SPI_SS_N,
289
};
290
ROMCONST apalControlGpio_t moduleGpioSpiChipSelect = {
291
  /* GPIO */ &_gpioSpiChipSelect,
292
  /* meta */ {
293
    /* direction      */ APAL_GPIO_DIRECTION_OUTPUT,
294
    /* active state   */ APAL_GPIO_ACTIVE_LOW,
295
    /* interrupt edge */ APAL_GPIO_EDGE_NONE,
296
  },
297
};
298
#else
299
/**
231 300
 * @brief   IO_8 breakout signal GPIO.
232 301
 */
233 302
static apalGpio_t _gpioBreakoutIo8 = {
......
243 312
};
244 313

  
245 314
/**
246
 * @brief   IO_4 breakout signal GPIO.
315
 * @brief   IO_7 breakout signal GPIO.
247 316
 */
248
static apalGpio_t _gpioBreakoutIo4 = {
249
  /* line */ LINE_IO_4,
317
static apalGpio_t _gpioBreakoutIo7 = {
318
  /* line */ LINE_IO_7,
250 319
};
251
apalControlGpio_t moduleGpioBreakoutIo4 = {
252
  /* GPIO */ &_gpioBreakoutIo4,
320
apalControlGpio_t moduleGpioBreakoutIo7 = {
321
  /* GPIO */ &_gpioBreakoutIo7,
253 322
  /* meta */ {
254 323
    /* direction      */ APAL_GPIO_DIRECTION_UNDEFINED,
255 324
    /* active state   */ APAL_GPIO_ACTIVE_LOW,
......
258 327
};
259 328

  
260 329
/**
261
 * @brief   IO_1 breakout signal GPIO.
330
 * @brief   IO_2 breakout signal GPIO.
262 331
 */
263
static apalGpio_t _gpioBreakoutIo1 = {
264
  /* line */ LINE_IO_1,
332
static apalGpio_t _gpioBreakoutIo2 = {
333
  /* line */ LINE_IO_2,
265 334
};
266
apalControlGpio_t moduleGpioBreakoutIo1 = {
267
  /* GPIO */ &_gpioBreakoutIo1,
335
apalControlGpio_t moduleGpioBreakoutIo2 = {
336
  /* GPIO */ &_gpioBreakoutIo2,
268 337
  /* meta */ {
269 338
    /* direction      */ APAL_GPIO_DIRECTION_UNDEFINED,
270 339
    /* active state   */ APAL_GPIO_ACTIVE_LOW,
271 340
    /* interrupt edge */ APAL_GPIO_EDGE_NONE,
272 341
  },
273 342
};
343
#endif  /* defined (AMIROLLD_CFG_DW1000) */
274 344

  
275 345
/**
276
 * @brief   IO_2 breakout signal GPIO.
346
 * @brief   IO_4 breakout signal GPIO.
277 347
 */
278
static apalGpio_t _gpioBreakoutIo2 = {
279
  /* line */ LINE_IO_2,
348
static apalGpio_t _gpioBreakoutIo4 = {
349
  /* line */ LINE_IO_4,
280 350
};
281
apalControlGpio_t moduleGpioBreakoutIo2 = {
282
  /* GPIO */ &_gpioBreakoutIo2,
351
apalControlGpio_t moduleGpioBreakoutIo4 = {
352
  /* GPIO */ &_gpioBreakoutIo4,
353
  /* meta */ {
354
    /* direction      */ APAL_GPIO_DIRECTION_UNDEFINED,
355
    /* active state   */ APAL_GPIO_ACTIVE_LOW,
356
    /* interrupt edge */ APAL_GPIO_EDGE_NONE,
357
  },
358
};
359

  
360
/**
361
 * @brief   IO_1 breakout signal GPIO.
362
 */
363
static apalGpio_t _gpioBreakoutIo1 = {
364
  /* line */ LINE_IO_1,
365
};
366
apalControlGpio_t moduleGpioBreakoutIo1 = {
367
  /* GPIO */ &_gpioBreakoutIo1,
283 368
  /* meta */ {
284 369
    /* direction      */ APAL_GPIO_DIRECTION_UNDEFINED,
285 370
    /* active state   */ APAL_GPIO_ACTIVE_LOW,
......
450 535
  /* XLAT signal GPIO   */ NULL,
451 536
};
452 537

  
538
#if defined(AMIROLLD_CFG_DW1000)
539
DW1000Driver moduleLldDw1000 = {
540
  /* SPI driver         */ &MODULE_HAL_SPI_UWB,
541
  /* ext interrupt      */ &moduleGpioDw1000Irqn,
542
  /* RESET DW1000       */ &moduleGpioDw1000Reset,
543
};
544
#endif /* defined(AMIROLLD_CFG_DW1000) */
545

  
453 546
/** @} */
454 547

  
455 548
/*===========================================================================*/
......
624 717
  /* data           */ &moduleLldLedPwm,
625 718
};
626 719

  
720
#if defined(AMIROLLD_CFG_DW1000)
721
/*
722
 * UwB Driver (DW1000)
723
 */
724
static int _utShellCmdCb_Dw1000(BaseSequentialStream* stream, int argc, char* argv[])
725
{
726
  (void)argc;
727
  (void)argv;
728

  
729
  // Set the 3.3 V supply for powering the DW1000 module
730
  ((ut_dw1000data_t*)moduleUtAlldDw1000.data)->mic9404xd = &moduleLldPowerSwitchV33;
731
  ((ut_dw1000data_t*)moduleUtAlldDw1000.data)->dw1000d = NULL;
732
  aosUtRun(stream, &moduleUtAlldDw1000, NULL);
733
  ((ut_dw1000data_t*)moduleUtAlldDw1000.data)->mic9404xd = NULL;
734

  
735
  // Set the 1.8 V supply
736
  ((ut_dw1000data_t*)moduleUtAlldDw1000.data)->mic9404xd = &moduleLldPowerSwitchV18;
737
  ((ut_dw1000data_t*)moduleUtAlldDw1000.data)->dw1000d = NULL;
738
   aosUtRun(stream, &moduleUtAlldDw1000, NULL);
739
  ((ut_dw1000data_t*)moduleUtAlldDw1000.data)->mic9404xd = NULL;
740

  
741
  // Run the DW1000 module
742
  ((ut_dw1000data_t*)moduleUtAlldDw1000.data)->dw1000d = &moduleLldDw1000;
743
  ((ut_dw1000data_t*)moduleUtAlldDw1000.data)->mic9404xd = NULL;
744
  aosUtRun(stream, &moduleUtAlldDw1000, NULL);
745
  return AOS_OK;
746
}
747
static ut_dw1000data_t _utAlldDw1000Data = {
748
  /* driver DW1000    */ NULL,
749
  /* driver MIC9404x  */ NULL,
750
};
751
aos_unittest_t moduleUtAlldDw1000 = {
752
  /* info           */ "DW1000",
753
  /* name           */ "UWB System",
754
  /* test function  */ utAlldDw1000Func,
755
  /* shell command  */ {
756
    /* name     */ "unittest:Uwb",
757
    /* callback */ _utShellCmdCb_Dw1000,
758
    /* next     */ NULL,
759
  },
760
  /* data           */ &_utAlldDw1000Data,
761
};
762
#endif /* defined(AMIROLLD_CFG_DW1000) */
763

  
627 764
#endif /* (AMIROOS_CFG_TESTS_ENABLE == true) */
628 765

  
629 766
/** @} */

Also available in: Unified diff