296 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			296 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|     ChibiOS - Copyright (C) 2015 RedoX https://github.com/RedoXyde
 | |
| 
 | |
|     Licensed under the Apache License, Version 2.0 (the "License");
 | |
|     you may not use this file except in compliance with the License.
 | |
|     You may obtain a copy of the License at
 | |
| 
 | |
|         http://www.apache.org/licenses/LICENSE-2.0
 | |
| 
 | |
|     Unless required by applicable law or agreed to in writing, software
 | |
|     distributed under the License is distributed on an "AS IS" BASIS,
 | |
|     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
|     See the License for the specific language governing permissions and
 | |
|     limitations under the License.
 | |
| */
 | |
| 
 | |
| #ifndef _BOARD_H_
 | |
| #define _BOARD_H_
 | |
| 
 | |
| /*
 | |
|  * Setup for the PJRC Teensy 3.1 board.
 | |
|  */
 | |
| 
 | |
| /*
 | |
|  * Board identifier.
 | |
|  */
 | |
| #define BOARD_PJRC_TEENSY_3_1
 | |
| #define BOARD_NAME "PJRC Teensy 3.1"
 | |
| 
 | |
| /* External 16 MHz crystal */
 | |
| #define KINETIS_XTAL_FREQUENCY 16000000UL
 | |
| 
 | |
| /* Use internal capacitors for the crystal */
 | |
| #define KINETIS_BOARD_OSCILLATOR_SETTING OSC_CR_SC8P | OSC_CR_SC2P
 | |
| 
 | |
| /*
 | |
|  * MCU type
 | |
|  */
 | |
| #define K20x7
 | |
| 
 | |
| /*
 | |
|  * IO pins assignments.
 | |
|  */
 | |
| #define PORTA_PIN0 0
 | |
| #define PORTA_PIN1 1
 | |
| #define PORTA_PIN2 2
 | |
| #define PORTA_PIN3 3
 | |
| #define TEENSY_PIN33 4
 | |
| #define TEENSY_PIN24 5
 | |
| #define PORTA_PIN6 6
 | |
| #define PORTA_PIN7 7
 | |
| #define PORTA_PIN8 8
 | |
| #define PORTA_PIN9 9
 | |
| #define PORTA_PIN10 10
 | |
| #define PORTA_PIN11 11
 | |
| #define TEENSY_PIN3 12
 | |
| #define TEENSY_PIN4 13
 | |
| #define PORTA_PIN14 14
 | |
| #define PORTA_PIN15 15
 | |
| #define PORTA_PIN16 16
 | |
| #define PORTA_PIN17 17
 | |
| #define PORTA_PIN18 18
 | |
| #define PORTA_PIN19 19
 | |
| #define PORTA_PIN20 20
 | |
| #define PORTA_PIN21 21
 | |
| #define PORTA_PIN22 22
 | |
| #define PORTA_PIN23 23
 | |
| #define PORTA_PIN24 24
 | |
| #define PORTA_PIN25 25
 | |
| #define PORTA_PIN26 26
 | |
| #define PORTA_PIN27 27
 | |
| #define PORTA_PIN28 28
 | |
| #define PORTA_PIN29 29
 | |
| #define PORTA_PIN30 30
 | |
| #define PORTA_PIN31 31
 | |
| 
 | |
| #define TEENSY_PIN3_IOPORT IOPORT1
 | |
| #define TEENSY_PIN4_IOPORT IOPORT1
 | |
| #define TEENSY_PIN24_IOPORT IOPORT1
 | |
| #define TEENSY_PIN33_IOPORT IOPORT1
 | |
| 
 | |
| #define TEENSY_PIN16 0
 | |
| #define TEENSY_PIN17 1
 | |
| #define TEENSY_PIN19 2
 | |
| #define TEENSY_PIN18 3
 | |
| #define PORTB_PIN4 4
 | |
| #define PORTB_PIN5 5
 | |
| #define PORTB_PIN6 6
 | |
| #define PORTB_PIN7 7
 | |
| #define PORTB_PIN8 8
 | |
| #define PORTB_PIN9 9
 | |
| #define PORTB_PIN10 10
 | |
| #define PORTB_PIN11 11
 | |
| #define PORTB_PIN12 12
 | |
| #define PORTB_PIN13 13
 | |
| #define PORTB_PIN14 14
 | |
