USMI

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

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


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


JL SoC. 杰理芯片

Сообщений 1121 страница 1140 из 1317

1121

Доброго времени, может есть у вас даташит на вот эту микросхемку AC23BPOH940-25D4 производителя JL  ?

1122

AC6925D

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

By Admin

1123

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

AC6925D

Благодарю.  Значит я по адресу зашёл и в ветке инфу можн для моего случая использовать..?
Собственно стоит задача достать прошивку из чипа, определить где там голосовой ассистент записан и изменить громкость семпла или зпменить своим,  попутно может получится порог ниже 10% звука  добавить ( с 10% сразу в 0 скидывает). А до кучи может и с перемоткой по треку флешки получится разобраться- вырубает звук и вообще аппарат после нескольких секунд перемотки..

1124

Имеются ещё две платы с чипом AC1745AP16431-5A8 
и AS19AP1P957-25F4  у них даташит такойже как и у первого который выше спрашивал , или отличается?  Собственно в всех чипах свои не дочеты в прошивке и есть идея попытаться собрать из трех одну.   Интересно, получится такое или для каждой  микросхемы своя прошивка требуется? В программировании я  не очень силен но присутствует сильное желание поправить  косяки в очень удобном аппарате с  хорошим , насыщенным звуком..

1125

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

Thank you. So I went to the right address and in the thread you can use the information for my case..?
Actually, the task is to get the firmware from the chip, determine where the voice assistant is recorded and change the volume of the sample or replace it with your own; at the same time, you may be able to add a threshold below 10% of the sound (from 10% it immediately drops to 0). And maybe you can figure it out by rewinding the flash drive along the track - the sound and the device in general turns off after a few seconds of rewinding..

These two are different.
AC6925F
AC6905A

1126

а внешнюю флешку под программу использовать можно? 25q64 какую-нибудь.

1127

Как я понял только под ресурсы, картинки, звуки, оно у них через SFC используется, (я на 695 запускал) а что бы чисто под программу - как я понял - только те чипы где есть порты PORTD().

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

By Admin

1128

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

а внешнюю флешку под программу использовать можно? 25q64 какую-нибудь.

Можно, если было бы куда подключать. А у чипов с этип проблемы, т.к. SFC вне PORTD был полностью выведен только в/до AC690N, а в последующих сериях некоторые выжные сигналы (CS, CLK и пр.) всё равно на PORTD находятся.
У AC695N можно наверное через PSRAM контроллер подключить, чтобы её также вывести в память проца (0x0800000-0x0FFFFFF), только это ни разу не штатная ситуация, и бутром оттуда грузить ничего не будет - надо будет в основной флеши держать код для перехода в другую флешь.

Отредактировано kagaimiq (2024-02-09 18:19:43)

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

水Mizu-DEC JLtech since 22.06.2019

1129

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

Благодарю.  Значит я по адресу зашёл и в ветке инфу можн для моего случая использовать..?
Собственно стоит задача достать прошивку из чипа, определить где там голосовой ассистент записан и изменить громкость семпла или зпменить своим,  попутно может получится порог ниже 10% звука  добавить ( с 10% сразу в 0 скидывает). А до кучи может и с перемоткой по треку флешки получится разобраться- вырубает звук и вообще аппарат после нескольких секунд перемотки..

Да вполне.

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

By Admin

1130

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

Имеются ещё две платы с чипом AC1745AP16431-5A8 
и AS19AP1P957-25F4  у них даташит такойже как и у первого который выше спрашивал , или отличается?  Собственно в всех чипах свои не дочеты в прошивке и есть идея попытаться собрать из трех одну.   Интересно, получится такое или для каждой  микросхемы своя прошивка требуется? В программировании я  не очень силен но присутствует сильное желание поправить  косяки в очень удобном аппарате с  хорошим , насыщенным звуком..

Отличаются, вообщем уже написали что за чипы.. Но тоже можно.

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

By Admin

1131

https://forumupload.ru/uploads/001b/ca/8a/87/t20983.jpg
Hi!
What number this chip?
Does it go to boot mode?

1132

