https://github.com/kagaimiq/jl-misctools
Спасибо!
Переезжаю в другую тему, так как там более уместно обсуждать прошивку.
USMI |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » USMI » MCU, SoC, CPU Микроконтроллеры » Перевод JL чипов в uboot режим с помощью ардуино
https://github.com/kagaimiq/jl-misctools
Спасибо!
Переезжаю в другую тему, так как там более уместно обсуждать прошивку.
Приветствую, пытаюсь подключить чип 6901 через колодку к донглу, не определяется как бр17. Земли соединил все и аналоговые, пробовал на прямую и через конденсаторы. Посоветуйте куда капнуть.
Приветствую, пытаюсь подключить чип 6901 через колодку к донглу, не определяется как бр17. Земли соединил все и аналоговые, пробовал на прямую и через конденсаторы. Посоветуйте куда капнуть.
Из описания следует что копать можно в любую сторону. Более конкретно можно посоветовать увидев схему, фото конструкции, конкретно что за донгл, скетч и.т.д
Донгл с Китая версия 4.0 подключал чип по схеме с гит хаба где все земли объединил и на 13 и 14 пин повесил кварц , определяется как неизвестное устройство.
Пробовал и без донгла на прямую через шнур, определяется так же с ошибкой, чип с Алика чистый
Схема была от другого чипа. Для нового(чистого) чипа донгл не требуется. Проблемы могут быть в чипе, его обвязке, подключении к пк.
Схема на другой чип да, но на 6901 пины другие но подключение такое же
Подскажите, бьюсь над программатором для перевода BR17 в режим загрузки. На форуме постоянно встречаются не соответствия D+\D- к DATA\CLOCK. Как правильно должна идти раcспиновка.
На данный момент у меня собрана макетка на esp32c3, питание дергаю, шину usb отключаю\подключаю, но ответа нет.
Пробовал скетчи с первой страницы и JL SoC. (杰理芯片) Programmer (Dongle) (Download Tool) Программатор.
Пины естественно переопределял.
На осциллограммах с форума, до подачи сигнала, на d+\d- видны низкие или высокие уровни, но не понятно какими они должны быть.
На форуме постоянно встречаются не соответствия D+\D- к DATA\CLOCK
А где конкретно постоянно встречаются? Мне не попадалось. На одной из плат USBDP использовался как KEY и там висел конденсатор 1нФ на землю, тоже не хотело работать.
Вот здесь https://github.com/kagaimiq/jl-uboot-to … r-uboot.md
D- is the clock line and D+ is the data line
На первой странице в коде
#define PIN_DATA 11 // D- chip WHITE
#define PIN_CLOCK 10 // D+ chip GREEN
Вот в этом сообщении Перевод JL чипов в uboot режим с помощью ардуино
D- DATA
D+ CLOCK
Вот в этом сообщении Перевод JL чипов в uboot режим с помощью ардуино
D- CLOCK
D+ DATA
У меня наушники NIA, с чипом JL. У этих наушников есть приложение NIA App connect, которое позволяет с телефона лазить по файловой системе флешки, установленной в наушники и выбирать треки.
Шина узб прямая, от разъема до чипа конденсаторов нет. Питаю от 3.3. Подача питания через p канальный мосфет, шину данных переключаю микросхемой, которая работала на uart и проблем не было.
Каждый раз когда подаю питание, наушники говорят приветственное сообщение.
Вот здесь https://github.com/kagaimiq/jl-uboot-to … r-uboot.md
D- is the clock line and D+ is the data line
Ну здесь опечатка, я как-то писал kagaimiq об этом в личку.
Вот в этом сообщении Перевод JL чипов в uboot режим с помощью ардуино
D- DATA
D+ CLOCKВот в этом сообщении Перевод JL чипов в uboot режим с помощью ардуино
D- CLOCK
D+ DATA
А это товарищ просто хаотично работает
На первой странице в коде
#define PIN_DATA 11 // D- chip WHITE
#define PIN_CLOCK 10 // D+ chip GREEN
Это правильно
Советую почитать тут и ранее
JL SoC. (杰理芯片) Programmer (Dongle) (Download Tool) Программатор.
Значит правильно подключился
Уже читал, сейчас просто за хардкодил последовательность и проверяю
Вот что получаю