| #define PORTB_PIN15 15
 | |
| #define TEENSY_PIN0 16
 | |
| #define TEENSY_PIN1 17
 | |
| #define TEENSY_PIN32 18
 | |
| #define TEENSY_PIN25 19
 | |
| #define PORTB_PIN20 20
 | |
| #define PORTB_PIN21 21
 | |
| #define PORTB_PIN22 22
 | |
| #define PORTB_PIN23 23
 | |
| #define PORTB_PIN24 24
 | |
| #define PORTB_PIN25 25
 | |
| #define PORTB_PIN26 26
 | |
| #define PORTB_PIN27 27
 | |
| #define PORTB_PIN28 28
 | |
| #define PORTB_PIN29 29
 | |
| #define PORTB_PIN30 30
 | |
| #define PORTB_PIN31 31
 | |
| 
 | |
| #define TEENSY_PIN0_IOPORT IOPORT2
 | |
| #define TEENSY_PIN1_IOPORT IOPORT2
 | |
| #define TEENSY_PIN16_IOPORT IOPORT2
 | |
| #define TEENSY_PIN17_IOPORT IOPORT2
 | |
| #define TEENSY_PIN18_IOPORT IOPORT2
 | |
| #define TEENSY_PIN19_IOPORT IOPORT2
 | |
| #define TEENSY_PIN25_IOPORT IOPORT2
 | |
| #define TEENSY_PIN32_IOPORT IOPORT2
 | |
| 
 | |
| #define TEENSY_PIN15 0
 | |
| #define TEENSY_PIN22 1
 | |
| #define TEENSY_PIN23 2
 | |
| #define TEENSY_PIN9 3
 | |
| #define TEENSY_PIN10 4
 | |
| #define TEENSY_PIN13 5
 | |
| #define TEENSY_PIN11 6
 | |
| #define TEENSY_PIN12 7
 | |
| #define TEENSY_PIN28 8
 | |
| #define TEENSY_PIN27 9
 | |
| #define TEENSY_PIN29 10
 | |
| #define TEENSY_PIN30 11
 | |
| #define PORTC_PIN12 12
 | |
| #define PORTC_PIN13 13
 | |
| #define PORTC_PIN14 14
 | |
| #define PORTC_PIN15 15
 | |
| #define PORTC_PIN16 16
 | |
| #define PORTC_PIN17 17
 | |
| #define PORTC_PIN18 18
 | |
| #define PORTC_PIN19 19
 | |
| #define PORTC_PIN20 20
 | |
| #define PORTC_PIN21 21
 | |
| #define PORTC_PIN22 22
 | |
| #define PORTC_PIN23 23
 | |
| #define PORTC_PIN24 24
 | |
| #define PORTC_PIN25 25
 | |
| #define PORTC_PIN26 26
 | |
| #define PORTC_PIN27 27
 | |
| #define PORTC_PIN28 28
 | |
| #define PORTC_PIN29 29
 | |
| #define PORTC_PIN30 30
 | |
| #define PORTC_PIN31 31
 | |
| 
 | |
| #define TEENSY_PIN9_IOPORT IOPORT3
 | |
| #define TEENSY_PIN10_IOPORT IOPORT3
 | |
| #define TEENSY_PIN11_IOPORT IOPORT3
 | |
| #define TEENSY_PIN12_IOPORT IOPORT3
 | |
| #define TEENSY_PIN13_IOPORT IOPORT3
 | |
| #define TEENSY_PIN15_IOPORT IOPORT3
 | |
| #define TEENSY_PIN22_IOPORT IOPORT3
 | |
| #define TEENSY_PIN23_IOPORT IOPORT3
 | |
| #define TEENSY_PIN27_IOPORT IOPORT3
 | |
| #define TEENSY_PIN28_IOPORT IOPORT3
 | |
| #define TEENSY_PIN29_IOPORT IOPORT3
 | |
| #define TEENSY_PIN30_IOPORT IOPORT3
 | |
| 
 | |
| #define TEENSY_PIN2 0
 | |
| #define TEENSY_PIN14 1
 | |
| #define TEENSY_PIN7 2
 | |
| #define TEENSY_PIN8 3
 | |
| #define TEENSY_PIN6 4
 | |
| #define TEENSY_PIN20 5
 | |
