Пипеееец, что надо было доступ к папке изменить?
В свойства убрал галочку с только чтение и файлы появились.
Отредактировано priradio585 (2023-04-29 23:47:04)
USMI |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » USMI » MCU, SoC, CPU Микроконтроллеры » Вопросы по работе с JL SDK. Настройка, конфигурирование....
Пипеееец, что надо было доступ к папке изменить?
В свойства убрал галочку с только чтение и файлы появились.
Отредактировано priradio585 (2023-04-29 23:47:04)
Нет, проблема с сдк. Точнее почему то ADC нормально не считает, и не соответствует своим местам.
By Admin
В свойства убрал галочку с только чтение и файлы появились.
У меня все появилось когда сделал MAKE в проэкте.
By Admin
И такое кажется во всех SDK, я все пробовал.
Да просто скомпилировал, через кнопку ребилд.
Тут прикол, почему то через portr смещается значение резисторов, 0 ом получается третий сверху...
By Admin
Короче, тупо для rtcvdd используется своя таблица с сопротивлениями. Ша постараюсь ак для VDDIO
By Admin
Тут прикол, почему то через portr смещается значение резисторов, 0 ом получается третий сверху...
Становится ADC10_27 ?
С внешним резистором работает как положенно, поставил внешний 10 к. Погоди, цас раскопаю в сем дело..
By Admin
Ааааа, там тупо нет под внутренний резистор команд, написали только две)
Ща.
By Admin
47 и 20 кОм)))?
IC_ADC это под внутренний резистор получается?
Отредактировано priradio585 (2023-04-30 01:21:58)
Короче, под внутренний резистор было просто три команды. Почему
0 ом получается третий сверху...
Потому что всего три ADC уровня.
Вот было вот так
#if KEY_AD_RTCVDD_EN
#define FULL_ADC 0x3ffL
#if EXTERN_R_UP
#define R_UP EXTERN_R_UP //外部上拉
#define IC_R_UP 0 //用芯片内部上拉10K,用外部上拉时设置为0
#else
#define IC_R_UP 100 //用芯片内部上拉10K,用外部上拉时设置为0
#endif#define ADC10_33(x) (x)
#define ADC10_30(x) (x*2200L/(2200 + R_UP)) //220K
#define ADC10_27(x) (x*1000L/(1000 + R_UP)) //100K
#define ADC10_23(x) (x*510L /(510 + R_UP)) //51K
#define ADC10_20(x) (x*330L /(330 + R_UP)) //33K
#define ADC10_17(x) (x*240L /(240 + R_UP)) //24K
#define ADC10_13(x) (x*150L /(150 + R_UP)) //15K
#define ADC10_10(x) (x*91L /(91 + R_UP)) //9.1K
#define ADC10_07(x) (x*62L /(62 + R_UP)) //6.2K
#define ADC10_04(x) (x*30L /(30 + R_UP)) //3K
#define ADC10_00(x) (0)#define AD_NOKEY(x) ((ADC10_33(x) + ADC10_30(x))/2)
#define ADKEY1_0(x) ((ADC10_30(x) + ADC10_27(x))/2)
#define ADKEY1_1(x) ((ADC10_27(x) + ADC10_23(x))/2)
#define ADKEY1_2(x) ((ADC10_23(x) + ADC10_20(x))/2)
#define ADKEY1_3(x) ((ADC10_20(x) + ADC10_17(x))/2)
#define ADKEY1_4(x) ((ADC10_17(x) + ADC10_13(x))/2)
#define ADKEY1_5(x) ((ADC10_13(x) + ADC10_10(x))/2)
#define ADKEY1_6(x) ((ADC10_10(x) + ADC10_07(x))/2)
#define ADKEY1_7(x) ((ADC10_07(x) + ADC10_04(x))/2)
#define ADKEY1_8(x) ((ADC10_04(x) + ADC10_00(x))/2)#define IC_ADC10_33(x) (x)
#define IC_ADC10_20(x) (x*470L/(470 + IC_R_UP)) //47K
#define IC_ADC10_10(x) (x*200L/(200 + IC_R_UP)) //20K
#define IC_ADC10_00(x) (0)#define IC_AD_NOKEY(x) ((IC_ADC10_33(x) + IC_ADC10_20(x))/2)
#define IC_ADKEY1_0(x) ((IC_ADC10_20(x) + IC_ADC10_10(x))/2)
#define IC_ADKEY1_1(x) ((IC_ADC10_10(x) + IC_ADC10_00(x))/2)u16 ad_rtcvdd_key_table[] = {
#if IC_R_UP
IC_ADKEY1_0(FULL_ADC), IC_ADKEY1_1(FULL_ADC)
#else
ADKEY1_0(FULL_ADC), ADKEY1_1(FULL_ADC), ADKEY1_2(FULL_ADC), ADKEY1_3(FULL_ADC), ADKEY1_4(FULL_ADC),
ADKEY1_5(FULL_ADC), ADKEY1_6(FULL_ADC), ADKEY1_7(FULL_ADC), ADKEY1_8(FULL_ADC)
#endif
};volatile u8 adkey_lock_cnt = 0;
static u8 rtcvdd_cnt = 10;
static u8 rtcvdd_full_cnt = 0xff;
u16 rtcvdd_full_value = FULL_ADC;
u16 max_value = 0;
u16 min_value = 0xffff;
u32 total_value = 0;
static u8 check_rtcvdd_cnt = 0;static void set_rtcvdd_table(u16 adc_rtcvdd)
{
u16 rtcvdd;
rtcvdd = adc_rtcvdd;
#if IC_R_UP
ad_rtcvdd_key_table[0] = IC_ADKEY1_0(rtcvdd);
ad_rtcvdd_key_table[1] = IC_ADKEY1_1(rtcvdd);
#else
ad_rtcvdd_key_table[0] = ADKEY1_0(rtcvdd);
ad_rtcvdd_key_table[1] = ADKEY1_1(rtcvdd);
ad_rtcvdd_key_table[2] = ADKEY1_2(rtcvdd);
ad_rtcvdd_key_table[3] = ADKEY1_3(rtcvdd);
ad_rtcvdd_key_table[4] = ADKEY1_4(rtcvdd);
ad_rtcvdd_key_table[5] = ADKEY1_5(rtcvdd);
ad_rtcvdd_key_table[6] = ADKEY1_6(rtcvdd);
ad_rtcvdd_key_table[7] = ADKEY1_7(rtcvdd);
ad_rtcvdd_key_table[8] = ADKEY1_8(rtcvdd);
#endif
А стало,
#if KEY_AD_RTCVDD_EN
#define FULL_ADC 0x3ffL
#if EXTERN_R_UP
#define R_UP EXTERN_R_UP //外部上拉
#define IC_R_UP 0 //用芯片内部上拉10K,用外部上拉时设置为0
#else
#define IC_R_UP 100 //用芯片内部上拉10K,用外部上拉时设置为0
#endif#define ADC10_33(x) (x)
#define ADC10_30(x) (x*2200L/(2200 + R_UP)) //220K
#define ADC10_27(x) (x*1000L/(1000 + R_UP)) //100K
#define ADC10_23(x) (x*510L /(510 + R_UP)) //51K
#define ADC10_20(x) (x*330L /(330 + R_UP)) //33K
#define ADC10_17(x) (x*240L /(240 + R_UP)) //24K
#define ADC10_13(x) (x*150L /(150 + R_UP)) //15K
#define ADC10_10(x) (x*91L /(91 + R_UP)) //9.1K
#define ADC10_07(x) (x*62L /(62 + R_UP)) //6.2K
#define ADC10_04(x) (x*30L /(30 + R_UP)) //3K
#define ADC10_00(x) (0)#define AD_NOKEY(x) ((ADC10_33(x) + ADC10_30(x))/2)
#define ADKEY1_0(x) ((ADC10_30(x) + ADC10_27(x))/2)
#define ADKEY1_1(x) ((ADC10_27(x) + ADC10_23(x))/2)
#define ADKEY1_2(x) ((ADC10_23(x) + ADC10_20(x))/2)
#define ADKEY1_3(x) ((ADC10_20(x) + ADC10_17(x))/2)
#define ADKEY1_4(x) ((ADC10_17(x) + ADC10_13(x))/2)
#define ADKEY1_5(x) ((ADC10_13(x) + ADC10_10(x))/2)
#define ADKEY1_6(x) ((ADC10_10(x) + ADC10_07(x))/2)
#define ADKEY1_7(x) ((ADC10_07(x) + ADC10_04(x))/2)
#define ADKEY1_8(x) ((ADC10_04(x) + ADC10_00(x))/2)#define IC_ADC10_33(x) (x)
#define IC_ADC10_30(x) (x*2200L/(2200 + IC_R_UP)) //220K
#define IC_ADC10_27(x) (x*1000L/(1000 + IC_R_UP)) //100K
#define IC_ADC10_23(x) (x*510L /(510 + IC_R_UP)) //51K
#define IC_ADC10_20(x) (x*330L /(330 + IC_R_UP)) //33K
#define IC_ADC10_17(x) (x*240L /(240 + IC_R_UP)) //24K
#define IC_ADC10_13(x) (x*150L /(150 + IC_R_UP)) //15K
#define IC_ADC10_10(x) (x*91L /(91 + IC_R_UP)) //9.1K
#define IC_ADC10_07(x) (x*62L /(62 + IC_R_UP)) //6.2K
#define IC_ADC10_04(x) (x*30L /(30 + IC_R_UP)) //3K
#define IC_ADC10_00(x) (0)#define IC_AD_NOKEY(x) ((IC_ADC10_33(x) + IC_ADC10_30(x))/2)
#define IC_ADKEY1_0(x) ((IC_ADC10_30(x) + IC_ADC10_27(x))/2)
#define IC_ADKEY1_1(x) ((IC_ADC10_27(x) + IC_ADC10_23(x))/2)
#define IC_ADKEY1_2(x) ((IC_ADC10_23(x) + IC_ADC10_20(x))/2)
#define IC_ADKEY1_3(x) ((IC_ADC10_20(x) + IC_ADC10_17(x))/2)
#define IC_ADKEY1_4(x) ((IC_ADC10_17(x) + IC_ADC10_13(x))/2)
#define IC_ADKEY1_5(x) ((IC_ADC10_13(x) + IC_ADC10_10(x))/2)
#define IC_ADKEY1_6(x) ((IC_ADC10_10(x) + IC_ADC10_07(x))/2)
#define IC_ADKEY1_7(x) ((IC_ADC10_07(x) + IC_ADC10_04(x))/2)
#define IC_ADKEY1_8(x) ((IC_ADC10_04(x) + IC_ADC10_00(x))/2)u16 ad_rtcvdd_key_table[] = {
#if IC_R_UP
IC_ADKEY1_0(FULL_ADC), IC_ADKEY1_1(FULL_ADC), IC_ADKEY1_2(FULL_ADC), IC_ADKEY1_3(FULL_ADC),
IC_ADKEY1_4(FULL_ADC), IC_ADKEY1_5(FULL_ADC), IC_ADKEY1_6(FULL_ADC), IC_ADKEY1_7(FULL_ADC), IC_ADKEY1_8(FULL_ADC)
#else
ADKEY1_0(FULL_ADC), ADKEY1_1(FULL_ADC), ADKEY1_2(FULL_ADC), ADKEY1_3(FULL_ADC), ADKEY1_4(FULL_ADC),
ADKEY1_5(FULL_ADC), ADKEY1_6(FULL_ADC), ADKEY1_7(FULL_ADC), ADKEY1_8(FULL_ADC)
#endif
};volatile u8 adkey_lock_cnt = 0;
static u8 rtcvdd_cnt = 10;
static u8 rtcvdd_full_cnt = 0xff;
u16 rtcvdd_full_value = FULL_ADC;
u16 max_value = 0;
u16 min_value = 0xffff;
u32 total_value = 0;
static u8 check_rtcvdd_cnt = 0;static void set_rtcvdd_table(u16 adc_rtcvdd)
{
u16 rtcvdd;
rtcvdd = adc_rtcvdd;
#if IC_R_UP
ad_rtcvdd_key_table[0] = IC_ADKEY1_0(rtcvdd);
ad_rtcvdd_key_table[1] = IC_ADKEY1_1(rtcvdd);
ad_rtcvdd_key_table[2] = IC_ADKEY1_2(rtcvdd);
ad_rtcvdd_key_table[3] = IC_ADKEY1_3(rtcvdd);
ad_rtcvdd_key_table[4] = IC_ADKEY1_4(rtcvdd);
ad_rtcvdd_key_table[5] = IC_ADKEY1_5(rtcvdd);
ad_rtcvdd_key_table[6] = IC_ADKEY1_6(rtcvdd);
ad_rtcvdd_key_table[7] = IC_ADKEY1_7(rtcvdd);
ad_rtcvdd_key_table[8] = IC_ADKEY1_8(rtcvdd);
#else
ad_rtcvdd_key_table[0] = ADKEY1_0(rtcvdd);
ad_rtcvdd_key_table[1] = ADKEY1_1(rtcvdd);
ad_rtcvdd_key_table[2] = ADKEY1_2(rtcvdd);
ad_rtcvdd_key_table[3] = ADKEY1_3(rtcvdd);
ad_rtcvdd_key_table[4] = ADKEY1_4(rtcvdd);
ad_rtcvdd_key_table[5] = ADKEY1_5(rtcvdd);
ad_rtcvdd_key_table[6] = ADKEY1_6(rtcvdd);
ad_rtcvdd_key_table[7] = ADKEY1_7(rtcvdd);
ad_rtcvdd_key_table[8] = ADKEY1_8(rtcvdd);
#endif
Проверил - работает, тут две отдельных таблицы с ADC уровнями для внешнего резистора RTCVDD и внутреннего для RTCVDD.
Для внешнего - обычные верхние номиналы ADKEY точно как для VDDIO , и нижняя таблица для внутреннего резистора для RTCVDD - IC_ADKEY.
Просто замени и все должно заработать, я проверил номиналы - работает.
Вот для ориентировки в TASK номиналы
By Admin
47 и 20 кОм)))?
IC_ADC это под внутренний резистор получается?
Ага, чекай сообщение выше, там нужно добавить не только дефайны.
By Admin
Ага, чекай сообщение выше, там нужно добавить не только дефайны.
Хорошо, сейчас попробую.
Вот так вот и доделывай после китайцев)
Нужно обязательно добавить в чендж лог)
Я веду его, по мере дописывания и доделывания сдк, + тесты...
У меня свой сдк, 2.6.4 назвал, там много чего пофиксил, много добавил, разные дисплеи и тд)
Вот кусок моего кфг(не совместим с ориг сдк)
/*** SDK Descripton *************************************************************
* SDK Project : NEW SDK
* SDK Ver & Patch : AC692x_SDK_V2.6.4
* MODIFY DATE & TIME : 02:56 30/03/2023 BY BIOS (mail.scmc.tech@gmail.com)
* SDK INFO : sdk_description.txt
* Notice : CHEK UPDATES.TXT
*********************************************************************************/
#ifndef _CONFIG_
#define _CONFIG_
#include "includes.h"
#include "sdk_const_define.h"
#include "bluetooth/bluetooth_api.h" ///可选配置:0(普通音箱)/BT_TWS_TRANSMIT(对箱使能)/*** UART & DEBUG ***************************************************************/
///#define __DEBUG
#ifdef __DEBUG
///#define DEBUG_UART_SEL UART0_TXPA5_RXPA6
///#define DEBUG_UART_SEL UART0_TXPB5_RXPA0
///#define DEBUG_UART_SEL UART0_TXPC2_RXPC3
///#define DEBUG_UART_SEL UART0_TXPA7_RXPA8
///#define DEBUG_UART_SEL UART1_TXPB0_RXPB1
///#define DEBUG_UART_SEL UART1_TXPC0_RXPC1
///#define DEBUG_UART_SEL UART1_TXPA1_RXPA2
///#define DEBUG_UART_SEL UART1_USB_TXDP_RXDM
///#define DEBUG_UART_SEL UART2_TXPA3_RXPA4
///#define DEBUG_UART_SEL UART2_TXPA9_RXPA10
///#define DEBUG_UART_SEL UART2_TXPB2_RXPB3
#define DEBUG_UART_SEL UART2_TXPC4_RXPC5
#define DEBUG_UART_RATE 115200 //115200
#define log_printf printf
#else
#define log_printf(...)
#endif
#define EQ_UART_DEBUG 0//EQ 串口在线调试使能
#define EQ_DEBUG_UART_SEL UART1_TXPB0_RXPB1 //EQ_UART_DEBUG 为1时有效//在线调EQ 串口选则.可选:UART1_TXPB0_RXPB1 / UART1_USB_TXDP_RXDM
#define EQ_DEBUG_UART_RATE 9600//<变速变调
#define UART_UPDATA_EN 0
/********************************************************************************//*** POWER CFG ******************************************************************/
#define SYS_LVD_EN 0 /// SET LVL IN POWER.C
#define POWER_EXTERN_DETECT_EN 0 /// External voltage and electricity detection, generally used for cigarette lighter to collect vehicle battery voltage
#define PWR_MODE_SELECT PWR_LDO15 ///PWR_NO_CHANGE / PWR_LDO15 / PWR_DCDC15
#define AUTO_SHUT_DOWN_TIME 0 ///((3*60* 2)/2+10) //Divide by 2 and subtract the time to enter low power consumption. ///Bluetooth automatic shutdown timing without connection, u16 type, 0 means no automatic shutdown
#define KEY_DOUBLE_CLICK 0 ///<Button double-click function
#define SWITCH_PWR_CONFIG 0 ///<电池电量低,是否切换电源输出配置
#define SYS_VDDIO_LEVEL 0 ///vddio:0(3.4v),1(3.2v),2(3.0v),3(2.8v),4(2.6v),5(2.4v),6(2.2v),7(2.0v)
#define SYS_RTCVDD_LEVEL 0
#define SYS_LDO_REDUCE_LEVEL 1
///#define FM_LDO_REDUCE_LEVEL 2
#define LOW_POWER_NOISE_DEAL 0 ///Noise floor processing at low power, this problem exists in the package where VDDIO and HPVDD are tied together
/********************************************************************************//*** CONTROLL *******************************************************************/
#define KEY_AD_RTCVDD_EN 1 ///<采用RTCVDD电源的AD按键使能/*按键类型定义*/
#define KEY_AD_VDDIO_EN 0 ///<采用VDDIO电源的AD按键使能
#define KEY_IO_EN 0 ///<IO按键使能
#define KEY_IR_EN 1 ///<红外遥控使能,PA9
#define KEY_TCH_EN 0 ///<触摸按键使能
#define KEY_UART_EN 0 ///<串口按键使能
#define KEY_ENCODER_EN 0 ///<旋转编码器使能
/********************************************************************************//*** SD USB *************************** DAT_CMD_CLK) ***************************/
#define SDMMC0_IO_A_EN 0//CHIP:PA5_PA6_PA7 FPGA:PO5_PO6_PO7
#define SDMMC0_IO_B_EN 0//CHIP:PB3_PB4_PB5 FPGA:PP3_PP4_PP5
#define SDMMC1_IO_A_EN 0//CHIP:PC3_PC4_PC5 FPGA:PQ3_PQ4_PQ5
#define SDMMC1_IO_B_EN 0//CHIP:PB0_PB1_PB2 FPGA:PP0_PP1_PP2
#define USB_DISK_EN 1
#define USB_PC_EN 0
#define POWERUP_DEV_IGNORE 1//0= POWER UP AND CONNECT TO PC OR SD CARD PLAY 1 - JUST POWER UP
#define DEV_POWER_OFF_EN 0//不使用设备的任务是否需要关闭设备,开启要考虑设备兼容性
#define USB_SD0_MULT_EN 0//<需要测试兼容性//usb_sd引脚复用,需要测试兼容性
#define USB_SD1_MULT_EN 0//<需要测试兼容性
#define ADKEY_SD_MULT_EN 0//0 不复用 1 复用sd0 2 复用sd1//adkey 和 sd 复用,需要测试兼容性,注意:ADKEY分压较低的电阻值不能用,会对SD卡造成影响,请确保分压大于1.8V以上
/********************************************************************************//*** UI *************************************************************************/
#define LED_EN 1///<LED指示使能
#define UI_ENABLE 0
#if (UI_ENABLE == 1)
#define UI_SEL_BY_RES_EN 0
#define LED_7_EN 0
#define LED_1888_EN 0
#define LCD_128X64_EN 1
#else
#define LED_7_EN 0
#define LED_1888_EN 0
#define LCD_128X64_EN 0
#endif
/********************************************************************************//**** SELECT LCD_128X64 TYPE ****************************************************/
#if (LCD_128X64_EN == 1)
#define LCD_ST7565_EN 0 ///ST7565 IC
#define OLED_SH1106_EN 0 ///SH1106 IC
#define OLED_SSD1306_EN 0 ///SSD1306 IC
#define OLED_SSD1309_EN 0 ///SSD1309 IC
#else
#define LCD_ST7565_EN 0
#define OLED_SH1106_EN 0
#define OLED_SSD1306_EN 0
#define OLED_SSD1309_EN 0
#endif
/********************************************************************************//*** DISLLAY_SET *****************************************************************************/
#if (LCD_128X64_EN == 1)
#define LCD_USE_BACKLIGHT 1 ///LCD BACKLIGHT
#define DISPLAY_MIRROR_X 0
#define DISPLAY_MIRROR_Y 0
#define DISPLAY_INVERSE 0 /// Inverse color
#define LRC_LYRICS_EN 0 ///LRC歌词显示
#else
#define LCD_USE_BACKLIGHT 0
#define DISPLAY_MIRROR_X 0
#define DISPLAY_MIRROR_Y 0
#define DISPLAY_INVERSE 0
#define LRC_LYRICS_EN 0
#endif
/********************************************************************************//*** CPU CLK ********************************************************************/
#define OSC_Hz 24000000L //fpga:12M / chip:24M//时钟配置 //more config in clock_interface.h
#define BT_CALL_Hz 160000000L //phone call clock
#define BT_REC_Hz 192000000L //bt rec clock
#if (EQ_RUN_SEL == EQ_RUN_SW || SPEED_PITCH_EN || ECHO_EN ) //Software EQ need Run 192M
#define MUSIC_DECODE_Hz 192000000L
#define SYS_Hz 192000000L //120000000L//96000000L
#else
#define MUSIC_DECODE_Hz 192000000L
#if BT_TWS
#define SYS_Hz 192000000L
#else
#define SYS_Hz 192000000L
#endif
#endif
/********************************************************************************/
Я в него вынес и выбор кнопок, и добавил разных дисплеев, и сразу норм конфиги выбора 1 из 4 пар портов сд карты, и всякие отражения , реверсы для дисплеев)\
Вообще не только конфиг правил, а многое, например дОделал SPI2 контроллер, а то в сдк его тупо не реализовали, сделал выбор пары SPI для дисплея) 3 провода и 5 провода и тд)
By Admin
Вот так вот и доделывай после китайцев)
Нужно обязательно добавить в чендж лог)
Я веду его, по мере дописывания и доделывания сдк, + тесты...
У меня свой сдк, 2.6.4 назвал, там много чего пофиксил, много добавил, разные дисплеи и тд)
Вот кусок моего кфг(не совместим с ориг сдк)Я в него вынес и выбор кнопок, и добавил разных дисплеев, и сразу норм конфиги выбора 1 из 4 пар портов сд карты, и всякие отражения , реверсы для дисплеев)\
Вообще не только конфиг правил, а многое, например дОделал SPI2 контроллер, а то в сдк его тупо не реализовали, сделал выбор пары SPI для дисплея) 3 провода и 5 провода и тд)
Круто, что бы по всему СДК не лазить, удобно.
Ну что проверил?
By Admin
Я теперь порт включить не могу, вроде выбрал, прошиваю и ноль, не реагирует не на что.
Сейчас разберусь, так как я включал, и уменя было так что перепутаны были кнопки именно две, наверно из за таблицы.
А с портом сейчас разберусь))) наверное.
Спасибо тебе большое, который раз помог.
Отредактировано priradio585 (2023-04-30 02:44:41)
Скачай тот сдк что мне скинул, и просто поправь код для RTCVDD из моего примера, у тебя в таск файле для музыки - 0 ом - плей пауза. Только что так сделал - работает.
By Admin
Спасибо тебе большое, который раз помог.
Пожалуйста, самому интересно, я сам учусь работать с этим) . Вообще сначала не понятно, а мотом как поймешь).
By Admin
Вы здесь » USMI » MCU, SoC, CPU Микроконтроллеры » Вопросы по работе с JL SDK. Настройка, конфигурирование....