Поставил перебираться, увеличивая задержку после подачи питания от 5мс и задержкой отправки 0x16EF в диапозоне от 5-100мкс.
Как только отработает, должен провалится в вечный цикл и подключится к узб.
void check_ask() {
pinMode(PIN_CLOCK, INPUT);
pinMode(PIN_DATA, INPUT);
pinMode(PIN_PU, OUTPUT);
digitalWrite(PIN_PU, HIGH); // external pull_up on
// Проверяем что пин LOW и удерживаются так 1мс
if (!digitalRead(PIN_DATA)) {
unsigned long ackStart = micros();
// Ждём 1мс, проверяя что пины всё ещё LOW
while (micros() - ackStart < 1000) {
if (digitalRead(PIN_DATA)) {
LED = CRGB::Red; FastLED.show();
pinMode(PIN_CLOCK, OUTPUT);
pinMode(PIN_DATA, OUTPUT);
break; // ACK прервался — это не ответ
}
}
if (micros() - ackStart >= 1000) {
boot_mode_ok = 1; // ACK удерживался 1мс — это ответ! // D- pulled down
digitalWrite(PIN_USB_CONNECT, USB_ON); // connect usb
LED = CRGB::Green; FastLED.show();
Serial.println("=========================================================BOOT!!!");
while(1);
}
} else {
pinMode(PIN_CLOCK, OUTPUT);
pinMode(PIN_DATA, OUTPUT);
}
pinMode(PIN_PU, INPUT); // external pull_up off
}Отредактировано lestat (2026-04-09 16:42:03)
Схема собрана вот так 
У TS3A24159DGSR перепутал на схеме местами D+\D- но в реальности подключено все правильно, т.к перевел тестово в режим подключения к компу, определился как и положено.
Изначально размыкаю узб и выключаю питание. При каждой попытке выдерживаю 1 секунду после выключения и только потом подаю питание.
Отредактировано lestat (2026-04-09 17:09:50)
Чип древний какой, полагаю AC6904C на мегабайт.
USMicro® 2026©
// ACK удерживался 1мс — это ответ!
зачем так усложнять
Чип древний какой, полагаю AC6904C на мегабайт.
поэтому должно через 22-26 мс заводиться с первого раза
JL SoC. (杰理芯片) Programmer (Dongle) (Download Tool) Программатор.
осциллограммы прям с ног чипа сняты? Аккумулятор отключен?
Акб подключен, но переключатель питания выключен. Осциллограф подключен к донгул, на ногах проверил, сигнал идентичен.
Взял скетч из примера выше и немного доработал для удобства перебора задержки кнопкой.
#include <Arduino.h>
#define DATA_PIN 3 // D- chip WHITE
#define CLOCK_PIN 1 // D+ chip GREEN
#define VCC_PIN 7 // 0=on 1=off
#define USB_CONNECT_PIN 6 // relay
#define PIN_BT 9
#define USB_ON HIGH // замыкание по высокому уровню
#define USB_OFF LOW // размыкание по низкому уровню
#define PW_ON LOW // включение по низкому уровню
#define PW_OFF HIGH // выключение по высокому уровню
void sendKey() {
for (int8_t i = 15; i >= 0; i--) {
delayMicroseconds(15);
digitalWrite(DATA_PIN, (0x16EF >> i) & 0x1);
digitalWrite(CLOCK_PIN, LOW);
delayMicroseconds(15);
digitalWrite(CLOCK_PIN, HIGH);
}
}
bool press_bt = false;
uint8_t delay_us = 20;
void setup() {
Serial.begin(115200);
pinMode(PIN_BT, INPUT);
}
void loop() {
if (!digitalRead(PIN_BT) && !press_bt) {
Serial.printf("CURRENT delay_us = %d\r\n", delay_us);
pinMode(VCC_PIN, OUTPUT);
pinMode(USB_CONNECT_PIN, OUTPUT);
digitalWrite(VCC_PIN, PW_ON);
delay(delay_us);
pinMode(CLOCK_PIN, OUTPUT);
pinMode(DATA_PIN, OUTPUT);
sendKey();
pinMode(CLOCK_PIN, INPUT);
pinMode(DATA_PIN, INPUT);
digitalWrite(USB_CONNECT_PIN, USB_ON);
delay(1000);
press_bt = true;
} else if (!digitalRead(PIN_BT) && press_bt) {
digitalWrite(VCC_PIN, PW_OFF);
digitalWrite(USB_CONNECT_PIN, USB_OFF);
press_bt = false;
delay_us++;
Serial.printf("SET_NEW delay_us = %d\r\n\r\n", delay_us);
delay(1000);
}
delay(100);
}И чип на 23мс увиделся. На 29мс видится перестал.
Чип древний какой, полагаю AC6904C на мегабайт.
схема очень похожа на https://upforme.ru/uploads/001b/ca/8a/3/604039.png
Searching for some JieLi devices..
No devices found yet. Attempt 20 - got one!
Found a device: BR17 UBOOT1.00 (1.00) at \\.\HardDiskVolume82
Waiting for [\\.\HardDiskVolume82] try! ok (BR17 UBOOT1.00 1.00)
Chip: BR17 - AC690N series
Running loader with argument 0x0001.
The Loader has been successfully installed.
================ Quick info ==================
** BR17 (AC690N series) **
>> Chip key: 0x36EF <<
- Online device:
ID: 0x5e6014
Type: 0x03 (SPI NOR flash on SPI0)
==============================================
.------------------------------------------------------.
| _____________ .------------------------------. |
| /___ __ ___/ | JieLi UBOOT Tool |
| / / / / | - Das Shell - |
| __ / / / / `------------------------------. |
| / /_/ / / /____ -*- JieLi tech console -*- | |
| `____/ /______/ Type 'help' or '?' for help. | |
| `------------------------------' |
`------------------------------------------------------'
=>JL:Под флеш в мегабайт правильная команда dump 0x0 0x100000 fw.bin?
amateur
Thank you for your reply.
I'm currently trying to boot the chip into bootloader mode using Arduino.
I've tried several sketch from this forum. But every time I try, I get a message from Device Manager that says "Unknown USB device (device descriptor request failed)".
My procedure is as follows:
1. The circuit is disconnected from the power supply.
2. The Arduino is running, and the program is working. I checked the signal waveforms with a state analyzer.
3. The USB cable is disconnected from the computer.
4. I connect the power supply to the chip.
5. The LED blinks normally, but in this case, it stops.
6. I hold down the reset button on the Arduino and connect the USB cable to the computer.
7. The computer detects the device, but I get the error: "Unknown USB device (device descriptor request failed)"
I tried disconnecting the wires on the Arduino's D+ and D- lines. But that didn't help.
When the chip is operating normally, it is detected as a sound card and BR23 UDISK.
I'm experimenting with timings in the Arduino code. Perhaps something is happening too fast or too slow and the chip is incorrectly entering bootloader mode.
4. I connect the power supply to the chip.
Here problems.
U need connect power to chip in same time when u sent signals to USB.
When u connect power to chip> and then, not sent signals to bootloader, chip start main programm. And then u cant load to loader.
When u connect power to chip, u have under 1 sec to sent signals for loader.
USMicro® 2026©
Вы здесь » USMI » MCU, SoC, CPU Микроконтроллеры » Перевод JL чипов в uboot режим с помощью ардуино