USMI

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » USMI » MCU, SoC, CPU Микроконтроллеры » JL SoC. 杰理芯片


JL SoC. 杰理芯片

Сообщений 1461 страница 1480 из 1559

1461

gtech написал(а):

HEllo any advise how to connect the JL updater 4.1 to the AC6969A to reprogram the audio ?
I tried to connect the updater to the pin 11 and 12 ( dm, dp) to the tx rx of the updater but it does not connect to the pc.
thanks in advance

U need use USB - to - USB. DM to DM,  DP to DP. And power to VBAT.
Just solder USB and install updater, push button on updater.
https://forumupload.ru/uploads/001b/ca/8a/2/t121866.jpg
https://forumupload.ru/uploads/001b/ca/8a/2/t730079.jpg
https://forumupload.ru/uploads/001b/ca/8a/2/t754591.jpg

Подпись автора

By Admin

1462

BIOS написал(а):

U need use USB - to - USB. DM to DM, DP to DP. And power to VBAT.
Just solder USB and install updater, push button on updater.

thanks for the answer!

1463

can anyone help me with this?

Код:
#include "system/includes.h"

extern u32 UPDATA_BEG;
u32 g_updata_flag = 0;

const char log_tag_const_i_HEAP_MEM __attribute__((section(".LOG_TAG_CONST"))) = (0 & 0);
const char log_tag_const_d_HEAP_MEM __attribute__((section(".LOG_TAG_CONST"))) = (1 & 0);
const char log_tag_const_e_HEAP_MEM __attribute__((section(".LOG_TAG_CONST"))) = (1 & 0);
const char log_tag_const_d_SYS_TMR __attribute__((section(".LOG_TAG_CONST"))) = (0 & 0);
const char log_tag_const_e_SYS_TMR __attribute__((section(".LOG_TAG_CONST"))) = (1 & 0);
const char log_tag_const_i_VM __attribute__((section(".LOG_TAG_CONST"))) = (1 & 0);
const char log_tag_const_i_TMR __attribute__((section(".LOG_TAG_CONST"))) = (0 & 0);
const char log_tag_const_i_LRC __attribute__((section(".LOG_TAG_CONST"))) = (0 & 0);
const char log_tag_const_i_CLOCK __attribute__((section(".LOG_TAG_CONST"))) = (0 & 0);
const char log_tag_const_i_PMU __attribute__((section(".LOG_TAG_CONST"))) = (1 & 0);
const char log_tag_const_d_PMU __attribute__((section(".LOG_TAG_CONST"))) = (0 & 0);
const char log_tag_const_i_LP_TIMER __attribute__((section(".LOG_TAG_CONST"))) = (0 & 0);


const int SDFILE_VFS_REDUCE_ENABLE = 0;
const int VIRFAT_FLASH_ENABLE = 0;

const int config_printf_time = 1;
const int config_asser = 0;
const int vm_max_size_config = 64*1024;
const int clock_sys_src_use_lrc_hw = 0;
const int config_update_mode = (1UL << (0)) | (1UL << (1)) | (1UL << (2)) | (1UL << (3));
const int support_vm_data_keep = 0;

typedef enum {
    UPDATA_NON = (0x5A00),
    UPDATA_READY,
    UPDATA_SUCC,
    UPDATA_PARM_ERR,
    UPDATA_DEV_ERR,
    UPDATA_KEY_ERR,
} UPDATA_RESULT;

u8 is_pwm_led_on(void) {
    return (((JL_PLED_TypeDef *)(0x1e0000 + ((64 * 0x52 + 0x00) * 4)))->CON0 & (1UL << (0)));
}

void app_bank_init() {}

const struct btif_item btif_table[] = {
    {102, 6 },
    {110, 6 },
    {0, 0 },
};

typedef struct _UPDATA_PARM {
    u16 parm_crc;
    u16 parm_type;
    u16 parm_result;
    u16 magic;
    u8 file_patch[32];
    u8 parm_priv[32];
    u32 ota_addr;
    u16 ext_arg_len;
    u16 ext_arg_crc;
} UPDATA_PARM;

u16 update_result_get(void) {
    u16 ret = UPDATA_NON;

    if (!(config_update_mode == 0)) {
        UPDATA_PARM *p = ((void *)((u32)&UPDATA_BEG + 0x08));
        u16 crc_cal;
        crc_cal = CRC16(((u8 *)p) + 2, sizeof(UPDATA_PARM) - 2);
        if (crc_cal && crc_cal == p->parm_crc) {
            ret = p->parm_result;
        }
        g_updata_flag = ret;
        g_updata_flag |= ((u32)(p->magic)) << 16;

        memset(p, 0x00, sizeof(UPDATA_PARM));
    }

    return ret;
}

