248 lines
14 KiB
C
248 lines
14 KiB
C
/*==============================================================================
|
||
* Конфигурация портов с использованием бибилотеки PLIB035
|
||
*------------------------------------------------------------------------------
|
||
* ЦНИИ СЭТ, Разваляев Алексей <wot890089@mail.ru>
|
||
*==============================================================================
|
||
* Реализация функций инициализации портов находится в gpio.c
|
||
* ЦНИИ СЭТ
|
||
*==============================================================================
|
||
*/
|
||
#ifndef __PERIPH_CONFIG_H
|
||
#define __PERIPH_CONFIG_H
|
||
//-- Includes ------------------------------------------------------------------
|
||
#include "sysclk.h"
|
||
#include "gpio.h"
|
||
#include "uart.h"
|
||
#include "tmr.h"
|
||
#include "adc.h"
|
||
void Error_Handler(void);
|
||
|
||
//-- Общие Конфигурации -------------------------------------------------------
|
||
// 0 - использовать периферию, 1 - не использовать
|
||
#define USE_UART0 0
|
||
#define USE_UART1 1
|
||
|
||
#define USE_TMR0 1
|
||
#define USE_TMR1 1
|
||
#define USE_TMR2 1
|
||
#define USE_TMR3 0
|
||
|
||
#define USE_ADC_SEQ0 1
|
||
#define USE_ADC_SEQ1 0
|
||
#define USE_ADC_DC0 0
|
||
#define USE_ADC_DC1 0
|
||
#define USE_ADC_DC2 0
|
||
#define USE_ADC_DC3 0
|
||
|
||
//#define RETARGET // закоментирован - отключен,
|
||
// // разкоментирован - включен
|
||
//#define RETARGET_USE_ITM // закоментирован - использовать UART,
|
||
// // разкоментирован - использовать ITM
|
||
// Для дальнейшей настройки RETARGET -> retarget_conf.h
|
||
|
||
//-- RCU Конфигурации ---------------------------------------------------------
|
||
static RCU_PLL_Ref_TypeDef SYSCLK_Oscil_Type = RCU_PLL_Ref_OSEClk;
|
||
#define SYSCLK_CORE_CLOCK_MHZ 100
|
||
|
||
//-- GPIO Конфигурации --------------------------------------------------------
|
||
/*
|
||
Note:
|
||
Периферия сама настроит нужные пины в gpiox_config на альтернативные функции
|
||
*/
|
||
static GPIO_Init_TypeDef gpioa_config[] = {
|
||
// Пин, Режим, Выходной режим, Входной режим, Подтяжка, Нагрузка/Скорость
|
||
{ GPIO_Pin_0, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_1, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_2, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_3, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_4, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_5, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_6, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_7, GPIO_PinMode_Output, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_8, GPIO_PinMode_Output, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_9, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_10, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_11, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_12, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_13, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_14, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_15, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
};
|
||
|
||
static GPIO_Init_TypeDef gpiob_config[] = {
|
||
// Пин, Режим, Выходной режим, Входной режим, Подтяжка, Нагрузка/Скорость
|
||
{ GPIO_Pin_0, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_1, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_2, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_3, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_4, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_5, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_6, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_7, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_8, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_9, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_10, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_11, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_12, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_13, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_14, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_15, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
};
|
||
|
||
|
||
|
||
//-- UART Конфигурации --------------------------------------------------------
|
||
#if USE_UART0==1
|
||
static UART_ExtInit_TypeDef uart0_config = {
|
||
//Стоп биты, Четность, Длина посылки, Скорость, FIFO, Направление работы
|
||
UART_StopBit_1, UART_ParityBit_Disable, UART_DataWidth_8, 115200, DISABLE, UART_Direction_RxTx,
|
||
//Rx Коллбек Tx Коллбек Idle Коллбек Error Коллбек
|
||
NULL, NULL, NULL, NULL
|
||
};
|
||
#endif
|
||
|
||
#if USE_UART1==1
|
||
static UART_ExtInit_TypeDef uart1_config = {
|
||
//Стоп биты, Четность, Длина посылки, Скорость, FIFO, Направление работы
|
||
UART_StopBit_1, UART_ParityBit_Disable, UART_DataWidth_8, 115200, DISABLE, UART_Direction_RxTx,
|
||
//Rx Коллбек Tx Коллбек Idle Коллбек Error Коллбек
|
||
NULL, NULL, NULL, NULL
|
||
};
|
||
#endif
|
||
|
||
|
||
|
||
//-- TMR Конфигурации ---------------------------------------------------------
|
||
#if USE_TMR0==1
|
||
static TMR_ExtInit_TypeDef tmr0_config = {
|
||
//Частота Clk МГц, Период обновления
|
||
SYSCLK_CORE_CLOCK_MHZ, LOAD(0xFFFFFFFF, SYSCLK_CORE_CLOCK_MHZ-1),
|
||
//Прерывания Запуск конверсии АЦП Реквест DMA Внешнее тактирование
|
||
DISABLE, DISABLE, DISABLE, TMR_ExtInput_Disable
|
||
};
|
||
#endif
|
||
|
||
#if USE_TMR1==1
|
||
static TMR_ExtInit_TypeDef tmr1_config = {
|
||
//Частота Clk МГц, Период обновления
|
||
SYSCLK_CORE_CLOCK_MHZ, FREQ_HZ(10),
|
||
//Прерывания Запуск конверсии АЦП Реквест DMA Внешнее тактирование
|
||
DISABLE, DISABLE, DISABLE, TMR_ExtInput_Disable
|
||
};
|
||
#endif
|
||
|
||
#if USE_TMR2==1
|
||
static TMR_ExtInit_TypeDef tmr2_config = {
|
||
//Частота Clk МГц, Период обновления
|
||
SYSCLK_CORE_CLOCK_MHZ, PERIOD_MKS(1000000),
|
||
//Прерывания Запуск конверсии АЦП Реквест DMA Внешнее тактирование
|
||
ENABLE, DISABLE, DISABLE, TMR_ExtInput_Disable
|
||
};
|
||
#endif
|
||
|
||
#if USE_TMR3==1
|
||
static TMR_Init_TypeDef tmr3_config = {
|
||
//Частота Clk МГц, Период обновления
|
||
SYSCLK_CORE_CLOCK_MHZ, PERIOD_MKS(1000),
|
||
//Прерывания Запуск конверсии АЦП Реквест DMA Внешнее тактирование
|
||
DISABLE, DISABLE, DISABLE, TMR_ExtInput_Disable
|
||
};
|
||
#endif
|
||
|
||
//-- ADC SEQ Конфигурации -----------------------------------------------------
|
||
static RCU_PeriphClk_TypeDef ADC_ClockSource = RCU_PeriphClk_PLLClk;
|
||
static float ADC_ClockMHz = 12.5;
|
||
#if USE_ADC_SEQ0==1
|
||
static ADC_SEQ_ExtInit_TypeDef adc_seq0_config = {
|
||
//Событие запуска секвенсора, Разрешение программного запуска
|
||
ADC_SEQ_StartEvent_SwReq, ENABLE,
|
||
//Выбор каналов для запросов секвенсора
|
||
ADC_CH_Num_0, ADC_CH_Num_1, ADC_CH_Num_2, ADC_CH_Num_3,
|
||
//Последний запрос, Усреднение запросов, Усреднение запросов
|
||
ADC_SEQ_ReqNum_1, ADC_SEQ_Average_2, DISABLE,
|
||
//Кол-во рестартов секвенсора, Усреднение рестартов, Задержка между рестартами
|
||
0, DISABLE, 0,
|
||
//Разрешение каналов цифровых компараторов
|
||
DISABLE, DISABLE, DISABLE, DISABLE,
|
||
//Настройка DMA FIFO, Разрешение DMA
|
||
ADC_SEQ_DMAFIFOLevel_1, DISABLE,
|
||
//Прерывания, Количество запросов для прерывания
|
||
ENABLE, 0,
|
||
//SEQ Complete Коллбек, Error коллбек
|
||
NULL, NULL
|
||
|
||
};
|
||
#endif
|
||
#if USE_ADC_SEQ1==1
|
||
static ADC_SEQ_ExtInit_TypeDef adc_seq1_config = {
|
||
//Событие запуска секвенсора, Разрешение программного запуска
|
||
ADC_SEQ_StartEvent_SwReq, ENABLE,
|
||
//Выбор каналов для запросов секвенсора
|
||
ADC_CH_Num_0, ADC_CH_Num_1, ADC_CH_Num_2, ADC_CH_Num_3,
|
||
//Макс. кол-во запросов, Усреднение запросов, Усреднение запросов
|
||
ADC_SEQ_ReqNum_0, ADC_SEQ_Average_2, DISABLE,
|
||
//Кол-во рестартов секвенсора, Усреднение рестартов, Задержка между рестартами
|
||
0, DISABLE, 0,
|
||
//Разрешение каналов цифровых компараторов
|
||
DISABLE, DISABLE, DISABLE, DISABLE,
|
||
//Настройка DMA FIFO, Разрешение DMA
|
||
ADC_SEQ_DMAFIFOLevel_1, DISABLE,
|
||
//Прерывания, Количество запросов для прерывания
|
||
DISABLE, 0,
|
||
//SEQ Complete Коллбек, Error коллбек
|
||
NULL, NULL
|
||
|
||
};
|
||
#endif
|
||
|
||
//-- ADC DC Конфигурации ------------------------------------------------------
|
||
#if USE_ADC_DC0==1
|
||
static ADC_DC_ExtInit_TypeDef adc_dc0_config = {
|
||
//Включение выхода компаратора
|
||
DISABLE,
|
||
//Нижний порог, Верхний порог
|
||
0, 0,
|
||
//Запуск измерения, Канал, Режим срабатывания, Условие срабатывания
|
||
ADC_DC_Source_EOC, ADC_CH_Num_1, ADC_DC_Mode_Multiple, ADC_DC_Condition_Low,
|
||
//DC Triggered Коллбек, Error коллбек
|
||
NULL, NULL
|
||
};
|
||
#endif
|
||
#if USE_ADC_DC1==1
|
||
static ADC_DC_ExtInit_TypeDef adc_dc1_config = {
|
||
//Включение выхода компаратора
|
||
DISABLE,
|
||
//Нижний порог, Верхний порог
|
||
0, 0,
|
||
//Запуск измерения, Канал, Режим срабатывания, Условие срабатывания
|
||
ADC_DC_Source_EOC, ADC_CH_Num_2, ADC_DC_Mode_Multiple, ADC_DC_Condition_Low,
|
||
//DC Triggered Коллбек, Error коллбек
|
||
NULL, NULL
|
||
};
|
||
#endif
|
||
#if USE_ADC_DC2==1
|
||
static ADC_DC_ExtInit_TypeDef adc_dc2_config = {
|
||
//Включение выхода компаратора
|
||
DISABLE,
|
||
//Нижний порог, Верхний порог
|
||
0, 0,
|
||
//Запуск измерения, Канал, Режим срабатывания, Условие срабатывания
|
||
ADC_DC_Source_EOC, ADC_CH_Num_3, ADC_DC_Mode_Multiple, ADC_DC_Condition_Low,
|
||
//DC Triggered Коллбек, Error коллбек
|
||
NULL, NULL
|
||
};
|
||
#endif
|
||
#if USE_ADC_DC3==1
|
||
static ADC_DC_ExtInit_TypeDef adc_dc3_config = {
|
||
//Включение выхода компаратора
|
||
DISABLE,
|
||
//Нижний порог, Верхний порог
|
||
0, 0,
|
||
//Запуск измерения, Канал, Режим срабатывания, Условие срабатывания
|
||
ADC_DC_Source_EOC, ADC_CH_Num_4, ADC_DC_Mode_Multiple, ADC_DC_Condition_Low,
|
||
//DC Triggered Коллбек, Error коллбек
|
||
NULL, NULL
|
||
};
|
||
#endif
|
||
#endif /*__PERIPH_CONFIG_H*/
|