| #define TEENSY_PIN21 6
 | |
| #define TEENSY_PIN5 7
 | |
| #define PORTD_PIN8 8
 | |
| #define PORTD_PIN9 9
 | |
| #define PORTD_PIN10 10
 | |
| #define PORTD_PIN11 11
 | |
| #define PORTD_PIN12 12
 | |
| #define PORTD_PIN13 13
 | |
| #define PORTD_PIN14 14
 | |
| #define PORTD_PIN15 15
 | |
| #define PORTD_PIN16 16
 | |
| #define PORTD_PIN17 17
 | |
| #define PORTD_PIN18 18
 | |
| #define PORTD_PIN19 19
 | |
| #define PORTD_PIN20 20
 | |
| #define PORTD_PIN21 21
 | |
| #define PORTD_PIN22 22
 | |
| #define PORTD_PIN23 23
 | |
| #define PORTD_PIN24 24
 | |
| #define PORTD_PIN25 25
 | |
| #define PORTD_PIN26 26
 | |
| #define PORTD_PIN27 27
 | |
| #define PORTD_PIN28 28
 | |
| #define PORTD_PIN29 29
 | |
| #define PORTD_PIN30 30
 | |
| #define PORTD_PIN31 31
 | |
| 
 | |
| #define TEENSY_PIN2_IOPORT IOPORT4
 | |
| #define TEENSY_PIN5_IOPORT IOPORT4
 | |
| #define TEENSY_PIN6_IOPORT IOPORT4
 | |
| #define TEENSY_PIN7_IOPORT IOPORT4
 | |
| #define TEENSY_PIN8_IOPORT IOPORT4
 | |
| #define TEENSY_PIN14_IOPORT IOPORT4
 | |
| #define TEENSY_PIN20_IOPORT IOPORT4
 | |
| #define TEENSY_PIN21_IOPORT IOPORT4
 | |
| 
 | |
| #define TEENSY_PIN31 0
 | |
| #define TEENSY_PIN26 1
 | |
| #define PORTE_PIN2 2
 | |
| #define PORTE_PIN3 3
 | |
| #define PORTE_PIN4 4
 | |
| #define PORTE_PIN5 5
 | |
| #define PORTE_PIN6 6
 | |
| #define PORTE_PIN7 7
 | |
| #define PORTE_PIN8 8
 | |
| #define PORTE_PIN9 9
 | |
| #define PORTE_PIN10 10
 | |
| #define PORTE_PIN11 11
 | |
| #define PORTE_PIN12 12
 | |
| #define PORTE_PIN13 13
 | |
| #define PORTE_PIN14 14
 | |
| #define PORTE_PIN15 15
 | |
| #define PORTE_PIN16 16
 | |
| #define PORTE_PIN17 17
 | |
| #define PORTE_PIN18 18
 | |
| #define PORTE_PIN19 19
 | |
| #define PORTE_PIN20 20
 | |
| #define PORTE_PIN21 21
 | |
| #define PORTE_PIN22 22
 | |
| #define PORTE_PIN23 23
 | |
| #define PORTE_PIN24 24
 | |
| #define PORTE_PIN25 25
 | |
| #define PORTE_PIN26 26
 | |
| #define PORTE_PIN27 27
 | |
| #define PORTE_PIN28 28
 | |
| #define PORTE_PIN29 29
 | |
| #define PORTE_PIN30 30
 | |
| #define PORTE_PIN31 31
 | |
| 
 | |
| #define TEENSY_PIN26_IOPORT IOPORT5
 | |
| #define TEENSY_PIN31_IOPORT IOPORT5
 | |
| 
 | |
| #define LINE_PIN1 PAL_LINE(TEENSY_PIN1_IOPORT, TEENSY_PIN1)
 | |
| #define LINE_PIN2 PAL_LINE(TEENSY_PIN2_IOPORT, TEENSY_PIN2)
 | |
| #define LINE_PIN3 PAL_LINE(TEENSY_PIN3_IOPORT, TEENSY_PIN3)
 | |
| #define LINE_PIN4 PAL_LINE(TEENSY_PIN4_IOPORT, TEENSY_PIN4)
 | |
| #define LINE_PIN5 PAL_LINE(TEENSY_PIN5_IOPORT, TEENSY_PIN5)
 | |
