Board support package for Radioddity DM-1801
This commit is contained in:
parent
7b9e3eaff2
commit
18709607b3
30
meson.build
30
meson.build
|
|
@ -222,6 +222,16 @@ gd77_inc = inc + mk22fn512_inc + ['platform/targets/GD77']
|
|||
gd77_def = def + mk22fn512_def + {'PLATFORM_GD77': ''}
|
||||
|
||||
|
||||
## Baofeng DM-1801
|
||||
dm1801_src = src + mk22fn512_src + ['platform/targets/DM-1801/platform.c',
|
||||
'platform/drivers/display/UC1701_GD77.c',
|
||||
'platform/drivers/keyboard/keyboard_GD77.c',
|
||||
'platform/drivers/baseband/rtx_GDx.c']
|
||||
|
||||
dm1801_inc = inc + mk22fn512_inc + ['platform/targets/DM-1801']
|
||||
dm1801_def = def + mk22fn512_def + {'PLATFORM_DM1801': ''}
|
||||
|
||||
|
||||
##
|
||||
## Compilation defines
|
||||
##
|
||||
|
|
@ -278,6 +288,14 @@ foreach k, v : gd77_def
|
|||
endif
|
||||
endforeach
|
||||
|
||||
dm1801_args = []
|
||||
foreach k, v : dm1801_def
|
||||
if v == ''
|
||||
dm1801_args += '-D@0@'.format(k)
|
||||
else
|
||||
dm1801_args += '-D@0@=@1@'.format(k, v)
|
||||
endif
|
||||
endforeach
|
||||
|
||||
linux_opts = {'sources': linux_src,
|
||||
'c_args': linux_c_args,
|
||||
|
|
@ -309,6 +327,12 @@ gd77_opts = {'sources': gd77_src,
|
|||
'-Wl,--print-memory-usage'],
|
||||
'include_directories':gd77_inc}
|
||||
|
||||
dm1801_opts = {'sources': dm1801_src,
|
||||
'c_args': dm1801_args,
|
||||
'link_args' : ['-Wl,-T../platform/mcu/MK22FN512xxx12/linker_script.ld',
|
||||
'-Wl,--print-memory-usage'],
|
||||
'include_directories':dm1801_inc}
|
||||
|
||||
##
|
||||
## Targets
|
||||
##
|
||||
|
|
@ -341,6 +365,12 @@ targets = [
|
|||
'flashable': true,
|
||||
'wrap': 'UV3X0',
|
||||
'load_addr': '0x0800C000'},
|
||||
|
||||
{'name': 'dm1801',
|
||||
'opts': dm1801_opts,
|
||||
'flashable': true,
|
||||
'wrap': 'UV3X0',
|
||||
'load_addr': '0x0800C000'},
|
||||
]
|
||||
|
||||
objcopy = find_program('objcopy', required:false, disabler:true)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,65 @@
|
|||
/***************************************************************************
|
||||
* Copyright (C) 2020 by Federico Amedeo Izzo IU2NUO, *
|
||||
* Niccolò Izzo IU2KIN *
|
||||
* Frederik Saraci IU2NRO *
|
||||
* Silvano Seva IU2KWO *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 3 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, see <http://www.gnu.org/licenses/> *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef HWCONFIG_H
|
||||
#define HWCONFIG_H
|
||||
|
||||
#include "MK22F51212.h"
|
||||
|
||||
/* Screen dimensions */
|
||||
#define SCREEN_WIDTH 128
|
||||
#define SCREEN_HEIGHT 64
|
||||
|
||||
/* Screen pixel format */
|
||||
#define PIX_FMT_BW
|
||||
|
||||
/* Battery type */
|
||||
#define BAT_LIPO_2S
|
||||
|
||||
/* Display */
|
||||
#define LCD_BKLIGHT GPIOC,4
|
||||
#define LCD_CS GPIOC,8
|
||||
#define LCD_RST GPIOC,9
|
||||
#define LCD_RS GPIOC,10
|
||||
#define LCD_CLK GPIOC,11
|
||||
#define LCD_DAT GPIOC,12
|
||||
|
||||
/* Signalling LEDs */
|
||||
#define GREEN_LED GPIOA,17
|
||||
#define RED_LED GPIOC,14
|
||||
|
||||
/* Keyboard */
|
||||
#define KB_ROW0 GPIOB,19
|
||||
#define KB_ROW1 GPIOB,20
|
||||
#define KB_ROW2 GPIOB,21
|
||||
#define KB_ROW3 GPIOB,22
|
||||
#define KB_ROW4 GPIOB,23
|
||||
|
||||
#define KB_COL0 GPIOC,0
|
||||
#define KB_COL1 GPIOC,1
|
||||
#define KB_COL2 GPIOC,2
|
||||
#define KB_COL3 GPIOC,3
|
||||
|
||||
#define PTT_SW GPIOA,1
|
||||
#define FUNC_SW GPIOA,2
|
||||
#define FUNC2_SW GPIOB,1
|
||||
#define MONI_SW GPIOB,9
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,131 @@
|
|||
/***************************************************************************
|
||||
* Copyright (C) 2020 by Federico Amedeo Izzo IU2NUO, *
|
||||
* Niccolò Izzo IU2KIN *
|
||||
* Frederik Saraci IU2NRO *
|
||||
* Silvano Seva IU2KWO *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 3 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, see <http://www.gnu.org/licenses/> *
|
||||
***************************************************************************/
|
||||
|
||||
#include <platform.h>
|
||||
#include <gpio.h>
|
||||
#include "hwconfig.h"
|
||||
|
||||
void platform_init()
|
||||
{
|
||||
/* Configure GPIOs */
|
||||
gpio_setMode(GREEN_LED, OUTPUT);
|
||||
gpio_setMode(RED_LED, OUTPUT);
|
||||
|
||||
gpio_setMode(LCD_BKLIGHT, OUTPUT);
|
||||
gpio_clearPin(LCD_BKLIGHT);
|
||||
|
||||
gpio_setMode(PTT_SW, INPUT);
|
||||
}
|
||||
|
||||
void platform_terminate()
|
||||
{
|
||||
gpio_clearPin(LCD_BKLIGHT);
|
||||
gpio_clearPin(RED_LED);
|
||||
gpio_clearPin(GREEN_LED);
|
||||
}
|
||||
|
||||
float platform_getVbat()
|
||||
{
|
||||
/* TODO */
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
float platform_getMicLevel()
|
||||
{
|
||||
/* TODO */
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
float platform_getVolumeLevel()
|
||||
{
|
||||
/* TODO */
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
uint8_t platform_getChSelector()
|
||||
{
|
||||
/* GD77 does not have a channel selector */
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool platform_getPttStatus()
|
||||
{
|
||||
/* PTT line has a pullup resistor with PTT switch closing to ground */
|
||||
return (gpio_readPin(PTT_SW) == 0) ? true : false;
|
||||
}
|
||||
|
||||
void platform_ledOn(led_t led)
|
||||
{
|
||||
switch(led)
|
||||
{
|
||||
case GREEN:
|
||||
gpio_setPin(GREEN_LED);
|
||||
break;
|
||||
|
||||
case RED:
|
||||
gpio_setPin(RED_LED);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void platform_ledOff(led_t led)
|
||||
{
|
||||
switch(led)
|
||||
{
|
||||
case GREEN:
|
||||
gpio_clearPin(GREEN_LED);
|
||||
break;
|
||||
|
||||
case RED:
|
||||
gpio_clearPin(RED_LED);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void platform_beepStart(uint16_t freq)
|
||||
{
|
||||
/* TODO */
|
||||
|
||||
(void) freq;
|
||||
}
|
||||
|
||||
void platform_beepStop()
|
||||
{
|
||||
/* TODO */
|
||||
}
|
||||
|
||||
void platform_setBacklightLevel(uint8_t level)
|
||||
{
|
||||
/* TODO: backlight dimming */
|
||||
if(level > 1)
|
||||
{
|
||||
gpio_setPin(LCD_BKLIGHT);
|
||||
}
|
||||
else
|
||||
{
|
||||
gpio_clearPin(LCD_BKLIGHT);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue