Еще если IR кнопок больше чем 21 - нужно изменить значение в основном конфиге конфиге.
#define KEY_IR_NUM_MAX 21
Хорошо, спасибо.
- Подпись автора
Türkiye
USMI |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » USMI » MCU, SoC, CPU Микроконтроллеры » Подключение разной периферии к JL SoC. SPI/I2C/I2S/PWM/UART/GPIO...
Еще если IR кнопок больше чем 21 - нужно изменить значение в основном конфиге конфиге.
#define KEY_IR_NUM_MAX 21
Хорошо, спасибо.
Türkiye
buttoncode=ir_code.wData
const u8 IRTabFF00[] = {
...IR_11,//index=24=buttoncode MSG_XY IR_11 from task_xy_key.c
...
Также, какая модель или марка пульта дистанционного управления у вас используется? Это универсальный пульт или фирменный?
Türkiye
NEC Format Datacode.
JL by Default use NEC also. User code in all sdk - NEC FF00All of them - same . But different design. All of them - NEC FF00
Понял, спасибо. У меня два пульта NEC, некоторые кнопки работают, но их назначение не соответствует названию кнопки (например, кнопка уменьшения громкости на одном из моих пультов переключает на ускоренную перемотку). Я до сих пор не могу настроить команды в соответствии с используемым пультом. Вместо одного примера или короткого кода, не могли бы вы предоставить более длинный пример/код или объяснение? Основная причина в том, что перевод сильно искажает смысл. Спасибо ещё раз.
Türkiye
Похоже, я разобрался.
Türkiye
Кто-нибудь подключал микросхему JL IC к внешней микросхеме памяти, например, 25Q32? Я пробовал, но она не распознается, хотя конфигурация ISP правильная.
Я допустил небольшую ошибку, это SPI.
Кто-нибудь подключал микросхему JL IC к внешней микросхеме памяти, например, 25Q32? Я пробовал, но она не распознается, хотя конфигурация ISP правильная.
Да, я подключал. Работает. Микросхема SPI должна содержать FAT- файловую систему.
USMicro® 2026©
Привет ещё раз! Я решил купить BT201, 0,96-дюймовый OLED-монитор, и пульт NEC, чтобы поэкспериментировать с ИК-командами. Любой пульт NEC должен подойти,Я также попробую Codex, поскольку у меня не было возможности по-настоящему попрактиковаться в работе с SDK. нужно только настроить команды, верно? Вот пульт, который я собираюсь купить.
Спасибо и привет!
Türkiye
Vâng, tôi đã kết nối rồi. Nó hoạt động. Chip SPI phải có hệ thống tập tin FAT.
Брат, можешь подсказать модель внешней микросхемы памяти, которую ты успешно использовал и подключал? Я хочу провести тесты.
Привет ещё раз! Я решил купить BT201, 0,96-дюймовый OLED-монитор, и пульт NEC, чтобы поэкспериментировать с ИК-командами. Любой пульт NEC должен подойти,Я также попробую Codex, поскольку у меня не было возможности по-настоящему попрактиковаться в работе с SDK. нужно только настроить команды, верно? Вот пульт, который я собираюсь купить.
Спасибо и привет!
Я купил обучаемый пульт. С помощью ардуино можно генерировать любые коды и научить.
Dang Tien Thinh
У сожалению не помню., так как давно уже было. Это была какая то Winbond...
Но за то сохранились фотографии. 







Она используется только для хранения UI/Sound ресурсов. Через SFC. Дамп для флешки должен быть предварительно собран и содержать FAT файловую систему, и всё это должно быть прошито через программатор.
USMicro® 2026©
Похоже, я разобрался.
The most useless message ever
Попробую подробнее описать настройку ик пульта для AC692X. В AC695X то же самое только файлы по другому называются.
Есть 21 ик кнопка.
К примеру в режиме BT кнопке 0 я присваиваю команду MSG_VOL_UP, кнопке 1 - команду MSG_VOL_DOWN
в task_bt_key.c пишу
/***********************************************************************
IR button table
************************************************************************/
#define IRFF00_BT_KEY_SHORT \
/*00*/ MSG_VOL_UP,\
/*01*/ MSG_VOL_DOWN,\
/*02*/ NO_MSG,\
/*03*/ NO_MSG,\
/*04*/ NO_MSG,\
/*05*/ NO_MSG,\
/*06*/ NO_MSG,\
/*07*/ NO_MSG,\
/*08*/ NO_MSG,\
/*09*/ NO_MSG,\
/*10*/ NO_MSG,\
/*11*/ NO_MSG,\
/*12*/ NO_MSG,\
/*13*/ NO_MSG,\
/*14*/ NO_MSG,\
/*15*/ NO_MSG,\
/*16*/ NO_MSG,\
/*17*/ NO_MSG,\
/*18*/ NO_MSG,\
/*19*/ NO_MSG,\
/*20*/ NO_MSG,
К примеру мой пульт посылает при нажатии на VOL+ код кнопки 0x0A а VOL- код кнопки 0x0B
в key_drv_ir.h пишу
/*ir key define*/ #define IR_00 0 #define IR_01 1 #define IR_02 2 #define IR_03 3 #define IR_04 4 #define IR_05 5 #define IR_06 6 #define IR_07 7 #define IR_08 8 #define IR_09 9 #define IR_10 10 #define IR_11 11 #define IR_12 12 #define IR_13 13 #define IR_14 14 #define IR_15 15 #define IR_16 16 #define IR_17 17 #define IR_18 18 #define IR_19 19 #define IR_20 20 #define IR_21 21 #define IR_22 22 ////////////////////////////////// #define NKEY_00 0xff #define NKEY_01 0xff #define NKEY_02 0xff #define NKEY_03 0xff #define NKEY_04 0xff #define NKEY_05 0xff #define NKEY_06 0xff #define NKEY_07 0xff #define NKEY_08 0xff #define NKEY_09 0xff #define NKEY_0A IR_00 #define NKEY_0B IR_01
То же самое можно сделать прямо в key_drv_ir.c
const u8 IRTabFF00[] = {
NKEY_00, NKEY_01, NKEY_02, NKEY_03, NKEY_04, NKEY_05, NKEY_06, NKEY_07, NKEY_08, NKEY_09, IR_00, IR_01, NKEY_0C, NKEY_0D, NKEY_0E, NKEY_0F,
NKEY_10, NKEY_11, NKEY_12, NKEY_13, NKEY_14, NKEY_15, NKEY_16, NKEY_17, NKEY_18, NKEY_19, NKEY_1A, NKEY_1B, NKEY_1C, NKEY_1D, NKEY_1E, NKEY_1F,
NKEY_20, NKEY_21, NKEY_22, NKEY_23, NKEY_24, NKEY_25, NKEY_26, NKEY_27, NKEY_28, NKEY_29, NKEY_2A, NKEY_2B, NKEY_2C, NKEY_2D, NKEY_2E, NKEY_2F,
NKEY_30, NKEY_31, NKEY_32, NKEY_33, NKEY_34, NKEY_35, NKEY_36, NKEY_37, NKEY_38, NKEY_39, NKEY_3A, NKEY_3B, NKEY_3C, NKEY_3D, NKEY_3E, NKEY_3F,
NKEY_40, NKEY_41, NKEY_42, NKEY_43, NKEY_44, NKEY_45, NKEY_46, NKEY_47, NKEY_48, NKEY_49, NKEY_4A, NKEY_4B, NKEY_4C, NKEY_4D, NKEY_5E, NKEY_4F,
NKEY_50, NKEY_51, NKEY_52, NKEY_53, NKEY_54, NKEY_55, NKEY_56, NKEY_57, NKEY_58, NKEY_59, NKEY_5A, NKEY_5B, NKEY_5C, NKEY_5D, NKEY_4E, NKEY_5F,
};
Узнать какие коды отправляет пульт можно в key_drv_ir.c (ну или с помощью ардуино)
u8 get_irkey_value(void)
{
u8 tkey = 0xff;
if (ir_code.bState != 32) {
return tkey;
}
printf("(0x%X_%d)",(u8)ir_code.wUserCode,(u8)ir_code.wData); /*print device code and button code*/
if ((((u8 *)&ir_code.wData)[0] ^ ((u8 *)&ir_code.wData)[1]) == 0xff) {
if (ir_code.wUserCode == 0xFF00) /*use device code from your remote*/
{
/* printf("<%d>",(u8)ir_code.wData); */
tkey = IRTabFF00[(u8)ir_code.wData];
}
} else {
ir_code.bState = 0;
}
/* if(tkey != NO_KEY){ */
/* log_printf("tch %x", tkey); */
/* } */
return tkey;
}
Как пример: wUserCode 0xFF00 -> device code 0x00, inverted device code 0xFF; wData 0xB24D -> button code 0x4D, inverted button code 0xB2
The most useless message ever
You are right
,even though i wrote "i think i understood" i had a break,havent worked on it for 2-3 months i think. Sooo this makes it a kind of useless message
Türkiye
I'll try to describe the IR remote control setup for the AC692X in more detail. It's the same for the AC695X, but the files are named differently.
There are 21 IR buttons.
For example, in BT mode, I assign the MSG_VOL_UP command to button 0 and the MSG_VOL_DOWN command to button 1.
I write in task_bt_key.c
For example, when I press VOL+, my remote sends the button code 0x0A, and when I press VOL-, the button code 0x0B.
I write in key_drv_ir.h
The same can be done directly in key_drv_ir.c
You can find out what codes the remote sends in key_drv_ir.c (or using an Arduino)
As an example: wUserCode 0xFF00 -> device code 0x00, inverted device code 0xFF; wData 0xB24D -> button code 0x4D, inverted button code 0xB2
Understood. Thanks for explaining again(i know i asked too much questions on this topic)
Türkiye
Всем привет! В колонках Monster Micro и Monster Atom в качестве светодиодного индикатора режимов зарядки и блютуз подключения используются не обычные (красный и синий светодиоды), а матричный RGB типа ws2812b с однопроводным управлением, запрограммированы в soc'е в режиме белого и красного свечения. Управление идёт с ноги PG2, а питание с PE5/PE6 (нагрузка с этого порта до 46 миллиампер). Никто не видел проектов для JL soc'ов. Нашёл только для avr и arm архитектур.
Отредактировано Alextel (2026-07-01 15:50:02)
Здравствуйте, у меня монитор BT201 и 0,96-дюймовый OLED-экран. Я также прошил для него прошивку пользовательского интерфейса, но по какой-то причине экран ничего не отображает. Я пробовал переключать SCL и SDA, а также включил пользовательский интерфейс и ЖК-дисплей в настройках SDK. Буду благодарен за любую помощь! 
Türkiye
Здравствуйте, у меня монитор BT201 и 0,96-дюймовый OLED-экран. Я также прошил для него прошивку пользовательского интерфейса, но по какой-то причине экран ничего не отображает. Я пробовал переключать SCL и SDA, а также включил пользовательский интерфейс и ЖК-дисплей в настройках SDK. Буду благодарен за любую помощь!
Ты конечно уже проверил дисплей на другом контроллере и проверил есть ли правильный сигнал на SCL/SDA?
Ты конечно уже проверил дисплей на другом контроллере и проверил есть ли правильный сигнал на SCL/SDA?
У меня три OLED-дисплея одной модели, SSD1306, I2C. Я использую схему Arduino UBOOT без реле с этого форума. BT201 работает, он отображается в Bluetooth. Я также тестировал OLED-дисплеи с другими микроконтроллерами (Arduino, PIC). Не знаю, связано ли это с загрузкой UI bat.
isd_download.exe -tonorflash -dev br21 -boot 0x2000 -div6 -wait 300 -f uboot.boot sdk.app bt_cfg.bin ui_resource\menu.res ui_resource\ui_sty.sty ui_resource\f_ascii_s.pix f_gb2312_s.pix f_gb2312.tab
Türkiye
Вы здесь » USMI » MCU, SoC, CPU Микроконтроллеры » Подключение разной периферии к JL SoC. SPI/I2C/I2S/PWM/UART/GPIO...