Доброго времени, может есть у вас даташит на вот эту микросхемку AC23BPOH940-25D4 производителя JL ?
JL SoC. 杰理芯片
Сообщений 1121 страница 1140 из 1317
Поделиться11222024-02-08 03:25:48
AC6925D
- Подпись автора
By Admin
Поделиться11232024-02-08 03:57:06
AC6925D
Благодарю. Значит я по адресу зашёл и в ветке инфу можн для моего случая использовать..?
Собственно стоит задача достать прошивку из чипа, определить где там голосовой ассистент записан и изменить громкость семпла или зпменить своим, попутно может получится порог ниже 10% звука добавить ( с 10% сразу в 0 скидывает). А до кучи может и с перемоткой по треку флешки получится разобраться- вырубает звук и вообще аппарат после нескольких секунд перемотки..
Поделиться11242024-02-08 08:10:54
Имеются ещё две платы с чипом AC1745AP16431-5A8
и AS19AP1P957-25F4 у них даташит такойже как и у первого который выше спрашивал , или отличается? Собственно в всех чипах свои не дочеты в прошивке и есть идея попытаться собрать из трех одну. Интересно, получится такое или для каждой микросхемы своя прошивка требуется? В программировании я не очень силен но присутствует сильное желание поправить косяки в очень удобном аппарате с хорошим , насыщенным звуком..
Поделиться11252024-02-08 10:31:05
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
Поделиться11262024-02-09 13:10:55
а внешнюю флешку под программу использовать можно? 25q64 какую-нибудь.
Поделиться11272024-02-09 17:13:15
Как я понял только под ресурсы, картинки, звуки, оно у них через SFC используется, (я на 695 запускал) а что бы чисто под программу - как я понял - только те чипы где есть порты PORTD().
- Подпись автора
By Admin
Поделиться11282024-02-09 18:19:25
а внешнюю флешку под программу использовать можно? 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
Поделиться11292024-02-09 20:37:24
Благодарю. Значит я по адресу зашёл и в ветке инфу можн для моего случая использовать..?
Собственно стоит задача достать прошивку из чипа, определить где там голосовой ассистент записан и изменить громкость семпла или зпменить своим, попутно может получится порог ниже 10% звука добавить ( с 10% сразу в 0 скидывает). А до кучи может и с перемоткой по треку флешки получится разобраться- вырубает звук и вообще аппарат после нескольких секунд перемотки..
Да вполне.
- Подпись автора
By Admin
Поделиться11302024-02-09 20:38:19
Имеются ещё две платы с чипом AC1745AP16431-5A8
и AS19AP1P957-25F4 у них даташит такойже как и у первого который выше спрашивал , или отличается? Собственно в всех чипах свои не дочеты в прошивке и есть идея попытаться собрать из трех одну. Интересно, получится такое или для каждой микросхемы своя прошивка требуется? В программировании я не очень силен но присутствует сильное желание поправить косяки в очень удобном аппарате с хорошим , насыщенным звуком..
Отличаются, вообщем уже написали что за чипы.. Но тоже можно.
- Подпись автора
By Admin
Поделиться11322024-02-11 19:18:33
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
Поделиться11332024-03-01 05:46:33
how can i use uart function on ac6905 to transmit the number that other person called
Поделиться11342024-03-01 21:47:09
Приветствую всех. Попалась музыка флак, на АС6925А + SDK_release_V2.6.3 не играет, посмотрел дебаг, дошел до format_check и FORMAT_OK_BUT_NO_SUPPORT и дальше след потерялся.
Кто-нибудь этим занимался?
Поделиться11352024-03-02 02:59:21
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
Поделиться11362024-03-02 03:00:50
Приветствую всех. Попалась музыка флак, на АС6925А + SDK_release_V2.6.3 не играет, посмотрел дебаг, дошел до format_check и FORMAT_OK_BUT_NO_SUPPORT и дальше след потерялся.
Кто-нибудь этим занимался?
Я сталкивался, или частота или разрядность выше допустимого, максимум 16 бит/44100Гц, все что выше - не работает.
- Подпись автора
By Admin
Поделиться11372024-03-02 17:25:43
Я сталкивался, или частота или разрядность выше допустимого, максимум 16 бит/44100Гц, все что выше - не работает.
Да, так и есть.
Поделиться11382024-03-04 22:34:02
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 ?
Поделиться11402024-03-10 09:54:42
Hi. It's here About time, what do you mean?
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