JL SoC. (杰理芯片) Programmer (Dongle) (Download Tool) Программатор.
Сообщений 341 страница 360 из 382
Поделиться3422024-08-11 20:00:48
То есть перевод в бутлоадер путем загрузки в чип бинарника где прописан перевод в бутлоадер и работа от внутреннего генератора...
Скопировать будет сложно?
Ну, если будет хватать места под сами бинарники под каждый чип, то думаю реализовать будет несложно.
Впринципе их размер можно уменьшить, например если их из ISP комманд раскодировать в исходные данные. Или например убрать оттуда лишнее, например у них обычно ещё есть код для приёма лоадера по UART (вместо того чтобы использовать код из ROM-а, как это делается для USB бута)
- Подпись автора
水Mizu-DEC JLtech since 22.06.2019
Поделиться3432024-08-11 20:17:43
С местом проблем не должно быть, на крайняк можно организовать внешнюю spi под файлы. А прожиг получается AT командами?
- Подпись автора
By Admin
Поделиться3442024-08-11 21:17:50
Ну там конечно не AT комманды, но вообще в этом случае UART используется только лишь для передачи самой прошивки, сначала прогер отправляет информацию о данных для прошивки (размер, CRC), потом чип отвечает ID флеши, и данными со фьюзов.
Потом прогер отправляет байт 0x0F до тех пор пока чип не ответит тем же в ответ. Потом уже UART настраивается на скорость 3000000 бод (вроде как) и происходит передача прошивки.
Тут ещё есть нюанс, что параметры прошивки (режим, и вот это всё) отсылаются на стадии загрузки самого лоадера (после его данных), собственно это оно и есть:
- Подпись автора
水Mizu-DEC JLtech since 22.06.2019
Поделиться3452024-08-11 21:46:01
Тут ещё есть нюанс, что параметры прошивки (режим, и вот это всё) отсылаются на стадии загрузки самого лоадера (после его данных), собственно это оно и есть:
А куда в конечном итоге efuse пишет? У самого проца есть память по мимо spi? Интересто считывать фьюзы и писать)
Есть в прогере empty burn + фьюзы. Сделаю щас дамп)
- Подпись автора
By Admin
Поделиться3462024-08-11 22:51:35
А куда в конечном итоге efuse пишет? У самого проца есть память по мимо spi?
Конечно же. В случае с чипами вроде BR17-BR21, там есть 32 фьюз-бита, которые организованы как 2 страницы по 16 бит каждая. В первой хранятся калибровочные/конфигурационные данные, а во второй - chipkey.
Доступ к ним (чтение и прожиг) - через регистр EFUSE_CON.
В чипах вроде BR25 там их уже 64 бита (32 бита на страницу), и они там вообще вроде как часть PMU (они читаются через обращение к регистрам PMU P33).
- Подпись автора
水Mizu-DEC JLtech since 22.06.2019
Поделиться3472024-08-11 23:15:50
Интересно конечно, и запарились они знатно с этими лоадерами...
Ну так и есть, уарт чисто для прошивки...)
6928_only fuse.logicdata
- Подпись автора
By Admin
Поделиться3482024-08-11 23:20:34
С платформой - лучше нам взять что то уже с внешней флешкой, что бы влезло все. RP2040 к примеру, или esp 32, я имею в виду цена+доступность на рынке.
Какие мысли?
- Подпись автора
By Admin
Поделиться3502024-09-06 19:03:13
Что за релюха , Опто?
#define JL_CLK A5 ///USBDP #define JL_DAT A4 ///USBDM #define BUS_CTRL A3 ///USB_BUS_CTRL #define POW_CTRL A2 ///USB_POWER_CTRL #define POW_RESET 2 ///USB_POWER_CTRL #define LED 13 ///LED boolean answer=0; //статус ответа boolean done=0; //0-время не вышло, 1 - время вышло (подача сигналов) boolean setupdone=0; //0-переинициализации не было, 1- была unsigned long ann=0; //засечка времени unsigned long timecount=0; //то же самое) int cnt; //счетчик сигналов bool send_usbkey(void) { pinMode(JL_DAT, OUTPUT); pinMode(JL_CLK, OUTPUT); for (uint16_t mask = 0x8000; mask; mask >>= 1) { digitalWrite(JL_DAT, (mask & 0x16EF) ? HIGH : LOW); digitalWrite(JL_CLK, LOW); delayMicroseconds(10); digitalWrite(JL_CLK, HIGH); } pinMode(JL_DAT, INPUT_PULLUP); pinMode(JL_CLK, INPUT_PULLUP); return (digitalRead(JL_DAT) == LOW) && (digitalRead(JL_CLK) == LOW); } void setup() { pinMode(POW_RESET, INPUT_PULLUP); if(done==0) { pinMode(POW_CTRL, OUTPUT); pinMode(LED, OUTPUT); digitalWrite(LED,1); digitalWrite(LED,0); } else { pinMode(LED, OUTPUT); digitalWrite(LED,0); } } void loop() { if(digitalRead(POW_RESET) == LOW) { digitalWrite(POW_CTRL,1); delay(100); digitalWrite(POW_CTRL,0); } if(answer==0) { //если нет ответа if(cnt==1) { //количество сообщений done=1; //сигналы посланы if(setupdone==0) { //если переинициализации не было setup(); //переинициализация setupdone=1; //переинициализация выполнена timecount= micros(); //старт отсчета 50 микросек } if(digitalRead(JL_DAT)==1) { //если на ноге + answer=1; //статус ответа } else if(micros()>timecount) { //если в течение 50 мкс нет ответа done=0; //сбрасываем все переменные setupdone=0; ann=millis(); timecount=0; answer=0; cnt=0; setup(); //переинициализация } } else { pinMode(BUS_CTRL,OUTPUT); digitalWrite(BUS_CTRL,0); digitalWrite(POW_CTRL,0); delayMicroseconds(1000); pinMode(POW_CTRL,OUTPUT); //digitalWrite(POW_CTRL,1); while (!send_usbkey()); delayMicroseconds(5000); cnt++; } } else { digitalWrite(BUS_CTRL,answer); digitalWrite(POW_CTRL,0); // состояние ключа шины после принятия ответа digitalWrite(LED, answer); //LED } }
Точно работает на 690/691/692/695/696/697/698/701
- Подпись автора
By Admin
Поделиться3512024-09-06 22:50:09
Не релюха, HC4016 аналоговый свитч
Вместо р-канального мосфета pnp, норм же?
Код видел, спасибо
Отредактировано Nikita_yfh (2024-09-06 22:52:59)
Поделиться3522024-11-24 17:07:41
Накидал тут схемку с платкой на обеде, глядишь кому-нибудь пригодится.
Google Диск
обязательно использовать такого типа реле или можно другим заменить?
Можно ли реле заменить к примеру оптопарой? если да помогите со схемкой пожалуйста
Поделиться3532024-11-24 17:23:02
еще вопрос по маркировке: у меня на микросхеме последние три цифры - 584, не где не нашел как расшифровать маркировку, но из интернета узнал, что это AC6905, также на обратной стороне платы оказывается написано AC6905B_V3.6, можно ли верить надписи на плате или производитель мог поставить AC6905А например?
Как это можно уточнить? Ведь объем памяти у них разный
Отредактировано GeParDos (2024-11-24 17:24:25)
Поделиться3552024-11-25 16:04:57
Собрал адаптер по вышеуказанной схеме, но подключить AC6905 так и не получилось, использовал четырёх контактное реле и мосфеты помощнее (AO4411 и AO4422), может они всему виной?
Поделиться3562024-11-25 16:06:54
Или может стоит контроллер отпать от платы, может ему что-то не дает перейти в бут режим?
Поделиться3572024-11-25 16:47:06
Фотку в студию. и какой код использовал?
- Подпись автора
By Admin
Поделиться3582024-11-25 17:00:07
Фотку в студию. и какой код использовал?
Скейч брал из поста JL SoC. (杰理芯片) Programmer (Dongle) (Download Tool) Программатор.
Фотку адаптера или платы?
В любом случае сейчас на работе, завтра утром выложу
Поделиться3592024-11-25 17:05:55
Изначально пробовал скейч тот что самый простой с гетхаба, мучался, мучился в итоге психанул решил пойти спать, отключил сначала Ардуино и оп чисто случайно определился br17... тут я понял что нужно при коннекте отключить ардуинку, но сколько бы я не пробовал так и не получилось поймать этот момент
Поделиться3602024-11-26 03:22:08
Ура у меня получилось, как сразу не сообразил в хаб переключиться, ведь ранее об этом писалось! Получилось даже без адаптера, но с тем же кодом от BIOS