const struct task_info task_info_table[] = {
    {"app_core", 1, 896, 768 },
    {"sys_event", 6, 256, 0 },
    {"btctrler", 4, 512, 384 },
    {"btencry", 1, 512, 128 },
    {"btstack", 3, 384, 256 },
    {"audio_dec", 3, 768 + 32, 128 },
    {"audio_enc", 3, 512, 128 },
    {"aec", 2, 768, 0 },
    {"aec_dbg", 3, 128, 128 },
    {"update", 1, 512, 0 },
    {"systimer", 6, 128, 0 },
    {"dev_mg", 3, 512, 512 },
    {"usb_msd", 1, 512, 128 },
    {"usb_audio", 5, 256, 256 },
    {"plnk_dbg", 5, 256, 256 },
    {"adc_linein", 2, 768, 128 },
    {"fm_task", 3, 512, 128 },
    {"enc_write", 1, 768, 0 },
    {"ui", 3, 384 - 64, 128 },
    {"mic_stream", 5, 768, 128 },
    {0, 0},
};

int file_comm_long_name_fix(u8 *str, u16 len) {
    u8 *src = str;
    while (len > 1) {
        if ((*str == 0xff) && (*(str + 1) == 0xff)) {
            break;
        }

        if ((*str == 0x0) && (*(str + 1) == 0x0)) {
            break;
        }

        str += 2;
        len -= 2;
    }
    *str = 0x00;
    *(str + 1) = 0x00;
    return (int)(str - src);
}

#define LED_BUILTIN IO_PORTC_05
#define MUTE_PIN IO_PORTA_03  // debug
#define KEY_PIN IO_PORTA_04  // adc

#define PORTC_BASE 0x01E5080
#define PORTC_DATA_REG   (*(volatile unsigned int *)(PORTC_BASE + 0x0))

void (*os_start_ptr)() = 0x117d68;
void (*os_init_ptr)() = 0x117d64;

#define OUTPUT 0
#define HIGH 1
#define LOW 0

extern tick_timer_init();

static void app_task_handler(void *p) {
    gpio_direction_output(LED_BUILTIN, OUTPUT);
    
    while (1) {
        PORTC_DATA_REG |= (1 << 5); // IO_PORTC_05
        os_time_dly(100);
        PORTC_DATA_REG &= ~(1 << 5); // IO_PORTC_05
        os_time_dly(100);
    }
}

BaseType_t xTaskCreate(
    TaskFunction_t pxTaskCode,        // Pointer to the task function
    const char * const pcName,        // A descriptive name for the task (useful for debugging)
    uint16_t usStackDepth,            // Stack size for the task (in words, not bytes)
    void *pvParameters,               // Parameters to pass to the task (if any)
    UBaseType_t uxPriority,           // Task priority (higher number means higher priority)
    TaskHandle_t *pxCreatedTask       // Pointer to a TaskHandle_t variable to receive the task handle
);

int main() {
    os_init_ptr();

    memory_init();
    clk_early_init(SYS_CLOCK_INPUT_PLL_BT_OSC, 24000000, 24000000);
    tick_timer_init();
    
    xTaskCreate(app_task_handler, "LED Task", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY + 1, NULL);

    os_start_ptr();

    while (1) asm("idle");

    return 0;
}

im trying to build a simple blinky led using pure baremetal c with jieli toolchain, i just want to see what is the minimum code it can run, this is the minimum as i can get.
but i really want to figure out how to set up the clock baremetal without using clk_early_init(SYS_CLOCK_INPUT_PLL_BT_OSC, 24000000, 24000000);

1464

i am using BR25 ac696n_soundbox_sdk_v1.2.2 sdk on my AC6965A board

1465

hello

1466

Мене звати Ghaith, я з Сирії. Я випадково знайшов тебе в інтернеті, і мені приємно з тобою познайомитися!

1467

Мені потрібна твоя допомога щодо мікроконтролера AC6965E4 від компанії Jieli. Я хочу дізнатися, як його програмувати та де можна отримати SDK для нього. Зараз у мене є JL Updater v4.1, але мені потрібна додаткова інформація про середовище розробки та необхідні інструменти.

Чи можеш ти мені допомогти з цим? Якщо у тебе є якісь ресурси чи файли, які можуть бути корисними, я буду дуже вдячний.

Заздалегідь дякую! Чекаю на твою відповідь.

1468