As far as I can tell, this is either AC2092(E) or AC3092(E) - which one exactly is hard to say as they have virtually identical pinouts. These are ancient 8051-based chips with an OTP program memory. They don't have any "boot modes" because there's simply no point for that, they are programmed in batches via ISP, and well they're certainly not designed to be somehow reprogrammed by an end user.

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

水Mizu-DEC JLtech since 22.06.2019

1133

how can i use uart function on ac6905 to transmit the number that other person called

1134

Приветствую всех. Попалась музыка флак, на АС6925А + SDK_release_V2.6.3 не играет, посмотрел дебаг, дошел до format_check и FORMAT_OK_BUT_NO_SUPPORT и дальше след потерялся.
Кто-нибудь этим занимался?

1135

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

how can i use uart function on ac6905 to transmit the number that other person called

I haven't tried it, but you can display the number in the UART. In 690 I did not see the PBAP protocol.

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

By Admin

1136

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

Приветствую всех. Попалась музыка флак, на АС6925А + SDK_release_V2.6.3 не играет, посмотрел дебаг, дошел до format_check и FORMAT_OK_BUT_NO_SUPPORT и дальше след потерялся.
Кто-нибудь этим занимался?

Я сталкивался, или частота или разрядность выше допустимого, максимум 16 бит/44100Гц, все что выше - не работает.

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

By Admin

1137

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

Я сталкивался, или частота или разрядность выше допустимого, максимум 16 бит/44100Гц, все что выше - не работает.

Да, так и есть.

1138

Hi

Where from i get the song name and time in JLAC692 SDK.  I searched on the code but i dint get it. Is there any structure for that ? Anybody  could help me ?

1139

Hi. Its here
https://forumupload.ru/uploads/001b/ca/8a/2/t69562.png
About time, what you mean?

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

By Admin

1140

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

Hi. It's here About time, what do you mean?

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

Hi. It's here About time, what do you mean?

Thank You for your help.
Time means duration.

I have got another issue.

I have interface 16x2 lcd display (Hitachi’s HD44780) with this JLAC692 dev kit.

I added the c files and header files for this display to the SDK source code. ( The source code for LCD written by myself using bit bang)

I called the print function on the lcd.c file that i added from my main function

My main function is called by below method,

LOOP_DETECT_REGISTER(delay_1s ) =
{
    .time = 100,
    .fun  = main_function,
};

Now the LCD display is working. But when i play sounds through Bluetooth/usb/fm the sound get clipped. I thing it would be the timing issue on the OS.

My question is anyway to update my LCD data without affecting the playback functionality ?

Anybody could please help me ?

..................................................................................................................................................................
My main function is given below
..................................................................................................................................................................

void main_function()
{
  u8 IR_data = 0xff;
// LED_INIT_EN();
//  puts("\nWELCOME............MPZME...............................\n");

  LCD_clear_home();
  LCD_goto(1, 0);
  LCD_putstr("mpzzzzz");

  printf("0x%X",(u8)ir_code.wData);
  if ((u8)ir_code.wData == 0x6)
  {
      task_post_msg(NULL, 1, MSG_VOL_UP);
      ir_code.wData = 0xFF;
  }

}

..................................................................................................................................................................

My lcd.c file is given below
..................................................................................................................................................................

void LCD_init(void)
{

// delay(1632350); // 10ms

      LCD_RS_EN();
      LCD_EN_EN();
      LCD_DB4_EN();
      LCD_DB5_EN();
      LCD_DB6_EN();
      LCD_DB7_EN();

      LCD_RS_HIGH;
      LCD_EN_HIGH;
      LCD_DB4_HIGH;
      LCD_DB5_HIGH;
      LCD_DB6_HIGH;
      LCD_DB7_HIGH;

// delay(1632350); // 100ms

toggle_EN_pin();

LCD_RS_LOW;

LCD_DB7_LOW;
LCD_DB6_LOW;
LCD_DB5_HIGH;
LCD_DB4_HIGH;

toggle_EN_pin();

LCD_DB7_LOW;
LCD_DB6_LOW;
LCD_DB5_HIGH;
LCD_DB4_HIGH;

toggle_EN_pin();

LCD_DB7_LOW;
LCD_DB6_LOW;
LCD_DB5_HIGH;
LCD_DB4_HIGH;

toggle_EN_pin();

LCD_DB7_LOW;
LCD_DB6_LOW;
LCD_DB5_HIGH;
LCD_DB4_LOW;

toggle_EN_pin();

LCD_send((_4_pin_interface | _2_row_display | _5x7_dots), CMD);
LCD_send((display_on | cursor_off | blink_off), CMD);
LCD_send(clear_display, CMD);
LCD_send((cursor_direction_inc | display_no_shift), CMD);
}

