HomeAut
board.h
1 /*
2  * board.h
3  *
4  * Created on: 2013.11.19.
5  * Author: Vizi Gábor
6  * E-mail: vizi.gabor90@gmail.com
7  * University: BME (BUTE)
8  * Project: RadioAlarm - Radio Alarm System Center module v2
9  * Function: board/panel defines: pins, ports, etc
10  * Target: STM32F107RCT6
11  * Version: v1
12  * Last modified: 2014.03.21
13  */
14 
15 #ifndef BOARD_H_
16 #define BOARD_H_
17 
18 
19 #include "options.h" // what panel using
20 
21 
23 
24 
25 #ifdef CONFIG_USE_PANEL_NUCLEOF401RE
26 #define BOARD_NAME "NucleoF401RE"
27 #endif
28 #ifdef CONFIG_USE_PANEL_DISCOVERY
29 #define BOARD_NAME "STM32F4Discovery"
30 #endif
31 
32 
33 
34 
36 // LED
38 
39 
40 #ifdef CONFIG_USE_PANEL_CENTERPANEL
41 
42 // Comment: A schematicban fordítva van a blue-red
43 // blue: PE5
44 // green: PE6
45 // red: PA8
46 
47 #define BOARD_LED_BLUE_PORT GPIOE
48 #define BOARD_LED_BLUE_PIN GPIO_PIN_5
49 
50 #define BOARD_LED_GREEN_PORT GPIOE
51 #define BOARD_LED_GREEN_PIN GPIO_PIN_6
52 
53 #define BOARD_LED_RED_PORT GPIOA
54 #define BOARD_LED_RED_PIN GPIO_PIN_8
55 
56 #define LED_PORT_CLK_ENABLES() \
57  __GPIOA_CLK_ENABLE(); \
58  __GPIOE_CLK_ENABLE()
59 
60 
61 // high pin = lighting (define 1)
62 #define BOARD_LED_LOGIC_HIGH_IS_ON 1
63 
64 #endif //#ifdef CONFIG_USE_PANEL_CENTERPANEL
65 
66 
67 
68 #ifdef CONFIG_USE_PANEL_DISCOVERY
69 
70 // blue: PE5
71 // green: PE6
72 // red: PA8
73 
74 #define LED_NUM_MIN (1)
75 #define LED_NUM_MAX (3)
76 
77 #define BOARD_LED_BLUE_PORT GPIOD
78 #define BOARD_LED_BLUE_PIN GPIO_PIN_15
79 #define BOARD_LED_GREEN_PORT GPIOD
80 #define BOARD_LED_GREEN_PIN GPIO_PIN_12
81 #define BOARD_LED_RED_PORT GPIOD
82 #define BOARD_LED_RED_PIN GPIO_PIN_14
83 
84 #define LED_PORT_CLK_ENABLES() __GPIOD_CLK_ENABLE()
85 
86 
87 #define LED_RED_ON() HAL_GPIO_WritePin(BOARD_LED_RED_PORT,BOARD_LED_RED_PIN,GPIO_PIN_SET)
88 #define LED_BLUE_ON() HAL_GPIO_WritePin(BOARD_LED_BLUE_PORT,BOARD_LED_BLUE_PIN,GPIO_PIN_SET)
89 #define LED_GREEN_ON() HAL_GPIO_WritePin(BOARD_LED_GREEN_PORT,BOARD_LED_GREEN_PIN,GPIO_PIN_SET)
90 
91 #define LED_RED_OFF() HAL_GPIO_WritePin(BOARD_LED_RED_PORT,BOARD_LED_RED_PIN,GPIO_PIN_RESET)
92 #define LED_BLUE_OFF() HAL_GPIO_WritePin(BOARD_LED_BLUE_PORT,BOARD_LED_BLUE_PIN,GPIO_PIN_RESET)
93 #define LED_GREEN_OFF() HAL_GPIO_WritePin(BOARD_LED_GREEN_PORT,BOARD_LED_GREEN_PIN,GPIO_PIN_RESET)
94 
95 #define LED_RED_TOGGLE() HAL_GPIO_TogglePin(BOARD_LED_RED_PORT,BOARD_LED_RED_PIN)
96 #define LED_BLUE_TOGGLE() HAL_GPIO_TogglePin(BOARD_LED_BLUE_PORT,BOARD_LED_BLUE_PIN)
97 #define LED_GREEN_TOGGLE() HAL_GPIO_TogglePin(BOARD_LED_GREEN_PORT,BOARD_LED_GREEN_PIN)
98 
99 #define LED_RED_STATUS() HAL_GPIO_ReadPin(BOARD_LED_RED_PORT,BOARD_LED_RED_PIN)
100 #define LED_BLUE_STATUS() HAL_GPIO_ReadPin(BOARD_LED_BLUE_PORT,BOARD_LED_BLUE_PIN)
101 #define LED_GREEN_STATUS() HAL_GPIO_ReadPin(BOARD_LED_GREEN_PORT,BOARD_LED_GREEN_PIN)
102 
103 #endif //#ifdef CONFIG_USE_PANEL_CENTERPANEL
104 
105 
106 
107 #if defined(CONFIG_MODULE_LED_ENABLE) && defined(CONFIG_USE_PANEL_NUCLEOF401RE)
108 
109 // Green user LED: PA5
110 
111 #define LED_NUM_MIN (1)
112 #define LED_NUM_MAX (1)
113 
114 #define BOARD_LED_GREEN_PORT GPIOA
115 #define BOARD_LED_GREEN_PIN GPIO_PIN_5
116 
117 #define LED_PORT_CLK_ENABLES() __GPIOA_CLK_ENABLE()
118 
119 #define LED_RED_ON()
120 #define LED_BLUE_ON()
121 #define LED_GREEN_ON() HAL_GPIO_WritePin(BOARD_LED_GREEN_PORT,BOARD_LED_GREEN_PIN,GPIO_PIN_SET)
122 
123 #define LED_RED_OFF()
124 #define LED_BLUE_OFF()
125 #define LED_GREEN_OFF() HAL_GPIO_WritePin(BOARD_LED_GREEN_PORT,BOARD_LED_GREEN_PIN,GPIO_PIN_RESET)
126 
127 
128 #define LED_RED_TOGGLE()
129 #define LED_BLUE_TOGGLE()
130 #define LED_GREEN_TOGGLE() HAL_GPIO_TogglePin(BOARD_LED_GREEN_PORT,BOARD_LED_GREEN_PIN)
131 
132 #define LED_RED_STATUS()
133 #define LED_BLUE_STATUS()
134 #define LED_GREEN_STATUS() HAL_GPIO_ReadPin(BOARD_LED_GREEN_PORT,BOARD_LED_GREEN_PIN)
135 
136 #endif
137 
138 
139 #if !defined(CONFIG_MODULE_LED_ENABLE)
140 
141 // if not defined CONFIG_MODULE_LED_ENABLE
142 #define LED_RED_ON()
143 #define LED_BLUE_ON()
144 #define LED_GREEN_ON()
145 #define LED_RED_OFF()
146 #define LED_BLUE_OFF()
147 #define LED_GREEN_OFF()
148 #define LED_RED_TOGGLE()
149 #define LED_BLUE_TOGGLE()
150 #define LED_GREEN_TOGGLE()
151 #define LED_RED_STATUS()
152 #define LED_BLUE_STATUS()
153 #define LED_GREEN_STATUS()
154 #endif
155 
156 
157 
159 // TIMERS for LEDs
161 
162 
163 // LED_BLUE PB8 TIM16_CH1
164 // LED_GREEN PB9 TIM17_CH1
165 
166 // TODO: LED timers / PWM, need beautify
167 
168 
169 /* Definition for TIMx clock resources */
170 #ifdef CONFIG_USE_PANEL_NODESMALL
171 #define TIMx_BLUE TIM16
172 #define TIMx_BLUE_CLK_ENABLE() __TIM16_CLK_ENABLE()
173 #define TIMx_GREEN TIM17
174 #define TIMx_GREEN_CLK_ENABLE() __TIM17_CLK_ENABLE()
175 
176 #define TIMER_CLK_ENABLES() __TIM16_CLK_ENABLE(); \
177  __TIM17_CLK_ENABLE()
178 
179 
180 #define LED_BLUE_TIMER_CHANNEL TIM_CHANNEL_1
181 #define LED_GREEN_TIMER_CHANNEL TIM_CHANNEL_1
182 
183 #define TIMx_LED_BLUE_GPIO_AF GPIO_AF2_TIM16
184 #define TIMx_LED_GREEN_GPIO_AF GPIO_AF2_TIM17
185 
186 #endif
187 
188 
189 
190 #ifdef CONFIG_USE_PANEL_NODEMEDIUM
191 
192 #define TIMx_BLUE TIM4
193 #define TIMx_BLUE_CLK_ENABLE() __TIM4_CLK_ENABLE()
194 #define TIMx_GREEN TIM4
195 #define TIMx_GREEN_CLK_ENABLE() __TIM4_CLK_ENABLE()
196 #define TIMx_RED TIM3
197 #define TIMx_RED_CLK_ENABLE() __TIM3_CLK_ENABLE()
198 
199 #define TIMER_CLK_ENABLES() __TIM3_CLK_ENABLE(); \
200  __TIM4_CLK_ENABLE()
201 
202 
203 #define LED_BLUE_TIMER_CHANNEL TIM_CHANNEL_2
204 #define LED_GREEN_TIMER_CHANNEL TIM_CHANNEL_1
205 #define LED_RED_TIMER_CHANNEL TIM_CHANNEL_2
206 
207 
208 #define TIMx_LED_BLUE_GPIO_AF GPIO_AF2_TIM4
209 #define TIMx_LED_GREEN_GPIO_AF GPIO_AF2_TIM4
210 #define TIMx_LED_RED_GPIO_AF GPIO_AF2_TIM3
211 
212 #endif
213 
214 
215 
217 // ADC - ANALOG
219 
220 
221 
222 #ifdef CONFIG_USE_PANEL_NODESMALL
223 
224 
225 #define BOARD_USE_ADC ADC1
226 
227 
228 #define ADC_COMMON_PORT GPIOA
229 #define ADC_COMMON_CLK_ENABLE() __GPIOA_CLK_ENABLE()
230 
231 
232 #define ADC_BUFFER_SIZE ( 5 )
233 
234 
235 
236 // SENSOR_LIGH_ADC
237 // PA1
238 // ADC1_IN1
239 #define ADC_SENSOR_LIGHT_PORT GPIOA
240 #define ADC_SENSOR_LIGHT_CLK RCC_AHB1Periph_GPIOA
241 #define ADC_SENSOR_LIGHT_PIN GPIO_PIN_1
242 #define ADC_SENSOR_LIGHT_CHANNEL ADC_CHANNEL_1
243 
244 
245 
246 // SENSOR_MICROPHONE_ADC
247 // PA6
248 // ADC1_IN6
249 #define ADC_SENSOR_MICROPHONE_PORT GPIOA
250 #define ADC_SENSOR_MICROPHONE_CLK RCC_AHB1Periph_GPIOA
251 #define ADC_SENSOR_MICROPHONE_PIN GPIO_PIN_6
252 #define ADC_SENSOR_MICROPHONE_CHANNEL ADC_CHANNEL_6
253 
254 
255 // VSOURCE_ADC
256 // PA7
257 // ADC1_IN7
258 #define ADC_VSOURCE_PORT GPIOA
259 #define ADC_VSOURCE_CLK RCC_AHB1Periph_GPIOA
260 #define ADC_VSOURCE_PIN GPIO_PIN_7
261 #define ADC_VSOURCE_CHANNEL ADC_CHANNEL_7
262 
263 
264 #define ADC_TEMPSENSOR_CHANNEL ADC_CHANNEL_16
265 #define ADC_VREFINT_CHANNEL ADC_CHANNEL_17
266 
267 
268 #endif // CONFIG_USE_PANEL_NODEMSMALL
269 
270 
271 
272 #ifdef CONFIG_USE_PANEL_NODEMEDIUM
273 
274 
275 // ANALOG
276 #define BOARD_USE_ADC ADC1
277 
278 
279 #define ADC_COMMON_PORT GPIOB | GPIOC
280 #define ADC_COMMON_CLK_ENABLE() \
281  __GPIOB_CLK_ENABLE(); \
282  __GPIOC_CLK_ENABLE()
283 
284 
285 #define ADC_BUFFER_SIZE ( 5 )
286 // now: Vsource, ligh, mic, prox, internal temp
287 
288 
289 
290 // SENSOR_LIGH_ADC
291 // PC0
292 // ADC_IN10
293 #define ADC_SENSOR_LIGHT_PORT GPIOC
294 #define ADC_SENSOR_LIGHT_PIN GPIO_PIN_0
295 #define ADC_SENSOR_LIGHT_CHANNEL ADC_CHANNEL_10
296 
297 
298 
299 // SENSOR_MICROPHONE_ADC
300 // PC1
301 // ADC_IN11
302 #define ADC_SENSOR_MICROPHONE_PORT GPIOC
303 #define ADC_SENSOR_MICROPHONE_PIN GPIO_PIN_1
304 #define ADC_SENSOR_MICROPHONE_CHANNEL ADC_CHANNEL_11
305 
306 
307 
308 // SENSOR_PROXIMITY_ADC
309 // PC2
310 // ADC_IN12
311 #define ADC_SENSOR_PROXIMITY_PORT GPIOC
312 #define ADC_SENSOR_PROXIMITY_PIN GPIO_PIN_2
313 #define ADC_SENSOR_PROXIMITY_CHANNEL ADC_CHANNEL_12
314 
315 
316 
317 // VSOURCE_ADC
318 // PB12
319 // ADC_IN18
320 #define ADC_VSOURCE_PORT GPIOB
321 #define ADC_VSOURCE_PIN GPIO_PIN_12
322 #define ADC_VSOURCE_CHANNEL ADC_CHANNEL_18
323 
324 
325 
326 // L1 not included internal Tempsensor :(
327 // TODO: Sure... ?
328 #define ADC_TEMPSENSOR_CHANNEL ADC_CHANNEL_16
329 #define ADC_VREFINT_CHANNEL ADC_CHANNEL_17
330 
331 
332 #endif // CONFIG_USE_PANEL_NODEMEDIUM
333 
334 
335 
336 #if defined(CONFIG_USE_PANEL_DISCOVERY) || defined(CONFIG_USE_PANEL_NUCLEOF401RE)
337 
338 // ANALOG
339 
340 #define ADC_BUFFER_SIZE ( 3 )
341 
342 
343 #define ADCx ADC1
344 #define ADCx_CLK_ENABLE() __HAL_RCC_ADC1_CLK_ENABLE()
345 #define DMAx_CLK_ENABLE() __HAL_RCC_DMA2_CLK_ENABLE()
346 #define ADCx_CHANNEL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
347 
348 /* Definition for ADCx Channel Pin */
349 #define ADCx_CHANNEL_PIN_1 GPIO_PIN_1
350 #define ADCx_CHANNEL_PIN_2 GPIO_PIN_2
351 #define ADCx_CHANNEL_PIN_3 GPIO_PIN_3
352 #define ADCx_CHANNEL_GPIO_PORT GPIOA
353 
354 /* Definition for ADCx's Channel */
355 #define ADCx_CHANNEL_1 ADC_CHANNEL_1
356 #define ADCx_CHANNEL_2 ADC_CHANNEL_2
357 #define ADCx_CHANNEL_3 ADC_CHANNEL_3
358 
359 /* Definition for ADCx's DMA */
360 #define ADCx_DMA_CHANNEL DMA_CHANNEL_0
361 #define ADCx_DMA_STREAM DMA2_Stream0
362 
363 /* Definition for ADCx's NVIC */
364 #define ADCx_DMA_IRQn DMA2_Stream0_IRQn
365 #define ADCx_DMA_IRQHandler DMA2_Stream0_IRQHandler
366 
367 /* ADC DMA Interrupt priorities */
368 #define ADC_DMA_PREEMT_PRIORITY 13
369 #define ADC_DMA_SUB_PRIORITY 0
370 
371 
372 #define COMMON_ADC_VOLTAGE_MAX (3.3f)
373 #define COMMON_ADC_RESOLUTION_MAX (4095U)
374 
375 #endif
376 
377 
378 
380 // DAC
382 
383 
384 
385 #if defined(CONFIG_USE_PANEL_DISCOVERY) || defined(CONFIG_USE_PANEL_NUCLEOF401RE)
386 
387 
388 #define DACx DAC
389 
390 /* Definition for DAC clock resources */
391 #define DACx_CHANNEL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
392 #define DACx_CLK_ENABLE() __HAL_RCC_DAC_CLK_ENABLE()
393 
394 /* Definition for DACx Channel1 Pin */
395 #define DACx_CHANNEL1_PIN GPIO_PIN_4
396 #define DACx_CHANNEL1_GPIO_PORT GPIOA
397 
398 #define DACx_CHANNEL2_PIN GPIO_PIN_5
399 #define DACx_CHANNEL2_GPIO_PORT GPIOA
400 
401 #define DACx_CHANNEL1 DAC_CHANNEL_1
402 #define DACx_CHANNEL2 DAC_CHANNEL_2
403 
404 
405 #define COMMON_DAC_MAX_VOLTAGE 3.3f
406 #define COMMON_DAC_DA_MAX_VALUE 4095
407 
408 
409 #endif
410 
411 
412 
414 // BUTTONS
416 
417 // UP S4 BUTTON_0 GPIOB14
418 // LEFT S5 BUTTON_3 GPIOB13
419 // DOWN S3 BUTTON_2 GPIOB12
420 // RIGHT S1 BUTTON_1 GPIOA0
421 
422 
423 #ifdef CONFIG_USE_PANEL_NODESMALL
424 
425 #define BUTTON_RIGHT_GPIO_PORT GPIOA
426 #define BUTTON_RIGHT_GPIO_CLK RCC_AHB1Periph_GPIOA
427 #define BUTTON_RIGHT_GPIO_PIN GPIO_PIN_0
428 #define BUTTON_UP_GPIO_PORT GPIOB
429 #define BUTTON_UP_GPIO_CLK RCC_AHB1Periph_GPIOB
430 #define BUTTON_UP_GPIO_PIN GPIO_PIN_14
431 #define BUTTON_DOWN_GPIO_PORT GPIOB
432 #define BUTTON_DOWN_GPIO_CLK RCC_AHB1Periph_GPIOB
433 #define BUTTON_DOWN_GPIO_PIN GPIO_PIN_12
434 #define BUTTON_LEFT_GPIO_PORT GPIOB
435 #define BUTTON_LEFT_GPIO_CLK RCC_AHB1Periph_GPIOB
436 #define BUTTON_LEFT_GPIO_PIN GPIO_PIN_13
437 
438 
439 
440 #define BUTTON_CLK_ENABLES() \
441  __GPIOA_CLK_ENABLE(); \
442  __GPIOB_CLK_ENABLE()
443 
444 #endif
445 
446 
447 
448 
449 #ifdef CONFIG_USE_PANEL_NODEMEDIUM
450 
451 #define BUTTON_RIGHT_GPIO_PORT GPIOA
452 #define BUTTON_RIGHT_GPIO_CLK RCC_AHB1Periph_GPIOA
453 #define BUTTON_RIGHT_GPIO_PIN GPIO_PIN_0
454 
455 #define BUTTON_UP_GPIO_PORT GPIOD
456 #define BUTTON_UP_GPIO_CLK RCC_AHB1Periph_GPIOD
457 #define BUTTON_UP_GPIO_PIN GPIO_PIN_2
458 
459 #define BUTTON_DOWN_GPIO_PORT GPIOC
460 #define BUTTON_DOWN_GPIO_CLK RCC_AHB1Periph_GPIOC
461 #define BUTTON_DOWN_GPIO_PIN GPIO_PIN_13
462 
463 #define BUTTON_LEFT_GPIO_PORT GPIOB
464 #define BUTTON_LEFT_GPIO_CLK RCC_AHB1Periph_GPIOB
465 #define BUTTON_LEFT_GPIO_PIN GPIO_PIN_9
466 
467 
468 
469 #define BUTTON_CLK_ENABLES() \
470  __GPIOA_CLK_ENABLE(); \
471  __GPIOB_CLK_ENABLE(); \
472  __GPIOC_CLK_ENABLE(); \
473  __GPIOD_CLK_ENABLE() \
474 
475 
476 #endif // #ifdef CONFIG_USE_PANEL_NODEMEDIUM
477 
478 
479 
480 #ifdef CONFIG_USE_PANEL_CENTERPANEL
481 
482 // Up PC7
483 // Down PC8
484 // Right PA0
485 // Left PC9
486 
487 #define BUTTON_RIGHT_GPIO_PORT GPIOA
488 #define BUTTON_RIGHT_GPIO_CLK RCC_AHB1Periph_GPIOA
489 #define BUTTON_RIGHT_GPIO_PIN GPIO_PIN_0
490 
491 #define BUTTON_UP_GPIO_PORT GPIOC
492 #define BUTTON_UP_GPIO_CLK RCC_AHB1Periph_GPIOC
493 #define BUTTON_UP_GPIO_PIN GPIO_PIN_7
494 
495 #define BUTTON_DOWN_GPIO_PORT GPIOC
496 #define BUTTON_DOWN_GPIO_CLK RCC_AHB1Periph_GPIOC
497 #define BUTTON_DOWN_GPIO_PIN GPIO_PIN_8
498 
499 #define BUTTON_LEFT_GPIO_PORT GPIOC
500 #define BUTTON_LEFT_GPIO_CLK RCC_AHB1Periph_GPIOC
501 #define BUTTON_LEFT_GPIO_PIN GPIO_PIN_9
502 
503 
504 
505 #define BUTTON_CLK_ENABLES() \
506  __GPIOA_CLK_ENABLE(); \
507  __GPIOC_CLK_ENABLE()
508 
509 
510 #endif // #ifdef CONFIG_USE_PANEL_CENTERPANEL
511 
512 
513 
514 #ifdef CONFIG_USE_PANEL_DISCOVERY
515 
516 // User button: PA0
517 
518 #define BUTTON_USER_GPIO_PORT GPIOA
519 #define BUTTON_USER_GPIO_PIN GPIO_PIN_0
520 
521 #define BUTTON_CLK_ENABLES() __GPIOA_CLK_ENABLE()
522 
523 /* Button Interrupt priority */
524 #define BUTTON_USER_EXTI_IRQn EXTI0_IRQn
525 #define BUTTON_USER_INTERRUPT_PREEMT_PRIORITY 10
526 #define BUTTON_USER_INTERRUPT_SUB_PRIORITY 0
527 
528 #endif
529 
530 
531 
532 #ifdef CONFIG_USE_PANEL_NUCLEOF401RE
533 
534 // User button: PC13
535 
536 #define BUTTON_USER_GPIO_PORT GPIOC
537 #define BUTTON_USER_GPIO_PIN GPIO_PIN_13
538 
539 #define BUTTON_CLK_ENABLES() __GPIOC_CLK_ENABLE()
540 
541 /* Button Interrupt priority */
542 #define BUTTON_USER_EXTI_IRQn EXTI15_10_IRQn
543 #define BUTTON_USER_INTERRUPT_PREEMT_PRIORITY 10
544 #define BUTTON_USER_INTERRUPT_SUB_PRIORITY 0
545 
546 #endif
547 
548 
549 
551 // TEMPERATURE - I2C - LM75
553 
554 #ifdef CONFIG_MODULE_ADC_ENABLE
555 // I2C_SCL PB10
556 // I2C_SDA PB11
557 
558 
559 //MSB LSB
560 //1 0 0 1 A2 A1 A0
561 #define TEMPERATURE_I2C_TEMP_ADDRESS ((uint16_t)( 0x0000 | (1<<6) | (1 << 3 ) ) )
562 // 0b1001000
563 // 1,0,0,1,0,0,0 BITs, and not hex !!!!!!!!!!!!!!
564 // Wrong example: 0x1001000
565 
566 // pointer register:
567 #define TEMPERATURE_I2C_REGISTER_TEMP ((uint8_t)0x00)
568 
569 #endif // CONFIG_MODULE_ADC_ENABLE
570 
571 #ifdef CONFIG_USE_PANEL_NODESMALL
572 #define I2Cx I2C1
573 #define I2Cx_CLK_ENABLE() __I2C1_CLK_ENABLE()
574 #define DMAx_CLK_ENABLE() __DMA1_CLK_ENABLE()
575 #define I2Cx_SDA_GPIO_CLK_ENABLE() __GPIOB_CLK_ENABLE()
576 #define I2Cx_SCL_GPIO_CLK_ENABLE() __GPIOB_CLK_ENABLE()
577 
578 #define I2Cx_FORCE_RESET() __I2C1_FORCE_RESET()
579 #define I2Cx_RELEASE_RESET() __I2C1_RELEASE_RESET()
580 
581 /* I2C TIMING is calculated in case of the I2C Clock source is the SYSCLK = 48 MHz */
582 /* Set TIMING to 0x00E0D3FF to reach 100 KHz speed (Rise time = 50ns, Fall time = 10ns) */
583 //#define I2Cx_TIMING 0x00E0D3FF
584 //#define I2Cx_TIMING 0x00201D2A
585 // 100kHz, 100ns rise, 200ns fall
586 
587 #define I2Cx_TIMING 0x00301D28
588 // 100kHz, 250ns rise, 250ns fall
589 
590 //com.l2fprod.common.propertysheet.PropertySheetTableModel$Item@9cec42 0x00301D28
591 
592 
593 //com.l2fprod.common.propertysheet.PropertySheetTableModel$Item@198731b 0x2000090E
594 
595 //com.l2fprod.common.propertysheet.PropertySheetTableModel$Item@7f591a 0x00201D2A
596 
597 /* Definition for I2Cx Pins */
598 #define I2Cx_SCL_PIN GPIO_PIN_10
599 #define I2Cx_SCL_GPIO_PORT GPIOB
600 #define I2Cx_SCL_AF GPIO_AF1_I2C1
601 
602 #define I2Cx_SDA_PIN GPIO_PIN_11
603 #define I2Cx_SDA_GPIO_PORT GPIOB
604 #define I2Cx_SDA_AF GPIO_AF1_I2C1
605 
606 
607 /* Definition for I2Cx's DMA */
608 #define I2Cx_TX_DMA_INSTANCE DMA1_Channel2
609 #define I2Cx_RX_DMA_INSTANCE DMA1_Channel3
610 
611 /* Definition for I2Cx's NVIC */
612 #define I2Cx_DMA_TX_IRQn DMA1_Channel2_3_IRQn
613 #define I2Cx_DMA_RX_IRQn DMA1_Channel2_3_IRQn
614 #define I2Cx_DMA_TX_RX_IRQHandler DMA1_Channel2_3_IRQHandler
615 
616 /* Size of Trasmission buffer */
617 //#define TXBUFFERSIZE (COUNTOF(aTxBuffer) - 1)
618 /* Size of Reception buffer */
619 //#define RXBUFFERSIZE TXBUFFERSIZE
620 
621 
622 #endif // #ifdef CONFIG_USE_PANEL_NODESMALL
623 
624 
625 
626 #ifdef CONFIG_USE_PANEL_NODEMEDIUM
627 
628 #define I2Cx I2C2
629 #define I2Cx_CLK_ENABLE() __I2C2_CLK_ENABLE()
630 #define DMAx_CLK_ENABLE() __DMA1_CLK_ENABLE()
631 #define I2Cx_SDA_GPIO_CLK_ENABLE() __GPIOB_CLK_ENABLE()
632 #define I2Cx_SCL_GPIO_CLK_ENABLE() __GPIOB_CLK_ENABLE()
633 
634 #define I2Cx_FORCE_RESET() __I2C1_FORCE_RESET()
635 #define I2Cx_RELEASE_RESET() __I2C1_RELEASE_RESET()
636 
637 /* I2C TIMING is calculated in case of the I2C Clock source is the SYSCLK = 48 MHz */
638 /* Set TIMING to 0x00E0D3FF to reach 100 KHz speed (Rise time = 50ns, Fall time = 10ns) */
639 //#define I2Cx_TIMING 0x00E0D3FF
640 //#define I2Cx_TIMING 0x00201D2A
641 // 100kHz, 100ns rise, 200ns fall
642 
643 #define I2Cx_TIMING 0x00301D28
644 // 100kHz, 250ns rise, 250ns fall
645 
646 //com.l2fprod.common.propertysheet.PropertySheetTableModel$Item@9cec42 0x00301D28
647 
648 
649 //com.l2fprod.common.propertysheet.PropertySheetTableModel$Item@198731b 0x2000090E
650 
651 //com.l2fprod.common.propertysheet.PropertySheetTableModel$Item@7f591a 0x00201D2A
652 
653 /* Definition for I2Cx Pins */
654 #define I2Cx_SCL_PIN GPIO_PIN_10
655 #define I2Cx_SCL_GPIO_PORT GPIOB
656 #define I2Cx_SCL_AF GPIO_AF4_I2C2
657 
658 #define I2Cx_SDA_PIN GPIO_PIN_11
659 #define I2Cx_SDA_GPIO_PORT GPIOB
660 #define I2Cx_SDA_AF GPIO_AF4_I2C2
661 
662 
663 /* Definition for I2Cx's DMA */
664 #define I2Cx_TX_DMA_INSTANCE DMA1_Channel2
665 #define I2Cx_RX_DMA_INSTANCE DMA1_Channel3
666 
667 /* Definition for I2Cx's NVIC */
668 #define I2Cx_DMA_TX_IRQn DMA1_Channel2_3_IRQn
669 #define I2Cx_DMA_RX_IRQn DMA1_Channel2_3_IRQn
670 #define I2Cx_DMA_TX_RX_IRQHandler DMA1_Channel2_3_IRQHandler
671 
672 /* Size of Trasmission buffer */
673 //#define TXBUFFERSIZE (COUNTOF(aTxBuffer) - 1)
674 /* Size of Reception buffer */
675 //#define RXBUFFERSIZE TXBUFFERSIZE
676 
677 #endif // #ifdef CONFIG_USE_PANEL_NODEMEDIUM
678 
679 
680 
682 // FLASH - SPI
684 
685 
686 
687 #ifdef CONFIG_USE_PANEL_NODESMALL
688 
689 
690 #define FLASH_SPIx SPI1
691 
692 #define SPIx_CLK_ENABLE() __SPI1_CLK_ENABLE()
693 
694 #define FLASH_SPIx_PINS_CLK_ENABLES() \
695  __GPIOA_CLK_ENABLE(); \
696  __GPIOB_CLK_ENABLE()
697 
698 
699 
700 #define FLASH_SPI_CS PB7
701 #define FLASH_SPI_WP PB6
702 #define FLASH_SPI_HOLD PA15
703 
704 
705 #define FLASH_SPI_CS_GPIO_PIN GPIO_PIN_7
706 #define FLASH_SPI_CS_GPIO_PORT GPIOB
707 #define FLASH_SPI_WP_GPIO_PIN GPIO_PIN_6
708 #define FLASH_SPI_WP_GPIO_PORT GPIOB
709 #define FLASH_SPI_HOLD_GPIO_PIN GPIO_PIN_15
710 #define FLASH_SPI_HOLD_GPIO_PORT GPIOA
711 
712 
713 
714 #define SPIx_FORCE_RESET() __SPI1_FORCE_RESET()
715 #define SPIx_RELEASE_RESET() __SPI1_RELEASE_RESET()
716 
717 // Definition for SPIx Pins
718 #define SPIx_SCK_PIN GPIO_PIN_3
719 #define SPIx_SCK_GPIO_PORT GPIOB
720 #define SPIx_SCK_AF GPIO_AF0_SPI1
721 #define SPIx_MISO_PIN GPIO_PIN_4
722 #define SPIx_MISO_GPIO_PORT GPIOB
723 #define SPIx_MISO_AF GPIO_AF0_SPI1
724 #define SPIx_MOSI_PIN GPIO_PIN_5
725 #define SPIx_MOSI_GPIO_PORT GPIOB
726 #define SPIx_MOSI_AF GPIO_AF0_SPI1
727 
728 #endif
729 
730 
731 
732 #ifdef CONFIG_USE_PANEL_NODEMEDIUM
733 
734 
735 // FLASH_SPI_CS PB0
736 // FLASH_SPI_WP PB1
737 // FLASH_SPI_HOLD PA4
738 // FLASH - SPI
739 // CLK PA5
740 // MISO PA6
741 // MOSI PA7
742 
743 
744 
745 #define FLASH_SPIx SPI1
746 
747 
748 #define FLASH_SPIx_PINS_CLK_ENABLES() \
749  __GPIOA_CLK_ENABLE(); \
750  __GPIOB_CLK_ENABLE()
751 
752 
753 #define SPIx_CLK_ENABLE() __SPI1_CLK_ENABLE()
754 
755 
756 #define SPIx_FORCE_RESET() __SPI1_FORCE_RESET()
757 #define SPIx_RELEASE_RESET() __SPI1_RELEASE_RESET()
758 
759 
760 // Definition for SPIx Pins
761 #define SPIx_SCK_PIN GPIO_PIN_5
762 #define SPIx_SCK_GPIO_PORT GPIOA
763 #define SPIx_SCK_AF GPIO_AF5_SPI1
764 #define SPIx_MISO_PIN GPIO_PIN_6
765 #define SPIx_MISO_GPIO_PORT GPIOA
766 #define SPIx_MISO_AF GPIO_AF5_SPI1
767 #define SPIx_MOSI_PIN GPIO_PIN_7
768 #define SPIx_MOSI_GPIO_PORT GPIOA
769 #define SPIx_MOSI_AF GPIO_AF5_SPI1
770 
771 
772 #define FLASH_SPI_CS_GPIO_PIN GPIO_PIN_0
773 #define FLASH_SPI_CS_GPIO_PORT GPIOB
774 #define FLASH_SPI_WP_GPIO_PIN GPIO_PIN_1
775 #define FLASH_SPI_WP_GPIO_PORT GPIOB
776 #define FLASH_SPI_HOLD_GPIO_PIN GPIO_PIN_4
777 #define FLASH_SPI_HOLD_GPIO_PORT GPIOA
778 
779 
780 #endif // CONFIG_USE_PANEL_NODEMEDIUM
781 
782 
783 
785 // DEBUG - USART
787 
788 
789 
790 #if ( CONFIG_USE_PANEL_NODEMEDIUM || CONFIG_USE_PANEL_CENTERPANEL )
791 
792 // USART
793 // DEBUG_USART USART1
794 // DEBUG_USART_TX - PA9
795 // DEBUG_USART_RX - PA10
796 
797 
798 #define DEBUG_USARTx USART1
799 
800 
801 //#define DEBUG_USART_CLK_ENABLE() __USART1_CLK_ENABLE()
802 
803 #define DEBUG_USART_CLK_ENABLES() \
804  __USART1_CLK_ENABLE(); \
805  __GPIOA_CLK_ENABLE()
806 
807 
808 #define DEBUG_USART_TX_GPIO_PORT GPIOA
809 #define DEBUG_USART_TX_GPIO_PIN GPIO_PIN_9
810 
811 #define DEBUG_USART_RX_GPIO_PORT GPIOA
812 #define DEBUG_USART_RX_GPIO_PIN GPIO_PIN_10
813 
814 #define DEBUG_USART_AF GPIO_AF7_USART1
815 
816 
817 // Definition for USARTx's NVIC
818 #define DEBUG_USARTx_IRQn USART1_IRQn
819 #define DEBUG_USARTx_IRQHandler USART1_IRQHandler
820 
821 #define DEBUG_USART_PREEMT_PRIORITY 10
822 #define DEBUG_USART_SUB_PRIORITY 0
823 
824 #endif
825 
826 
827 
828 #if defined(CONFIG_USE_PANEL_DISCOVERY) || defined(CONFIG_USE_PANEL_NUCLEOF401RE)
829 
830 // USART
831 // DEBUG_USART USART6
832 // DEBUG_USART_TX PC6
833 // DEBUG_USART_RX PC7
834 
835 #define DEBUG_USARTx USART6
836 
837 #define DEBUG_USART_CLK_ENABLES() \
838  __USART6_CLK_ENABLE(); \
839  __GPIOC_CLK_ENABLE()
840 
841 
842 #define DEBUG_USART_TX_GPIO_PORT GPIOC
843 #define DEBUG_USART_TX_GPIO_PIN GPIO_PIN_6
844 
845 #define DEBUG_USART_RX_GPIO_PORT GPIOC
846 #define DEBUG_USART_RX_GPIO_PIN GPIO_PIN_7
847 
848 #define DEBUG_USART_AF GPIO_AF8_USART6
849 
850 #define DEBUG_USART_BAUDRATE 9600
851 
852 
853 // Definition for USARTx's NVIC
854 #define DEBUG_USARTx_IRQn USART6_IRQn
855 #define DEBUG_USARTx_IRQHandler USART6_IRQHandler
856 
857 #define DEBUG_USART_PREEMT_PRIORITY 10
858 #define DEBUG_USART_SUB_PRIORITY 0
859 
860 
861 #endif
862 
863 
864 
866 // ESP8266 - USART
868 
869 
870 
871 #ifdef CONFIG_USE_PANEL_NODESMALL
872 
873 
874 // USART
875 // DEBUG_USART USART1
876 // DEBUG_USART_TX - PA9
877 // DEBUG_USART_RX - PA10
878 
879 
880 #define ESP8266_USARTx USART1
881 
882 
883 
884 #define ESP8266_USART_CLK_ENABLES() \
885  __USART1_CLK_ENABLE(); \
886  __GPIOA_CLK_ENABLE()
887 
888 
889 
890 #define ESP8266_USART_TX_GPIO_PORT GPIOA
891 #define ESP8266_USART_TX_GPIO_PIN GPIO_PIN_9
892 
893 #define ESP8266_USART_RX_GPIO_PORT GPIOA
894 #define ESP8266_USART_RX_GPIO_PIN GPIO_PIN_10
895 
896 #define ESP8266_USART_AF GPIO_AF1_USART1
897 
898 /* Definition for USARTx's NVIC */
899 #define ESP8266_USARTx_IRQn USART1_IRQn
900 #define ESP8266_USARTx_IRQHandler USART1_IRQHandler
901 
902 // WITHOUT FREERTOS: If use FreeRTOS, you need higher priority
903 #define ESP8266_USART_PREEMT_PRIORITY 2
904 #define ESP8266_USART_SUB_PRIORITY 0
905 
906 #define ESP8266_USART_BAUDRATE 9600
907 
908 
909 #endif // #ifdef CONFIG_USE_PANEL_NODESMALL
910 
911 
912 
913 #ifdef CONFIG_USE_PANEL_NODEMEDIUM
914 
915 // USART2
916 // USART_TX PA2
917 // USART_RX PA3
918 
919 #define ESP8266_USARTx USART2
920 
921 
922 #define ESP8266_USART_CLK_ENABLES() \
923  __USART2_CLK_ENABLE(); \
924  __GPIOA_CLK_ENABLE()
925 
926 
927 
928 #define ESP8266_USART_TX_GPIO_PORT GPIOA
929 #define ESP8266_USART_TX_GPIO_PIN GPIO_PIN_2
930 
931 #define ESP8266_USART_RX_GPIO_PORT GPIOA
932 #define ESP8266_USART_RX_GPIO_PIN GPIO_PIN_3
933 
934 #define ESP8266_USART_AF GPIO_AF7_USART2
935 
936 // Definition for USARTx's NVIC
937 #define ESP8266_USARTx_IRQn USART2_IRQn
938 #define ESP8266_USARTx_IRQHandler USART2_IRQHandler
939 
940 #define ESP8266_USART_PREEMT_PRIORITY 14
941 #define ESP8266_USART_SUB_PRIORITY 0
942 
943 #define ESP8266_USART_BAUDRATE 9600
944 
945 
946 
947 #endif // #ifdef CONFIG_USE_PANEL_NODEMEDIUM
948 
949 
950 
951 #ifdef CONFIG_USE_PANEL_CENTERPANEL
952 
953 // USART2
954 // USART_TX PA2
955 // USART_RX PA3
956 
957 #define ESP8266_USARTx USART2
958 
959 #define ESP8266_USART_CLK_ENABLES() \
960  __USART2_CLK_ENABLE(); \
961  __GPIOA_CLK_ENABLE()
962 
963 
964 #define ESP8266_USART_TX_GPIO_PORT GPIOA
965 #define ESP8266_USART_TX_GPIO_PIN GPIO_PIN_2
966 
967 #define ESP8266_USART_RX_GPIO_PORT GPIOA
968 #define ESP8266_USART_RX_GPIO_PIN GPIO_PIN_3
969 
970 #define ESP8266_USART_AF GPIO_AF7_USART2
971 
972 // Definition for USARTx's NVIC
973 #define ESP8266_USARTx_IRQn USART2_IRQn
974 #define ESP8266_USARTx_IRQHandler USART2_IRQHandler
975 
976 #define ESP8266_USART_PREEMT_PRIORITY 14
977 #define ESP8266_USART_SUB_PRIORITY 0
978 
979 #define ESP8266_USART_BAUDRATE 9600
980 
981 
982 #endif // #ifdef CONFIG_USE_PANEL_CENTERPANEL
983 
984 
985 
987 // ESP8266 - OTHER PINS
989 
990 
991 
992 #ifdef CONFIG_USE_PANEL_NODESMALL
993 /*
994 ESP8266
995 _GPIO0 PA12
996 _RST PA11
997 _CH PA8
998 _GPIO2 PB15
999 */
1000 
1001 
1002 #define ESP8266_GPIO0_GPIO_PIN GPIO_PIN_12
1003 #define ESP8266_GPIO0_GPIO_PORT GPIOA
1004 #define ESP8266_RST_GPIO_PIN GPIO_PIN_11
1005 #define ESP8266_RST_GPIO_PORT GPIOA
1006 
1007 #define ESP8266_CH_GPIO_PIN GPIO_PIN_8
1008 #define ESP8266_CH_GPIO_PORT GPIOA
1009 #define ESP8266_GPIO2_GPIO_PIN GPIO_PIN_15
1010 #define ESP8266_GPIO2_GPIO_PORT GPIOB
1011 
1012 
1013 #define ESP8266_PINS_CLK_ENABLES() \
1014  __GPIOB_CLK_ENABLE(); \
1015  __GPIOA_CLK_ENABLE()
1016 
1017 #endif // #ifdef CONFIG_USE_PANEL_NODESMALL
1018 
1019 
1020 
1021 #ifdef CONFIG_USE_PANEL_NODEMEDIUM
1022 
1023 /*
1024 ESP8266
1025 _GPIO0 PA1
1026 _RST PC3
1027 _CH PC9
1028 _GPIO2 PA8
1029 */
1030 
1031 
1032 #define ESP8266_GPIO0_GPIO_PIN GPIO_PIN_1
1033 #define ESP8266_GPIO0_GPIO_PORT GPIOA
1034 #define ESP8266_RST_GPIO_PIN GPIO_PIN_3
1035 #define ESP8266_RST_GPIO_PORT GPIOC
1036 
1037 #define ESP8266_CH_GPIO_PIN GPIO_PIN_9
1038 #define ESP8266_CH_GPIO_PORT GPIOC
1039 #define ESP8266_GPIO2_GPIO_PIN GPIO_PIN_8
1040 #define ESP8266_GPIO2_GPIO_PORT GPIOA
1041 
1042 
1043 #define ESP8266_PINS_CLK_ENABLES() \
1044  __GPIOA_CLK_ENABLE(); \
1045  __GPIOC_CLK_ENABLE()
1046 
1047 
1048 
1049 #endif // #ifdef CONFIG_USE_PANEL_NODEMEDIUM
1050 
1051 
1052 
1053 #ifdef CONFIG_USE_PANEL_CENTERPANEL
1054 
1055 /*
1056 ESP8266
1057 _GPIO0 PC13
1058 _RST PE2
1059 _CH PB9
1060 _GPIO2 PB8
1061 */
1062 
1063 
1064 #define ESP8266_GPIO0_GPIO_PORT GPIOC
1065 #define ESP8266_GPIO0_GPIO_PIN GPIO_PIN_13
1066 
1067 #define ESP8266_RST_GPIO_PORT GPIOE
1068 #define ESP8266_RST_GPIO_PIN GPIO_PIN_2
1069 
1070 #define ESP8266_CH_GPIO_PORT GPIOB
1071 #define ESP8266_CH_GPIO_PIN GPIO_PIN_9
1072 
1073 #define ESP8266_GPIO2_GPIO_PORT GPIOB
1074 #define ESP8266_GPIO2_GPIO_PIN GPIO_PIN_8
1075 
1076 
1077 
1078 #define ESP8266_PINS_CLK_ENABLES() \
1079  __GPIOB_CLK_ENABLE(); \
1080  __GPIOC_CLK_ENABLE(); \
1081  __GPIOE_CLK_ENABLE()
1082 
1083 
1084 
1085 #endif // #ifdef CONFIG_USE_PANEL_CENTERPANEL
1086 
1087 
1088 
1090 // IO
1092 
1093 
1094 /*
1095 DO NOT USE THEM AT NODEMEDIUM:
1096 DIGITAL_INPUT_1 PC7
1097 SENSOR_OPENCLOSE PC6
1098 */
1099 
1100 
1101 
1102 // DIGITAL_INPUT_2 PC8
1103 // RELAY_1_EN PC11
1104 // RELAY_2_EN PC10
1105 
1106 
1107 #ifdef CONFIG_USE_PANEL_NODEMEDIUM
1108 
1109 #define RELAY_1_GPIO_PORT GPIOC
1110 #define RELAY_1_GPIO_PIN GPIO_PIN_11
1111 
1112 #define RELAY_2_GPIO_PORT GPIOC
1113 #define RELAY_2_GPIO_PIN GPIO_PIN_10
1114 
1115 
1116 
1117 #define RELAY_PINS_CLK_ENABLES() \
1118  __GPIOC_CLK_ENABLE()
1119 
1120 
1121 
1122 // SENSOR_MOTION PC12
1123 // SENSOR_MOITON_EN X
1124 
1125 // SENSOR_SOUND_IMPACT PB14
1126 
1127 #define SENSOR_PINS_CLK_ENABLES() \
1128  __GPIOB_CLK_ENABLE(); \
1129  __GPIOC_CLK_ENABLE()
1130 
1131 
1132 // PIR signaling; HIGH = movement/LOW = no movement
1133 #define SENSOR_MOTION_GPIO_PORT GPIOC
1134 #define SENSOR_MOTION_GPIO_PIN GPIO_PIN_12
1135 
1136 // SOUND_IMPACT: high, when sound
1137 #define SENSOR_SOUND_IMPACT_GPIO_PORT GPIOB
1138 #define SENSOR_SOUND_IMPACT_GPIO_PIN GPIO_PIN_14
1139 
1140 
1141 
1142 #endif
1143 
1144 
1145 
1146 #ifdef CONFIG_USE_PANEL_CENTERPANEL
1147 
1148 
1149 // RELAY_1_EN PD3
1150 // RELAY_2_EN PD4
1151 
1152 // Ideiglenesen felcserélem, hogy a relay_1 az lehessen, amelyik be is van forrasztva (relay_2, alsó)
1153 
1154 
1155 #define RELAY_1_GPIO_PORT GPIOD
1156 #define RELAY_1_GPIO_PIN GPIO_PIN_4
1157 
1158 #define RELAY_2_GPIO_PORT GPIOD
1159 #define RELAY_2_GPIO_PIN GPIO_PIN_3
1160 
1161 
1162 
1163 #define RELAY_PINS_CLK_ENABLES() \
1164  __GPIOD_CLK_ENABLE()
1165 
1166 
1167 
1168 #endif
1169 
1170 
1171 
1173 // ETC
1175 
1176 #ifdef CONFIG_MODULE_RASPBERRYPI_ENABLE
1177 
1178 // Raspberry Pi
1179 
1180 #define RASPBERRYPI_USARTx USART1
1181 
1182 #define RASPBERRYPI_USART_CLK_ENABLES() \
1183  __USART1_CLK_ENABLE(); \
1184  __GPIOA_CLK_ENABLE()
1185 
1186 
1187 #define RASPBERRYPI_USART_TX_GPIO_PORT GPIOA
1188 #define RASPBERRYPI_USART_TX_GPIO_PIN GPIO_PIN_9
1189 
1190 #define RASPBERRYPI_USART_RX_GPIO_PORT GPIOA
1191 #define RASPBERRYPI_USART_RX_GPIO_PIN GPIO_PIN_10
1192 
1193 #define RASPBERRYPI_USART_AF GPIO_AF7_USART1
1194 
1195 #define RASPBERRYPI_USARTx_IRQn USART1_IRQn
1196 #define RASPBERRYPI_USARTx_IRQHandler USART1_IRQHandler
1197 
1198 #define RASPBERRYPI_USART_PREEMT_PRIORITY 14
1199 #define RASPBERRYPI_USART_SUB_PRIORITY 0
1200 
1201 #endif
1202 
1203 
1204 
1205 #endif /* BOARD_H_ */