Hello again, I was able to connect the chip AC6969A and change the broacasting name, to change the paring sound the files are in WTG, any idea how to convert them from mp3 to that? thanks

1469

gtech написал(а):

Hello again, I was able to connect the chip AC6969A and change the broacasting name, the chip is a:
  ** BR25 (AC636N/AC696N/AC608N series) **
  Loader protocol: V2
  >> Chip key: 0xB50F <<
  - USB buffer size: 32768 bytes
  - Online device:
     ID: 0x854412
     Type: 0x03 (SPI NOR flash on SPI0)
  - Another Device ID: 0x00008544
any idea of the chip key?
how can I convert the mp3 sound to WTG?
thanks again for the help

1470

Не знаю в какую тему лучше запостить. Оказывается у JieLi есть приложение для андроида. Вот ссылка. Взял  с одного форума, где описывается работа с AC6951, но предположу что оно подойдет для любой AC69XX.

1471

ghaith написал(а):

AC6965E4 від компанії Jieli. Я хочу дізнатися, як його програмувати та де можна отримати SDK для нього

Смотрите самое первое сообщение на первой странице этой темы. Там есть ссылка на скачивание SDK для AC696x.

1472

hi.
Has anyone tried to make a speaker Clock with jieli chips?

1473

hi.
Has anyone tried to make a speaker Clock with jieli chips?

1474

gtech написал(а):

gtech wrote:
Hello again, I was able to connect the chip AC6969A and change the broacasting name, the chip is a:
  ** BR25 (AC636N/AC696N/AC608N series) **
  Loader protocol: V2
  >> Chip key: 0xB50F <<
  - USB buffer size: 32768 bytes
  - Online device:
     ID: 0x854412
     Type: 0x03 (SPI NOR flash on SPI0)
  - Another Device ID: 0x00008544
any idea of ​​the chip key?
how can I convert the mp3 sound to WTG?
thanks again for the help

I also spent a lot of time converting MP3 to WTG, but later I realized that there is no need to use the WTG format to add audio and you can also use the MP3 format. In the settings section of the software that creates the bin file, select the option to not change the format.

1475

Amin написал(а):

I also spent a lot of time converting MP3 to WTG, but later I realized that there is no need to use the WTG format to add audio and you can also use the MP3 format. In the settings section of the software that creates the bin file, select the option to not change the format.

thanks for the answer! any help on how to get the key?

1476

By the looks of it you seem to have a 2 Mbit (= 256 KB) flash in your chip (well I don't think they ever put something other than that), so it's probably going to be tough to cram much into such little space, especially the sound prompts..
In any case, if you were using the "AC696x_config_tool" or similar which uses LuaConfig and stuff, then as far as I know it does automatically convert the files into wtg without much involvement, at least it worked for me.

Regarding the key situation, at the moment you can generate the '.key' file from your chip key using the 'keyfgen.py' script from 'jl-misctools'.

Отредактировано kagaimiq (2025-02-20 04:11:58)

Подпись автора

水Mizu-DEC JLtech since 22.06.2019

1477

kagaimiq написал(а):

By the looks of it you seem to have a 2 Mbit (= 256 KB) flash in your chip (well I don't think they ever put something other than that), so it's probably going to be tough to cram much into such little space, especially the sound prompts..
In any case, if you were using the "AC696x_config_tool" or similar which uses LuaConfig and stuff, then as far as I know it does automatically convert the files into wtg without much involvement, at least it worked for me.

Regarding the key situation, at the moment you can generate the '.key' file from your chip key using the 'keyfgen.py' script from 'jl-misctools'.

Edited by kagaimiq (2025-02-20 03:11:58)

thanks for the info, My understanding is that tool generates random keys for new chip, but not for already used chips. how can I find the key for a used chip BR25?

1478

No, you're getting it wrong. What this tool does is it generates a key file with the chip key that you have specified, e.g. if you specify "0xB50F" (as seen in the uboot-tool log you've provided), then it will make a key file that carries the 0xB50F chip key, which can be used with your particular chip by passing the generated file into isd_download using the `-key` parameter.

Подпись автора

水Mizu-DEC JLtech since 22.06.2019

1479

Hi, Ive done alot of reading here, great work.  I purchase modules from amazon that work well for my application, I would like to add and change a few things to them.
The chip is an AC6955F4.  Id like to change the ssid name, have an input to mute, and an output that a device is connected or better that a song is playing.  Im pretty sure
mute is possible, but havent found the latter.

1480

forgot to mention i do have the JL programmer


Вы здесь » USMI » MCU, SoC, CPU Микроконтроллеры » JL SoC. 杰理芯片