void LCD_send(unsigned char value, unsigned char mode)
{
switch(mode)
{
    case DAT:
    {
    LCD_RS_HIGH;
    break;
    }
    case CMD:
    {
    LCD_RS_LOW;
    break;
    }
}

LCD_4bit_send(value);
}

void LCD_4bit_send(unsigned char lcd_data)
{
unsigned char temp = 0;

temp = ((lcd_data & 0x80) >> 7);

switch(temp)
{
    case 1:
    {
    LCD_DB7_HIGH;
    break;
    }
    default:
    {
    LCD_DB7_LOW;
    break;
    }
}

temp = ((lcd_data & 0x40) >> 6);

switch(temp)
{
    case 1:
    {
    LCD_DB6_HIGH;
    break;
    }
    default:
    {
    LCD_DB6_LOW;
    break;
    }
}

temp = ((lcd_data & 0x20) >> 5);

switch(temp)
{
    case 1:
    {
    LCD_DB5_HIGH;
    break;
    }
    default:
    {
    LCD_DB5_LOW;
    break;
    }
}

temp = ((lcd_data & 0x10) >> 4);

switch(temp)
{
    case 1:
    {
    LCD_DB4_HIGH;
    break;
    }
    default:
    {
    LCD_DB4_LOW;
    break;
    }
}

toggle_EN_pin();

temp = ((lcd_data & 0x08) >> 3);

switch(temp)
{
    case 1:
    {
    LCD_DB7_HIGH;
    break;
    }
    default:
    {
    LCD_DB7_LOW;
    break;
    }
}

temp = ((lcd_data & 0x04) >> 2);

switch(temp)
{
    case 1:
    {
    LCD_DB6_HIGH;
    break;
    }
    default:
    {
    LCD_DB6_LOW;
    break;
    }
}

temp = ((lcd_data & 0x02) >> 1);

switch(temp)
{
    case 1:
    {
    LCD_DB5_HIGH;
    break;
    }
    default:
    {
    LCD_DB5_LOW;
    break;
    }
}

temp = ((lcd_data & 0x01));

switch(temp)
{
    case 1:
    {
    LCD_DB4_HIGH;
    break;
    }
    default:
    {
    LCD_DB4_LOW;
    break;
    }
}

toggle_EN_pin();
}

void LCD_putstr(char *lcd_string)
{
do
{
    LCD_send(*lcd_string++, DAT);
}while(*lcd_string != '\0');
}

void LCD_putchar(char char_data)
{
LCD_send(char_data, DAT);
}

void LCD_clear_home(void)
{
LCD_send(clear_display, CMD);
LCD_send(goto_home, CMD);
}

void LCD_goto(unsigned char x_pos, unsigned char y_pos)
{
if(y_pos == 0)
{
    LCD_send((0x80 | x_pos), CMD);
}
else
{
    LCD_send((0x80 | 0x40 | x_pos), CMD);
}
}

void toggle_EN_pin(void)
{
LCD_EN_HIGH;

delay(16323); // 1ms
LCD_EN_LOW;
    delay(16323); // 1ms
}

.................................................................................................................................................................
My lcd.h file is given below
..................................................................................................................................................................

#ifndef _LCD_H
#define _LCD_H

#define LCD_C_PORT      JL_PORTC
#define LCD_DB7          (BIT(5))

#define LCD_B_PORT      JL_PORTB
#define LCD_RS          (BIT(5))
#define LCD_EN          (BIT(4))
#define LCD_DB4          (BIT(3))
#define LCD_DB5          (BIT(1))
#define LCD_DB6          (BIT(2))

#define LCD_RS_EN()          do{LCD_B_PORT->PU &= ~LCD_RS;LCD_B_PORT->PD &= ~LCD_RS;LCD_B_PORT->DIR &= ~LCD_RS;}while(0)
#define LCD_EN_EN()          do{LCD_B_PORT->PU &= ~LCD_EN;LCD_B_PORT->PD &= ~LCD_EN;LCD_B_PORT->DIR &= ~LCD_EN;}while(0)