| #define LINE_PIN6 PAL_LINE(TEENSY_PIN6_IOPORT, TEENSY_PIN6)
 | |
| #define LINE_PIN7 PAL_LINE(TEENSY_PIN7_IOPORT, TEENSY_PIN7)
 | |
| #define LINE_PIN8 PAL_LINE(TEENSY_PIN8_IOPORT, TEENSY_PIN8)
 | |
| #define LINE_PIN9 PAL_LINE(TEENSY_PIN9_IOPORT, TEENSY_PIN9)
 | |
| #define LINE_PIN10 PAL_LINE(TEENSY_PIN10_IOPORT, TEENSY_PIN10)
 | |
| #define LINE_PIN11 PAL_LINE(TEENSY_PIN11_IOPORT, TEENSY_PIN11)
 | |
| #define LINE_PIN12 PAL_LINE(TEENSY_PIN12_IOPORT, TEENSY_PIN12)
 | |
| #define LINE_PIN13 PAL_LINE(TEENSY_PIN13_IOPORT, TEENSY_PIN13)
 | |
| #define LINE_PIN14 PAL_LINE(TEENSY_PIN14_IOPORT, TEENSY_PIN14)
 | |
| #define LINE_PIN15 PAL_LINE(TEENSY_PIN15_IOPORT, TEENSY_PIN15)
 | |
| #define LINE_PIN16 PAL_LINE(TEENSY_PIN16_IOPORT, TEENSY_PIN16)
 | |
| #define LINE_PIN17 PAL_LINE(TEENSY_PIN17_IOPORT, TEENSY_PIN17)
 | |
| #define LINE_PIN18 PAL_LINE(TEENSY_PIN18_IOPORT, TEENSY_PIN18)
 | |
| #define LINE_PIN19 PAL_LINE(TEENSY_PIN19_IOPORT, TEENSY_PIN19)
 | |
| #define LINE_PIN20 PAL_LINE(TEENSY_PIN20_IOPORT, TEENSY_PIN20)
 | |
| #define LINE_PIN21 PAL_LINE(TEENSY_PIN21_IOPORT, TEENSY_PIN21)
 | |
| #define LINE_PIN22 PAL_LINE(TEENSY_PIN22_IOPORT, TEENSY_PIN22)
 | |
| #define LINE_PIN23 PAL_LINE(TEENSY_PIN23_IOPORT, TEENSY_PIN23)
 | |
| #define LINE_PIN24 PAL_LINE(TEENSY_PIN24_IOPORT, TEENSY_PIN24)
 | |
| #define LINE_PIN25 PAL_LINE(TEENSY_PIN25_IOPORT, TEENSY_PIN25)
 | |
| #define LINE_PIN25 PAL_LINE(TEENSY_PIN25_IOPORT, TEENSY_PIN25)
 | |
| #define LINE_PIN26 PAL_LINE(TEENSY_PIN26_IOPORT, TEENSY_PIN26)
 | |
| #define LINE_PIN27 PAL_LINE(TEENSY_PIN27_IOPORT, TEENSY_PIN27)
 | |
| #define LINE_PIN28 PAL_LINE(TEENSY_PIN28_IOPORT, TEENSY_PIN28)
 | |
| #define LINE_PIN29 PAL_LINE(TEENSY_PIN29_IOPORT, TEENSY_PIN29)
 | |
| #define LINE_PIN30 PAL_LINE(TEENSY_PIN30_IOPORT, TEENSY_PIN30)
 | |
| #define LINE_PIN31 PAL_LINE(TEENSY_PIN31_IOPORT, TEENSY_PIN31)
 | |
| #define LINE_PIN32 PAL_LINE(TEENSY_PIN32_IOPORT, TEENSY_PIN32)
 | |
| #define LINE_PIN33 PAL_LINE(TEENSY_PIN33_IOPORT, TEENSY_PIN33)
 | |
| 
 | |
| #define LINE_LED LINE_PIN13
 | |
| 
 | |
| #if !defined(_FROM_ASM_)
 | |
| #    ifdef __cplusplus
 | |
| extern "C" {
 | |
| #    endif
 | |
| void boardInit(void);
 | |
| #    ifdef __cplusplus
 | |
| }
 | |
| #    endif
 | |
| #endif /* _FROM_ASM_ */
 | |
| 
 | |
| #endif /* _BOARD_H_ */
 |