board.h 3.8 KB
Newer Older
O
onelife.real 已提交
1 2 3
/******************************************************************//**
 * @file 		drv_dma.h
 * @brief 	USART driver of RT-Thread RTOS for EFM32
O
onelife.real@gmail.com 已提交
4
 * 	COPYRIGHT (C) 2011, RT-Thread Development Team
O
onelife.real 已提交
5 6 7 8 9 10 11 12 13 14
 * @author 	onelife
 * @version 	0.4 beta
 **********************************************************************
 * @section License
 * The license and distribution terms for this file may be found in the file LICENSE in this 
 * distribution or at http://www.rt-thread.org/license/LICENSE
 **********************************************************************
 * @section Change Logs
 * Date			Author		Notes
 * 2010-12-21	onelife		Initial creation for EFM32
O
onelife.real 已提交
15
 * 2011-05-06	onelife		Add EFM32 development kit and SPI Flash support
O
onelife.real 已提交
16 17 18 19 20 21
 *********************************************************************/
#ifndef __BOARD_H__
#define __BOARD_H__

#if defined(EFM32G890F128)
#elif defined(EFM32G290F128)
O
onelife.real@gmail.com 已提交
22
#elif defined(EFM32G230F128)
O
onelife.real 已提交
23 24 25 26 27 28 29 30 31 32
#else
#error Unknown MCU type 
#endif

/* Includes -------------------------------------------------------------------*/
#include <efm32.h>
#include <efm32_chip.h>
#include <efm32_cmu.h>
#include <efm32_rmu.h>
#include <efm32_dma.h>
O
onelife.real@gmail.com 已提交
33
#include <efm32_rtc.h>
O
onelife.real 已提交
34 35
#include <efm32_timer.h>
#include <efm32_gpio.h>
O
onelife.real@gmail.com 已提交
36 37
#include <efm32_acmp.h>
#include <efm32_adc.h>
O
onelife.real 已提交
38 39 40 41 42
#include <efm32_usart.h>
#include <efm32_i2c.h>

#include <rtthread.h>

O
onelife.real 已提交
43 44 45 46
#if defined(EFM32_G290_DK)
#include <dvk.h>
#endif

O
onelife.real 已提交
47 48 49 50 51 52 53 54 55
/* Exported types -------------------------------------------------------------*/
/* Exported constants ---------------------------------------------------------*/
/* Exported variables ----------------------------------------------------------*/
extern rt_uint32_t rt_system_status;

/* Exported macro -------------------------------------------------------------*/
#define DEBUG_EFM
#define DEBUG_EFM_USER

O
onelife.real 已提交
56 57 58 59 60
#define EFM32_SFLASH_DEBUG

#define EFM32_NO_DATA				(0)
#define EFM32_NO_OFFSET				(-1)
#define EFM32_NO_POINTER			(RT_NULL)
O
onelife.real 已提交
61

O
onelife.real 已提交
62
#define EFM32_SRAM_END 				(RAM_MEM_BASE + SRAM_SIZE)
O
onelife.real 已提交
63

O
onelife.real 已提交
64 65
#define EFM32_BASE_PRI_DEFAULT 		(0x0UL << 5)
#define EFM32_IRQ_PRI_DEFAULT 		(0x4UL << 5)
O
onelife.real 已提交
66

O
onelife.real@gmail.com 已提交
67
#if (defined(EFM32_G890_STK) || defined(EFM32_G290_DK))
O
onelife.real 已提交
68
#define EFM32_HFXO_FREQUENCY 		(32000000)
O
onelife.real@gmail.com 已提交
69
#else
O
onelife.real 已提交
70
#define EFM32_HFXO_FREQUENCY		(00000000)
O
onelife.real@gmail.com 已提交
71
#endif
O
onelife.real 已提交
72

O
onelife.real 已提交
73 74
#define UART_BAUDRATE				(115200)
#define USART_RX_BUFFER_SIZE		(64)
O
onelife.real 已提交
75

O
onelife.real 已提交
76 77
/* Max SPI clock: HFPERCLK/2 for master, HFPERCLK/8 for slave */
#define SPI_BAUDRATE				(4000000)
O
onelife.real 已提交
78

O
onelife.real 已提交
79 80
/* Slave select PIN setting for unit 2, 1 and 0 */
#define SPI_AUTOCS_ENABLE 			((0 << 2) | (0 << 1) | (1 << 0))
O
onelife.real 已提交
81

O
onelife.real 已提交
82 83 84 85 86
#define IIC_RX_BUFFER_SIZE			(32)

#define ADC_INIT_REF				adcRef2V5
#define ADC_INIT_CH 				adcSingleInpCh5
#define ADC_CONVERT_FREQUENCY 		(7000000)
O
onelife.real 已提交
87 88

#if (RT_CONSOLE_DEVICE == 0x0UL)
O
onelife.real 已提交
89
#define CONSOLE_DEVICE 				RT_USART0_NAME
O
onelife.real 已提交
90
#elif (RT_CONSOLE_DEVICE == 0x1UL)
O
onelife.real 已提交
91
#define CONSOLE_DEVICE 				RT_USART1_NAME
O
onelife.real 已提交
92
#elif (RT_CONSOLE_DEVICE == 0x2UL)
O
onelife.real 已提交
93
#define CONSOLE_DEVICE 				RT_USART2_NAME
O
onelife.real 已提交
94
#else
O
onelife.real 已提交
95 96 97 98 99
#define CONSOLE_DEVICE 				"no"
#endif

#if defined(EFM32_G290_DK)
#define EFM32_USING_SFLASH
O
onelife.real 已提交
100
#endif
O
onelife.real 已提交
101
#define SFLASH_USING_DEVICE_NAME 	RT_USART0_NAME
O
onelife.real 已提交
102

O
onelife.real@gmail.com 已提交
103 104 105 106 107 108 109 110
/*! fixme: move the following define to Rtdef.h */
#define RT_DEVICE_CTRL_USART_RBUFFER	(0xF1)		/*!< set USART rx buffer */
#define RT_DEVICE_CTRL_IIC_SETTING		(0xF2)		/*!< change IIC setting */
#define RT_DEVICE_CTRL_TIMER_PERIOD		(0xF3)		/*!< set Timer timeout period */
#define RT_DEVICE_CTRL_ADC_MODE			(0xF4)		/*!< change ADC mode */
#define RT_DEVICE_CTRL_ADC_RESULT		(0xF5)		/*!< get ADC result */
#define RT_DEVICE_CTRL_ACMP_INIT		(0xF6)		/*!< Initialize ACMP */
#define RT_DEVICE_CTRL_ACMP_OUTPUT		(0xF7)		/*!< get ACMP output */
O
onelife.real 已提交
111 112 113 114 115 116

/* Exported functions --------------------------------------------------------- */
void rt_hw_board_init(void);
void rt_hw_driver_init(void);

#endif /*__BOARD_H__ */