Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/platforms.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
| BL602/LF686 | Bouffalo Lab | ✅ | ✅ | ✅⁴ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
| W800/W801 | Winner Micro | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ |
| W600/W601 | Winner Micro | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ |
| LN882H | Lightning Semi | ✅ | ✅ | ✅⁴ | ✅ | | ✅ | ❗️ | ❌ | ✅ | ✅ | ✅ |
| LN882H | Lightning Semi | ✅ | ✅ | ✅⁴ | ✅ | | ✅ | | ❌ | ✅ | ✅ | ✅ |
| ESP8266<br>ESP8285 | Espressif | ✅ | ⚠️¹³ | ✅²'⁴ | ✅ | ✅ | ✅⁷ | ❌ | ❗️ | ❓⁹ | ❌ | ❌ |
| ESP32<br>-C2<br>-C3<br>-C5<br>-C6<br>-C61<br>-S2<br>-S3 | Espressif | ✅ | ⚠️¹³ | ✅⁴ | ✅ | ✅ | ✅ | ❓ | ✅¹⁰ | ✅ | ✅ | ❌ |
| TR6260 | Transa Semi | ✅ | ❌ | ❗️³'⁴ | ✅ | ❌ | ✅⁸ | ❌ | ❌ | ✅⁹ | ❌ | ❌ |
Expand All @@ -25,7 +25,7 @@
| ECR6600 | ESWIN | ✅ | ✅ | ✅ | ✅ | ✅ | ✅⁸ | ❗️ | ❗️¹¹ | ✅ | ❌ | ❌ |
| TXW81X | Taixin | ✅ | ❌ | ❗️ | ❓ | ❌ | ❌ | ❌ | ❌ | ❓ | ❌ | ❌ |
| RDA5981 | RDA | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ➖ | ❌ |
| LN8825B | Lightning Semi | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | | ❌ | ✅ | ❌ | ❓ |
| LN8825B | Lightning Semi | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | | ❌ | ✅ | ❌ | ❓ |


