TS3USB30EDGSR
Да есть, 10 ом...
- Подпись автора
USMicro(R) (C)2025
USMI |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » USMI » MCU, SoC, CPU Микроконтроллеры » JL SoC. (杰理芯片) Programmer (Dongle) (Download Tool) Программатор.
TS3USB30EDGSR
Да есть, 10 ом...
USMicro(R) (C)2025
а китайцы доводят до ума работу со своим донглом...
"в худшем случае - будет два тоннеля".
какую релюху используешь?
я тут начал смотреть в сторону модулей qualcomm. давно валяется в запасах qcc3034, на 4пда появилась тема об этих модулях...
китайцы в защите своих модулей и функций, кажется, думают, как та курица, убегающая от петуха: "а не бегу ли я слишком быстро?"
какую релюху используешь
Я юзал на 12 вольт два канала, через транзистор управлял обмотками, работало класно.
А что там ро китайчев с донглом? Как доводят?
USMicro(R) (C)2025
я кстати тоже. У меня есть пару чипов от квалкомма.
USMicro(R) (C)2025
а что там с китайскими чатами в wechat и qq где у них поддержка? не смотрел?
я кстати тоже. У меня есть пару чипов от квалкомма.
на 4пда пишут, что старшие модели могут в usb-transmitter в aac и ldac. в aac я с трудом верю. кодек хороший, но шибко уж legacy и не для того он был сделан.
модули со старшими чипами и стоят весьма прилично. а преимущество в поддержке новых кодеков - ну я не слышал новых кодеков...
а что там с китайскими чатами в wechat и qq где у них поддержка? не смотрел?
Нет не смотрел. Я просто думал ты что то знаешь..
а китайцы доводят до ума работу со своим донглом...
USMicro(R) (C)2025
вроде, недавно в яндексе стало возможно переводить документы pdf.
надо двигаться дальше.
? и при чем тут это? в гугле можно лет 20 как уже)
Вроде последнийдонгл это v4 ч пару страниц назад выложил прошивку последнюю 23 года.
USMicro(R) (C)2025
максимум чтл они сделали - прошивку кое каких чипов без кварца.
USMicro(R) (C)2025
У меня этот кусок кода на STM32 отрабатывает стабильно на AC6965, не важно - чип включается вместе с STM или сначала STM включаю и потом включаю чип.
Правда насчёт USB, у меня он напрямую с STM к чипу подключен, без всяких ключей...
Код:void Send_USBkey(void) { /* send the key repeatedly until the target acknowledges */ for (;;) { /* switch to output */ GPIOB->CRH = (GPIOB->CRH & ~(0xff<<8)) | (0x33<<8); /* send the 0x16EF key */ for (uint16_t mask = 0x8000; mask; mask >>= 1) { /* set data on D- */ GPIOB->BSRR = (0x16EF & mask) ? (1<<11) : (1<<27); /* pulse clock on D+ (rising edge) */ GPIOB->BSRR = (1<<26); /* low */ for (volatile int i = 100; i; i--); GPIOB->BSRR = (1<<10); /* high */ for (volatile int i = 100; i; i--); } /* switch to input with pullup */ GPIOB->CRH = (GPIOB->CRH & ~(0xff<<8)) | (0x88<<8); GPIOB->BSRR = (1<<10)|(1<<11); /* pullup */ /* If both D+ and D- is low, then we're done! */ if (!(GPIOB->IDR & (3<<10))) break; } /* release! */ GPIOB->CRH = (GPIOB->CRH & ~(0xff<<8)) | (0x00<<8); }
水Mizu-DEC JLtech since 22.06.2019
надо бы анализатором подключиться, хотя, что там увидишь. и на другом компе.
тот скетч, что на первых страницах, он актуален? или, может, актуальны другие задержки?
АС6956L питание подаю через ключ, соединение через герконовые реле. Была проблема - на Vbat висит здоровый конденсатор, поставил параллельно резистор, чтобы быстрее разряжался.
void clockOut(uint8_t value)
{
digitalWrite(DATA_PIN, value);
digitalWrite(CLOCK_PIN, 0);
delayMicroseconds(15);
digitalWrite(CLOCK_PIN, 1);
delayMicroseconds(15);
}
void clockOut1(int value)
{
digitalWrite(DATA_PIN, value);
digitalWrite(CLOCK_PIN, 0);
delayMicroseconds(15);
digitalWrite(CLOCK_PIN, 1);
}
void sendKey()
{
clockOut(0);
clockOut(0);
clockOut(0);
clockOut(1);
clockOut(0);
clockOut(1);
clockOut(1);
clockOut(0);
clockOut(1);
clockOut(1);
clockOut(1);
clockOut(0);
clockOut(1);
clockOut(1);
clockOut(1);
clockOut1(1);
}
void setup()
{
pinMode(VCC_PIN, OUTPUT);
pinMode(USB_CONNECT_PIN, OUTPUT);
digitalWrite(VCC_PIN, 0);
delay(15);
pinMode(CLOCK_PIN, OUTPUT);
pinMode(DATA_PIN, OUTPUT);
sendKey();
pinMode(CLOCK_PIN, INPUT);
pinMode(DATA_PIN, INPUT);
digitalWrite(USB_CONNECT_PIN, 1);
}
***********
Для проверки на подтягивание ног к земле ардуиновского pullupa не хватало, чип всегда тянет довольно сильно к земле. Поставил внешний резистор - 10к было много, с 3к заработало.
Отредактировано amateur (2023-05-27 20:39:56)
Обнаружил что если отправлять кей на D+D- через строго определенное время после подачи питания то подключается сразу без танцев с бубном. На AC6905A: 22-26 мс, AC6956L: 10-20 мс, AC6925C:13-22 мс
void setup()
{
pinMode(VCC_PIN, OUTPUT);
pinMode(USB_CONNECT_PIN, OUTPUT);
digitalWrite(VCC_PIN, 0);
delay(15);
pinMode(CLOCK_PIN, OUTPUT);
pinMode(DATA_PIN, OUTPUT);
sendKey();
pinMode(CLOCK_PIN, INPUT);
pinMode(DATA_PIN, INPUT);
digitalWrite(USB_CONNECT_PIN, 1);
}
Ага, я так и подозревал, что тут ключ отправлется один раз, из-за чего нужна задержка чтобы чип был готов к приёму этого ключа.
Конечно оно будет работать стабильно, ибо ключ отправляется один раз в нужное время и так можно не отлавливать ответ от чипа, а сразу подключить USB...
水Mizu-DEC JLtech since 22.06.2019
чип всегда тянет довольно сильно к земле.
Отредактировано amateur (Сегодня 19:39:56)
даже не к земле а где-то на половине питания.
/*********** AC6XXX Series DFU Trigger Code *********************************
Ver : 1.3
Code of Arduino UNO
MCU : ATMEGA 328 + Standard Arduino Bootloader
23/04/2021 19:04
*****************************************************************************/
#define DATA_PIN SDA //D-
#define CLOCK_PIN SCL //D+
#define RELAY_BUS A3 //управление ключом шины
#define RELAY_POWER A2 //управление ключом питания(+)
#define LED 13 //светодиод
#define KEY_MODE_1 2
boolean answer = 0; //статус ответа
boolean done = 0; //0-время не вышло, 1 - время вышло (подача сигналов)
boolean setupdone = 0; //0-переинициализации не было, 1- была
unsigned long ann = 0; //засечка времени
unsigned long timecount = 0; //то же самое)
int cnt; //счетчик сигналов
int buttonState = 0;
void clockOut(int value)
{
digitalWrite(DATA_PIN, value);
digitalWrite(CLOCK_PIN, 0);
delayMicroseconds(20);
digitalWrite(CLOCK_PIN, 1);
delayMicroseconds(25);
}
void setup()
{
if (done == 0)
{
pinMode(KEY_MODE_1, INPUT);
pinMode(CLOCK_PIN, OUTPUT);
pinMode(RELAY_POWER, OUTPUT);
pinMode(DATA_PIN, OUTPUT);
pinMode(LED, OUTPUT);
digitalWrite(LED, 1);
digitalWrite(LED, 0);
digitalWrite(KEY_MODE_1, 1);
}
else
{
pinMode(KEY_MODE_1, INPUT);
pinMode(CLOCK_PIN, INPUT);
pinMode(DATA_PIN, INPUT);
pinMode(RELAY_POWER, OUTPUT);
pinMode(RELAY_BUS, OUTPUT);
pinMode(LED, OUTPUT);
digitalWrite(LED, 0);
}
}
void loop()
{
{
if (answer == 0) { //если нет ответа
if (cnt == 1) { //количество сообщений
done = 1; //сигналы посланы
if (setupdone == 0) { //если переинициализации не было
setup(); //переинициализация
setupdone = 1; //переинициализация выполнена
timecount = micros(); //старт отсчета 50 микросек
}
if (digitalRead(SCL) == 1) { //если на ноге +
answer = 1; //статус ответа
} else if (micros() > 50 + timecount) { //если в течение 50 мкс нет ответа
done = 0; //сбрасываем все переменные
setupdone = 0;
ann = millis();
timecount = 0;
answer = 0;
cnt = 0;
setup(); //переинициализация
}
} else { //если не все сообщения посланы
clockOut(0);
clockOut(0);
clockOut(0);
clockOut(1);
clockOut(0);
clockOut(1);
clockOut(1);
clockOut(0);
clockOut(1);
clockOut(1);
clockOut(1);
clockOut(0);
clockOut(1);
clockOut(1);
clockOut(1);
clockOut(1);
delayMicroseconds(20);
digitalWrite(DATA_PIN, 0);
digitalWrite(CLOCK_PIN, 0);
/// digitalWrite(KEY_MODE_1, 0);
cnt++;
}
} else {
digitalWrite(RELAY_BUS, answer);
digitalWrite(RELAY_POWER, answer); // состояние ключа шины после принятия ответа
digitalWrite(LED, answer); //LED
}
}
}
USMicro(R) (C)2025
Не тестил на 695 и выше, но на 690 и 692 работало идеально...
USMicro(R) (C)2025
amateur
твой вариант сработал. br25 появился.
а jluboottool не хочет работать с 6965а.
=>JL: read 0 0x80000 6965.bin
Traceback (most recent call last):
File "jluboottool.py", line 709, in <module>
ds.cmdloop()
File "C:\Python38-32\lib\cmd.py", line 138, in cmdloop
stop = self.onecmd(line)
File "C:\Python38-32\lib\cmd.py", line 217, in onecmd
return func(arg)
File "jluboottool.py", line 212, in do_read
data = self.dev.flash_read(address, n)
File "C:\tmp\jltest\jl_uboot.py", line 111, in flash_read
return self.exec_cmd_datain(b'\xfd\x05' + addr.to_bytes(4, 'big') +
File "C:\tmp\jltest\jl_uboot.py", line 84, in exec_cmd_datain
self.dev.execute(cmd, None, data)
File "C:\tmp\jltest\scsiio\win32port.py", line 133, in execute
raise SCSIException('Transfer failed... %s' % ctypes.WinError())
scsiio.common.SCSIException: Transfer failed... [WinError 121] Превышен таймаут семафора.Отредактировано ender11 (2023-05-28 11:26:17)
А кто знает , через батник можно ли как то управлять UART? Например посылать ардуине команды через уарт?
Это нужно для дебага, очень бы упростило жизнь. Лень тыкать усб туда сюда, и нажимать на донгле кнопочку....
USMicro(R) (C)2025
Ну например, через "echo ..... > COMx", где COMx заменить на нужный порт (вроде как для портов больше девяти нужно указывать как \\.\COMxx)
То что в ..... будет отправлено в указанный порт как строка.
水Mizu-DEC JLtech since 22.06.2019
То что нужно. А как с параметрами? Скорость, разрядность и тд?
USMicro(R) (C)2025
Вы здесь » USMI » MCU, SoC, CPU Микроконтроллеры » JL SoC. (杰理芯片) Programmer (Dongle) (Download Tool) Программатор.