#define LCD_DB4_EN()          do{LCD_B_PORT->PU &= ~LCD_DB4;LCD_B_PORT->PD &= ~LCD_DB4;LCD_B_PORT->DIR &= ~LCD_DB4;}while(0)
#define LCD_DB5_EN()          do{LCD_B_PORT->PU &= ~LCD_DB5;LCD_B_PORT->PD &= ~LCD_DB5;LCD_B_PORT->DIR &= ~LCD_DB5;}while(0)
#define LCD_DB6_EN()          do{LCD_B_PORT->PU &= ~LCD_DB6;LCD_B_PORT->PD &= ~LCD_DB6;LCD_B_PORT->DIR &= ~LCD_DB6;}while(0)
#define LCD_DB7_EN()          do{LCD_C_PORT->PU &= ~LCD_DB7;LCD_C_PORT->PD &= ~LCD_DB7;LCD_C_PORT->DIR &= ~LCD_DB7;}while(0)

//#define LCD_GPIO_init()           do{P00_PushPull_Mode; P01_PushPull_Mode; P10_PushPull_Mode; P11_PushPull_Mode; P12_PushPull_Mode; P13_PushPull_Mode;}while(0)

#define LCD_RS_HIGH                        do{LCD_B_PORT->OUT |=  LCD_RS;}while(0)
#define LCD_RS_LOW                         do{LCD_B_PORT->OUT &= ~LCD_RS;}while(0)

#define LCD_EN_HIGH                        do{LCD_B_PORT->OUT |=  LCD_EN;}while(0)
#define LCD_EN_LOW                         do{LCD_B_PORT->OUT &= ~LCD_EN;}while(0)

#define LCD_DB4_HIGH                        do{LCD_B_PORT->OUT |=  LCD_DB4;}while(0)
#define LCD_DB4_LOW                        do{LCD_B_PORT->OUT &= ~LCD_DB4;}while(0)

#define LCD_DB5_HIGH                        do{LCD_B_PORT->OUT |=  LCD_DB5;}while(0)
#define LCD_DB5_LOW                        do{LCD_B_PORT->OUT &= ~LCD_DB5;}while(0)

#define LCD_DB6_HIGH                        do{LCD_B_PORT->OUT |=  LCD_DB6;}while(0)
#define LCD_DB6_LOW                        do{LCD_B_PORT->OUT &= ~LCD_DB6;}while(0)

#define LCD_DB7_HIGH                        do{LCD_C_PORT->OUT |=  LCD_DB7;}while(0)
#define LCD_DB7_LOW                        do{LCD_C_PORT->OUT &= ~LCD_DB7;}while(0)

#define clear_display                      0x01
#define goto_home                          0x02

#define cursor_direction_inc               (0x04 | 0x02)
#define cursor_direction_dec               (0x04 | 0x00)
#define display_shift                      (0x04 | 0x01)
#define display_no_shift                   (0x04 | 0x00)

#define display_on                         (0x08 | 0x04)
#define display_off                        (0x08 | 0x02)
#define cursor_on                          (0x08 | 0x02)
#define cursor_off                         (0x08 | 0x00)
#define blink_on                           (0x08 | 0x01)
#define blink_off                          (0x08 | 0x00)

#define _8_pin_interface                   (0x20 | 0x10)
#define _4_pin_interface                   (0x20 | 0x00)
#define _2_row_display                     (0x20 | 0x08)
#define _1_row_display                     (0x20 | 0x00)
#define _5x10_dots                         (0x20 | 0x40)
#define _5x7_dots                          (0x20 | 0x00)

#define DAT                                1
#define CMD                                0

void LCD_init(void);
void LCD_send(unsigned char value, unsigned char mode);
void LCD_4bit_send(unsigned char lcd_data);
void LCD_putstr(char *lcd_string);
void LCD_putchar(char char_data);
void LCD_clear_home(void);
void LCD_goto(unsigned char x_pos, unsigned char y_pos);
void toggle_EN_pin(void);

#endif


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