✅ - Works<br>
Expand Down
1 change: 0 additions & 1 deletion platforms/LN8825/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ set(PROJ_ALL_SRC
${OBKM_SRC_CXX}
${BERRY_SRC_C}
${PRO_DIR}/main.c
${PRO_DIR}/usr_app.c
${PRO_DIR}/bsp/serial_hw.c
${PRO_DIR}/bsp/drv_adc_measure.c
${PRO_DIR}/startup/startup_ln882x_gcc.c
Expand Down
2 changes: 1 addition & 1 deletion platforms/LN882H/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ set(PROJ_ALL_SRC
${OBK_SRCS}hal/ln882h/hal_pins_ln882h.c
${OBK_SRCS}hal/ln882h/hal_wifi_ln882h.c
${OBK_SRCS}hal/ln882h/hal_ota_ln882h.c
${OBK_SRCS}hal/ln882h/hal_uart_ln882h.c
main.c
usr_app.c
bsp/serial_hw.c
startup/startup_${CHIP_SERIAL}_gcc.c
${MODULE_SRC}
Expand Down
2 changes: 1 addition & 1 deletion sdk/OpenTR6260
Submodule OpenTR6260 updated 1 files
+1 −1 drivers/hal_pwm.c
5 changes: 5 additions & 0 deletions src/hal/generic/hal_generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,8 @@ void __attribute__((weak)) HAL_Run_WDT()
{

}

void __attribute__((weak)) HAL_RegisterPlatformSpecificCommands()
{

}
1 change: 1 addition & 0 deletions src/hal/hal_generic.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ void HAL_RebootModule();
void HAL_Delay_us(int delay);
void HAL_Configure_WDT();
void HAL_Run_WDT();
void HAL_RegisterPlatformSpecificCommands();
176 changes: 151 additions & 25 deletions src/hal/ln882h/hal_adc_ln882h.c
Original file line number Diff line number Diff line change
@@ -1,35 +1,161 @@
#ifdef PLATFORM_LN882H
//#include "../hal_adc.h"
#include "hal_pinmap_ln882h.h"

#if PLATFORM_LN882H

#include "../hal_adc.h"
#include "hal/hal_adc.h"

void HAL_ADC_Init(int pinNumber) {
adc_init_t_def adc_init;

memset(&adc_init, 0, sizeof(adc_init_t_def));
adc_init.adc_ch = ADC_CH0;
adc_init.adc_conv_mode = ADC_CONV_MODE_CONTINUE;
adc_init.adc_presc = 0xFF;
hal_adc_init(ADC_BASE, &adc_init);

hal_adc_en(ADC_BASE, HAL_ENABLE);

hal_adc_start_conv(ADC_BASE);
void HAL_ADC_Init(int pinNumber)
{
adc_init_t_def adc_init = { 0 };

adc_init.adc_ch = ADC_CH0;
adc_init.adc_conv_mode = ADC_CONV_MODE_CONTINUE;
adc_init.adc_presc = 0xFF;
if(pinNumber != 0xFF)
{
adc_init.adc_ov_smp_ratio = ADC_OVER_SAMPLING_RATIO_X8;
adc_init.adc_ov_smp_ratio_en = ADC_OVER_SAMPLING_EN_STATUS_BIT0;
}
switch(pinNumber)
{
case 0:
adc_init.adc_ch = ADC_CH2;
hal_gpio_pin_mode_set(GPIOA_BASE, GPIO_PIN_0, GPIO_MODE_ANALOG);
break;
case 1:
adc_init.adc_ch = ADC_CH3;
hal_gpio_pin_mode_set(GPIOA_BASE, GPIO_PIN_1, GPIO_MODE_ANALOG);
break;
case 4:
adc_init.adc_ch = ADC_CH4;
hal_gpio_pin_mode_set(GPIOA_BASE, GPIO_PIN_4, GPIO_MODE_ANALOG);
break;
case 19:
adc_init.adc_ch = ADC_CH5;
hal_gpio_pin_mode_set(GPIOB_BASE, GPIO_PIN_3, GPIO_MODE_ANALOG);
break;
case 20:
adc_init.adc_ch = ADC_CH6;
hal_gpio_pin_mode_set(GPIOB_BASE, GPIO_PIN_4, GPIO_MODE_ANALOG);
break;
case 21:
adc_init.adc_ch = ADC_CH7;
hal_gpio_pin_mode_set(GPIOB_BASE, GPIO_PIN_5, GPIO_MODE_ANALOG);
break;
case 0xFF: break;
default: return;
}
hal_adc_init(ADC_BASE, &adc_init);

hal_adc_en(ADC_BASE, HAL_ENABLE);
}

int HAL_ADC_Read(int pinNumber) {
adc_ch_t ch = ADC_CH0;
uint16_t read_adc = 0;

while(hal_adc_get_conv_status(ADC_BASE, ch) == 0);

read_adc = hal_adc_get_data(ADC_BASE, ch);

hal_adc_clr_conv_status(ADC_BASE,ch);

return read_adc;
int HAL_ADC_Read(int pinNumber)
{
adc_ch_t ch;
switch(pinNumber)
{
case 0: ch = ADC_CH2; break;
case 1: ch = ADC_CH3; break;
case 4: ch = ADC_CH4; break;
case 19: ch = ADC_CH5; break;
case 20: ch = ADC_CH6; break;
case 21: ch = ADC_CH7; break;
case 0xFF: ch = ADC_CH0; break;
default: return 0;
}
uint16_t read_adc = 0;

hal_adc_start_conv(ADC_BASE);

while(hal_adc_get_conv_status(ADC_BASE, ch) == 0);

read_adc = hal_adc_get_data(ADC_BASE, ch);

hal_adc_clr_conv_status(ADC_BASE, ch);

return read_adc;
}

void HAL_ADC_Deinit(int pinNumber)
{
switch(pinNumber)
{
case 0:
hal_gpio_pin_mode_set(GPIOA_BASE, GPIO_PIN_0, GPIO_MODE_DIGITAL);
break;
case 1:
hal_gpio_pin_mode_set(GPIOA_BASE, GPIO_PIN_1, GPIO_MODE_DIGITAL);
break;
case 4:
hal_gpio_pin_mode_set(GPIOA_BASE, GPIO_PIN_4, GPIO_MODE_DIGITAL);
break;
case 19:
hal_gpio_pin_mode_set(GPIOB_BASE, GPIO_PIN_3, GPIO_MODE_DIGITAL);
break;
case 20:
hal_gpio_pin_mode_set(GPIOB_BASE, GPIO_PIN_4, GPIO_MODE_DIGITAL);
break;
case 21:
hal_gpio_pin_mode_set(GPIOB_BASE, GPIO_PIN_5, GPIO_MODE_DIGITAL);
break;
default: return;
}
}

#endif // PLATFORM_LN882H

#if PLATFORM_LN8825

#include "hal/hal_adc.h"

void OBK_HAL_ADC_Init(int pinNumber)
{
// adc is already initialized for temp sensor
//ADC_InitTypeDef adc_init_struct;
//adc_init_struct.ADC_Autoff = FENABLE;
//adc_init_struct.ADC_ContinuousConvMode = FDISABLE;
//adc_init_struct.ADC_DataAlign = ADC_DataAlign_Right;
//adc_init_struct.ADC_WaitMode = FDISABLE;
//HAL_ADC_Init(ADC, &adc_init_struct);
//HAL_ADC_PrescCfg(ADC, 42);
HAL_SYSCON_GPIO_Digital_Analog_Select(pinNumber, GPIO_ANALOG_MOD);
}

int HAL_ADC_Read(int pinNumber)
{
adc_chan_t ch;
switch(pinNumber)
{
case 0: ch = EXTL_ADC_CHAN_0; break;
case 1: ch = EXTL_ADC_CHAN_1; break;
case 4: ch = EXTL_ADC_CHAN_2; break;
case 19: ch = EXTL_ADC_CHAN_3; break;
case 20: ch = EXTL_ADC_CHAN_4; break;
case 21: ch = EXTL_ADC_CHAN_5; break;
default: return 0;
}
uint16_t read_adc = 0;

HAL_ADC_SeqChanSelect_Cfg(ADC, ch);
HAL_ADC_Cmd(ADC, FENABLE);
HAL_ADC_SoftwareStartConvCmd(ADC);
for(volatile uint32_t t = 0; t < 40 * 3; t++)
{
__NOP();
}

read_adc = HAL_ADC_GetConversionValue(ADC, ch);
HAL_ADC_StopConvCmd(ADC);
HAL_ADC_Cmd(ADC, FDISABLE);

return read_adc;
}

void HAL_ADC_Deinit(int pinNumber)
{
HAL_SYSCON_GPIO_Digital_Analog_Select(pinNumber, GPIO_DIGITAL_MOD);
}

#endif
31 changes: 31 additions & 0 deletions src/hal/ln882h/hal_generic_ln882h.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,35 @@ void HAL_Delay_us(int delay)
ln_block_delayus(delay);
}

#if PLATFORM_LN882H

#include "../../cmnds/cmd_public.h"

extern int g_urx_pin;
extern int g_utx_pin;

static commandResult_t CMD_SetUARTPins(const void* context, const char* cmd, const char* args, int cmdFlags)
{
Tokenizer_TokenizeString(args, 0);

int rxpin = Tokenizer_GetPin(0, -1);
int txpin = Tokenizer_GetPin(1, -1);
if(rxpin == -1 || txpin == -1)
return CMD_RES_BAD_ARGUMENT;
g_urx_pin = rxpin;
g_utx_pin = txpin;
return CMD_RES_OK;
}

void HAL_RegisterPlatformSpecificCommands()
{
//cmddetail:{"name":"alias","args":"[rx pin][tx pin]",
//cmddetail:"descr":"Set UART pins",
//cmddetail:"fn":"CMD_SetUARTPins","file":"hal/ln882h/hal_generic_ln882h.c","requires":"",
//cmddetail:"examples":""}
CMD_RegisterCommand("SetUARTPins", CMD_SetUARTPins, NULL);
}

#endif

#endif // PLATFORM_LN882H
Loading