added Olimex-STM32-LCD
This commit is contained in:
parent
652b85f16e
commit
4600da18f3
8
boards/base/Olimex-STM32-LCD/board.mk
Normal file
8
boards/base/Olimex-STM32-LCD/board.mk
Normal file
@ -0,0 +1,8 @@
|
||||
GFXINC += $(GFXLIB)/boards/base/Olimex-STM32-LCD
|
||||
GFXSRC +=
|
||||
GFXDEFS += -DGFX_USE_CHIBIOS=TRUE
|
||||
|
||||
include $(GFXLIB)/boards/base/Olimex-STM32-LCD/chibios_board/board.mk
|
||||
include $(GFXLIB)/drivers/gdisp/ILI9320/gdisp_lld.mk
|
||||
include $(GFXLIB)/drivers/ginput/touch/MCU/ginput_lld.mk
|
||||
|
@ -5,11 +5,6 @@
|
||||
* http://ugfx.org/license.html
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file drivers/gdisp/ILI9320/board_ILI9320_olimex_stm32_lcd.h
|
||||
* @brief GDISP Graphic Driver subsystem board interface for the ILI9320 display.
|
||||
*/
|
||||
|
||||
#ifndef GDISP_LLD_BOARD_H
|
||||
#define GDISP_LLD_BOARD_H
|
||||
|
||||
@ -52,6 +47,7 @@ static inline void post_init_board(GDisplay *g) {
|
||||
|
||||
static inline void setpin_reset(GDisplay *g, bool_t state) {
|
||||
(void) g;
|
||||
|
||||
if(state)
|
||||
palClearPad(GPIOE, GPIOE_TFT_RST);
|
||||
else
|
||||
@ -60,6 +56,7 @@ static inline void setpin_reset(GDisplay *g, bool_t state) {
|
||||
|
||||
static inline void set_backlight(GDisplay *g, uint8_t percent) {
|
||||
(void) g;
|
||||
|
||||
if(percent)
|
||||
palClearPad(GPIOD, GPIOD_TFT_LIGHT);
|
||||
else
|
||||
@ -76,11 +73,13 @@ static inline void release_bus(GDisplay *g) {
|
||||
|
||||
static inline void write_index(GDisplay *g, uint16_t index) {
|
||||
(void) g;
|
||||
|
||||
GDISP_REG = index;
|
||||
}
|
||||
|
||||
static inline void write_data(GDisplay *g, uint16_t data) {
|
||||
(void) g;
|
||||
|
||||
GDISP_RAM = data;
|
||||
}
|
||||
|
||||
@ -94,7 +93,9 @@ static inline void setwritemode(GDisplay *g) {
|
||||
|
||||
static inline uint16_t read_data(GDisplay *g) {
|
||||
(void) g;
|
||||
|
||||
return GDISP_RAM;
|
||||
}
|
||||
|
||||
#endif /* GDISP_LLD_BOARD_H */
|
||||
|
88
boards/base/Olimex-STM32-LCD/chibios_board/board.c
Normal file
88
boards/base/Olimex-STM32-LCD/chibios_board/board.c
Normal file
@ -0,0 +1,88 @@
|
||||
/*
|
||||
ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
#include "ch.h"
|
||||
#include "hal.h"
|
||||
|
||||
/**
|
||||
* @brief PAL setup.
|
||||
* @details Digital I/O ports static configuration as defined in @p board.h.
|
||||
* This variable is used by the HAL when initializing the PAL driver.
|
||||
*/
|
||||
#if HAL_USE_PAL || defined(__DOXYGEN__)
|
||||
const PALConfig pal_default_config =
|
||||
{
|
||||
{VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH},
|
||||
{VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH},
|
||||
{VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH},
|
||||
{VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH},
|
||||
{VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH},
|
||||
{VAL_GPIOFODR, VAL_GPIOFCRL, VAL_GPIOFCRH},
|
||||
{VAL_GPIOGODR, VAL_GPIOGCRL, VAL_GPIOGCRH},
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Early initialization code.
|
||||
* This initialization must be performed just after stack setup and before
|
||||
* any other initialization.
|
||||
*/
|
||||
void __early_init(void) {
|
||||
stm32_clock_init();
|
||||
}
|
||||
|
||||
#if HAL_USE_SDC || defined(__DOXYGEN__)
|
||||
/**
|
||||
* @brief SDC card detection.
|
||||
*/
|
||||
bool_t sdc_lld_is_card_inserted(SDCDriver *sdcp) {
|
||||
(void)sdcp;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief SDC card write protection detection.
|
||||
*/
|
||||
bool_t sdc_lld_is_write_protected(SDCDriver *sdcp) {
|
||||
(void)sdcp;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
#endif /* HAL_USE_SDC */
|
||||
|
||||
#if HAL_USE_MMC_SPI
|
||||
/* Board-related functions related to the MMC_SPI driver.*/
|
||||
bool_t mmc_lld_is_card_inserted(MMCDriver *mmcp) {
|
||||
(void)mmcp;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool_t mmc_lld_is_write_protected(MMCDriver *mmcp) {
|
||||
(void)mmcp;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Board-specific initialization code.
|
||||
*/
|
||||
void boardInit(void) {
|
||||
|
||||
}
|
||||
|
196
boards/base/Olimex-STM32-LCD/chibios_board/board.h
Normal file
196
boards/base/Olimex-STM32-LCD/chibios_board/board.h
Normal file
@ -0,0 +1,196 @@
|
||||
/*
|
||||
ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio
|
||||
|
||||
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 Olimex STM32-LCD proto board.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Board identifier.
|
||||
*/
|
||||
#define BOARD_OLIMEX_STM32_LCD
|
||||
#define BOARD_NAME "Olimex STM32-LCD"
|
||||
|
||||
/*
|
||||
* Board frequencies.
|
||||
*/
|
||||
#define STM32_LSECLK 32768
|
||||
#define STM32_HSECLK 8000000
|
||||
|
||||
/*
|
||||
* MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h.
|
||||
*/
|
||||
#define STM32F10X_HD
|
||||
|
||||
/*
|
||||
* IO pins assignments.
|
||||
*/
|
||||
#define GPIOA_SPI1NSS 4
|
||||
|
||||
#define GPIOB_SPI2NSS 12
|
||||
|
||||
#define GPIOA_USB_P 0
|
||||
#define GPIOD_USB_DISC 2
|
||||
|
||||
#define GPIOE_TFT_RST 2
|
||||
#define GPIOD_TFT_LIGHT 13
|
||||
#define GPIOC_TFT_YD 0
|
||||
#define GPIOC_TFT_YU 1
|
||||
#define GPIOC_TFT_XL 2
|
||||
#define GPIOC_TFT_XR 3
|
||||
|
||||
/*
|
||||
* I/O ports initial setup, this configuration is established soon after reset
|
||||
* in the initialization code.
|
||||
*
|
||||
* The digits have the following meaning:
|
||||
* 0 - Analog input.
|
||||
* 1 - Push Pull output 10MHz.
|
||||
* 2 - Push Pull output 2MHz.
|
||||
* 3 - Push Pull output 50MHz.
|
||||
* 4 - Digital input.
|
||||
* 5 - Open Drain output 10MHz.
|
||||
* 6 - Open Drain output 2MHz.
|
||||
* 7 - Open Drain output 50MHz.
|
||||
* 8 - Digital input with PullUp or PullDown resistor depending on ODR.
|
||||
* 9 - Alternate Push Pull output 10MHz.
|
||||
* A - Alternate Push Pull output 2MHz.
|
||||
* B - Alternate Push Pull output 50MHz.
|
||||
* C - Reserved.
|
||||
* D - Alternate Open Drain output 10MHz.
|
||||
* E - Alternate Open Drain output 2MHz.
|
||||
* F - Alternate Open Drain output 50MHz.
|
||||
* Please refer to the STM32 Reference Manual for details.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Port A setup.
|
||||
* Everything input with pull-up except:
|
||||
* PA0 - Normal input (USB P).
|
||||
* PA2 - Alternate output (USART2 TX).
|
||||
* PA3 - Normal input (USART2 RX).
|
||||
* PA11 - Normal input (USB DM).
|
||||
* PA12 - Normal input (USB DP).
|
||||
*/
|
||||
#define VAL_GPIOACRL 0x88884B84 /* PA7...PA0 */
|
||||
#define VAL_GPIOACRH 0x88844888 /* PA15...PA8 */
|
||||
#define VAL_GPIOAODR 0xFFFFFFFF
|
||||
|
||||
/*
|
||||
* Port B setup.
|
||||
* Everything input with pull-up except:
|
||||
*/
|
||||
#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */
|
||||
#define VAL_GPIOBCRH 0x88888888 /* PB15...PB8 */
|
||||
#define VAL_GPIOBODR 0xFFFFFFFF
|
||||
|
||||
/*
|
||||
* Port C setup.
|
||||
* Everything input with pull-up except:
|
||||
* PC0 - Analog Input (TP_YD).
|
||||
* PC1 - Analog Input (TP_YU).
|
||||
* PC2 - Analog Input (TP_XL).
|
||||
* PC3 - Analog Input (TP_XR).
|
||||
* PC8 - Alternate PP 50M (SD_D0).
|
||||
* PC9 - Alternate PP 50M (SD_D1).
|
||||
* PC10 - Alternate PP 50M (SD_D2).
|
||||
* PC11 - Alternate PP 50M (SD_D3).
|
||||
* PC12 - Alternate PP 50M (SD_CLK).
|
||||
* PC14 - Normal input (XTAL).
|
||||
* PC15 - Normal input (XTAL).
|
||||
*/
|
||||
#define VAL_GPIOCCRL 0x88880000 /* PC7...PC0 */
|
||||
#define VAL_GPIOCCRH 0x448BBBBB /* PC15...PC8 */
|
||||
#define VAL_GPIOCODR 0xFFFFFFFF
|
||||
|
||||
/*
|
||||
* Port D setup.
|
||||
* Everything input with pull-up except:
|
||||
* PD2 - Alternate PP 50M (SD_CMD)
|
||||
* PD0 - Alternate PP 50M (FSMC_D2)
|
||||
* PD1 - Alternate PP 50M (FSMC_D3)
|
||||
* PD4 - Alternate PP 50M (TFT_RD)
|
||||
* PD5 - Alternate PP 50M (TFT_WR)
|
||||
* PD7 - Alternate PP 50M (TFT_CS)
|
||||
* PD8 - Alternate PP 50M (FSMC_D13)
|
||||
* PD9 - Alternate PP 50M (FSMC_D14)
|
||||
* PD10 - Alternate PP 50M (FSMC_D15)
|
||||
* PD14 - Alternate PP 50M (FSMC_D0)
|
||||
* PD15 - Alternate PP 50M (FSMC_D1)
|
||||
*/
|
||||
#define VAL_GPIODCRL 0xBBBB8BBB /* PD7...PD0 */
|
||||
#define VAL_GPIODCRH 0xBB388BBB /* PD15...PD8 */
|
||||
#define VAL_GPIODODR 0xFFFFFFFF
|
||||
|
||||
/*
|
||||
* Port E setup.
|
||||
* Everything input with pull-up except:
|
||||
* PE2 - Digital Output (TFT_RST)
|
||||
* PE3 - Alternate PP 50M (TFT_RS)
|
||||
* PE7 - Alternate PP 50M (FSMC_D4)
|
||||
* PE8 - Alternate PP 50M (FSMC_D5)
|
||||
* PE9 - Alternate PP 50M (FSMC_D6)
|
||||
* PE10 - Alternate PP 50M (FSMC_D7)
|
||||
* PE11 - Alternate PP 50M (FSMC_D8)
|
||||
* PE12 - Alternate PP 50M (FSMC_D9)
|
||||
* PE13 - Alternate PP 50M (FSMC_D10)
|
||||
* PE14 - Alternate PP 50M (FSMC_D11)
|
||||
* PE15 - Alternate PP 50M (FSMC_D12)
|
||||
*/
|
||||
#define VAL_GPIOECRL 0xB888B388 /* PE7...PE0 */
|
||||
#define VAL_GPIOECRH 0xBBBBBBBB /* PE15...PE8 */
|
||||
#define VAL_GPIOEODR 0xFFFFFFFF
|
||||
|
||||
/*
|
||||
* Port F setup.
|
||||
* Everything input with pull-up expect:
|
||||
*/
|
||||
#define VAL_GPIOFCRL 0x88888888 /* PF7...PF0 */
|
||||
#define VAL_GPIOFCRH 0x88888888 /* PF15...PF8 */
|
||||
#define VAL_GPIOFODR 0xFFFFFFFF
|
||||
|
||||
/*
|
||||
* Port G setup.
|
||||
* Everything input with pull-up expect:
|
||||
*/
|
||||
#define VAL_GPIOGCRL 0x88888888 /* PG7...PG0 */
|
||||
#define VAL_GPIOGCRH 0x88888888 /* PG15...PG8 */
|
||||
#define VAL_GPIOGODR 0xFFFFFFFF
|
||||
|
||||
/*
|
||||
* USB bus activation macro, required by the USB driver.
|
||||
*/
|
||||
#define usb_lld_connect_bus(usbp) palClearPad(GPIOD, GPIOD_USB_DISC)
|
||||
|
||||
/*
|
||||
* USB bus de-activation macro, required by the USB driver.
|
||||
*/
|
||||
#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOD, GPIOD_USB_DISC)
|
||||
|
||||
#if !defined(_FROM_ASM_)
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
void boardInit(void);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* _FROM_ASM_ */
|
||||
|
||||
#endif /* _BOARD_H_ */
|
5
boards/base/Olimex-STM32-LCD/chibios_board/board.mk
Normal file
5
boards/base/Olimex-STM32-LCD/chibios_board/board.mk
Normal file
@ -0,0 +1,5 @@
|
||||
# List of all the board related files.
|
||||
BOARDSRC = ${CHIBIOS}/boards/OLIMEX_STM32_LCD/board.c
|
||||
|
||||
# Required include directories
|
||||
BOARDINC = ${CHIBIOS}/boards/OLIMEX_STM32_LCD
|
@ -5,16 +5,6 @@
|
||||
* http://ugfx.org/license.html
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file drivers/ginput/touch/MCU/ginput_lld_mouse_board_olimex_stm32_lcd.h
|
||||
* @brief GINPUT Touch low level driver source for the MCU on the example board.
|
||||
*
|
||||
* @defgroup Mouse Mouse
|
||||
* @ingroup GINPUT
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
|
||||
#ifndef _GINPUT_LLD_MOUSE_BOARD_H
|
||||
#define _GINPUT_LLD_MOUSE_BOARD_H
|
||||
|
||||
@ -45,21 +35,10 @@ static const ADCConversionGroup adc_x_config = {
|
||||
ADC_SQR3_SQ2_N(ADC_CHANNEL_IN10) | ADC_SQR3_SQ1_N(ADC_CHANNEL_IN11)
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Initialise the board for the touch.
|
||||
*
|
||||
* @notapi
|
||||
*/
|
||||
static inline void init_board(void) {
|
||||
adcStart(&ADCD1, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Check whether the surface is currently touched
|
||||
* @return TRUE if the surface is currently touched
|
||||
*
|
||||
* @notapi
|
||||
*/
|
||||
static inline bool_t getpin_pressed(void) {
|
||||
palSetPadMode(GPIOC, 0, PAL_MODE_INPUT_PULLDOWN);
|
||||
palSetPadMode(GPIOC, 1, PAL_MODE_INPUT);
|
||||
@ -70,30 +49,14 @@ static inline bool_t getpin_pressed(void) {
|
||||
return palReadPad(GPIOC, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Aquire the bus ready for readings
|
||||
*
|
||||
* @notapi
|
||||
*/
|
||||
static inline void aquire_bus(void) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Release the bus after readings
|
||||
*
|
||||
* @notapi
|
||||
*/
|
||||
static inline void release_bus(void) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Read an x value from touch controller
|
||||
* @return The value read from the controller
|
||||
*
|
||||
* @notapi
|
||||
*/
|
||||
static inline uint16_t read_x_value(void) {
|
||||
uint16_t val1, val2;
|
||||
adcsample_t samples[ADC_NUM_CHANNELS * ADC_BUF_DEPTH];
|
||||
@ -118,12 +81,6 @@ static inline uint16_t read_x_value(void) {
|
||||
return ((val1+((1<<12)-val2))/4);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Read an y value from touch controller
|
||||
* @return The value read from the controller
|
||||
*
|
||||
* @notapi
|
||||
*/
|
||||
static inline uint16_t read_y_value(void) {
|
||||
uint16_t val1, val2;
|
||||
adcsample_t samples[ADC_NUM_CHANNELS * ADC_BUF_DEPTH];
|
||||
@ -149,4 +106,4 @@ static inline uint16_t read_y_value(void) {
|
||||
}
|
||||
|
||||
#endif /* _GINPUT_LLD_MOUSE_BOARD_H */
|
||||
/** @} */
|
||||
|
22
boards/base/Olimex-STM32-LCD/ginput_lld_mouse_config.h
Normal file
22
boards/base/Olimex-STM32-LCD/ginput_lld_mouse_config.h
Normal file
@ -0,0 +1,22 @@
|
||||
/*
|
||||
* This file is subject to the terms of the GFX License. If a copy of
|
||||
* the license was not distributed with this file, you can obtain one at:
|
||||
*
|
||||
* http://ugfx.org/license.html
|
||||
*/
|
||||
|
||||
#ifndef _LLD_GINPUT_MOUSE_CONFIG_H
|
||||
#define _LLD_GINPUT_MOUSE_CONFIG_H
|
||||
|
||||
#define GINPUT_MOUSE_EVENT_TYPE GEVENT_TOUCH
|
||||
#define GINPUT_MOUSE_NEED_CALIBRATION TRUE
|
||||
#define GINPUT_MOUSE_LLD_CALIBRATION_LOADSAVE FALSE
|
||||
#define GINPUT_MOUSE_MAX_CALIBRATION_ERROR 12
|
||||
#define GINPUT_MOUSE_READ_CYCLES 4
|
||||
#define GINPUT_MOUSE_POLL_PERIOD 25
|
||||
#define GINPUT_MOUSE_MAX_CLICK_JITTER 2
|
||||
#define GINPUT_MOUSE_MAX_MOVE_JITTER 2
|
||||
#define GINPUT_MOUSE_CLICK_TIME 500
|
||||
|
||||
#endif /* _LLD_GINPUT_MOUSE_CONFIG_H */
|
||||
|
6
boards/base/Olimex-STM32-LCD/readme.txt
Normal file
6
boards/base/Olimex-STM32-LCD/readme.txt
Normal file
@ -0,0 +1,6 @@
|
||||
This directory contains the interface for the Olimex-STM32-LCD board
|
||||
running ChibiOS/RT.
|
||||
|
||||
As this is not a standard ChibiOS/RT supported board, the necessary board files have
|
||||
also been provided in the chibios_board directory
|
||||
|
Loading…
Reference in New Issue
Block a user