USMI

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » USMI » MCU, SoC, CPU Микроконтроллеры » JL SoC. (杰理芯片) Programmer (Dongle) (Download Tool) Программатор.


JL SoC. (杰理芯片) Programmer (Dongle) (Download Tool) Программатор.

Сообщений 201 страница 220 из 351

201

ender11 написал(а):

TS3USB30EDGSR

Да есть, 10 ом...

Подпись автора

By Admin

202

а китайцы доводят до ума работу со своим донглом...
"в худшем случае - будет два тоннеля".
какую релюху используешь?

203

я тут начал смотреть в сторону модулей qualcomm. давно валяется в запасах qcc3034, на 4пда появилась тема об этих модулях...
китайцы в защите своих модулей и функций, кажется, думают, как та курица, убегающая от петуха: "а не бегу ли я слишком быстро?"

204

ender11 написал(а):

какую релюху используешь

Я юзал на 12 вольт два канала, через транзистор управлял обмотками, работало класно.
А что там ро китайчев с донглом? Как доводят?

Подпись автора

By Admin

205

я кстати тоже. У меня есть пару чипов от квалкомма.

Подпись автора

By Admin

206

а что там с китайскими чатами в wechat и qq где у них поддержка? не смотрел?

BIOS написал(а):

я кстати тоже. У меня есть пару чипов от квалкомма.

на 4пда пишут, что старшие модели могут в usb-transmitter в aac и ldac. в aac я с трудом верю. кодек хороший, но шибко уж legacy и не для того он был сделан.
модули со старшими чипами и стоят весьма прилично. а преимущество в поддержке новых кодеков - ну я не слышал новых кодеков...

207

ender11 написал(а):

а что там с китайскими чатами в wechat и qq где у них поддержка? не смотрел?

Нет не смотрел. Я просто думал ты что то знаешь..

ender11 написал(а):

а китайцы доводят до ума работу со своим донглом...

Подпись автора

By Admin

208

вроде, недавно в яндексе стало возможно переводить документы pdf.
надо двигаться дальше.

209

? и при чем тут это? в гугле можно лет 20 как уже)
Вроде последнийдонгл это v4 ч пару страниц назад выложил прошивку последнюю 23 года.

Подпись автора

By Admin

210

максимум чтл они сделали - прошивку кое каких чипов без кварца.

Подпись автора

By Admin

211

У меня этот кусок кода на 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

212

ender11 написал(а):

надо бы анализатором подключиться, хотя, что там увидишь. и на другом компе.
тот скетч, что на первых страницах, он актуален? или, может, актуальны другие задержки?

АС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)

213

amateur написал(а):

Обнаружил что если отправлять кей на D+D- через строго определенное время после подачи питания то подключается сразу без танцев с бубном. На AC6905A: 22-26 мс, AC6956L: 10-20 мс, AC6925C:13-22 мс

amateur написал(а):

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

214

amateur написал(а):

чип всегда тянет довольно сильно к земле.

Отредактировано amateur (Сегодня 19:39:56)

даже не к земле а где-то на половине питания.

215

Код:

/*********** 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
    }
  }
}
Подпись автора

By Admin

216

Не тестил на 695 и выше, но на 690 и 692 работало идеально...

Подпись автора

By Admin

217

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)

218

А кто знает , через батник можно ли как то управлять UART? Например посылать ардуине команды через уарт?
Это нужно для дебага, очень бы упростило жизнь. Лень тыкать усб туда сюда, и нажимать на донгле кнопочку....

Подпись автора

By Admin

219

Ну например, через "echo ..... > COMx", где COMx заменить на нужный порт (вроде как для портов больше девяти нужно указывать как \\.\COMxx)
То что в ..... будет отправлено в указанный порт как строка.

Подпись автора

水Mizu-DEC JLtech since 22.06.2019

220

То что нужно. А как с параметрами? Скорость, разрядность и тд?

Подпись автора

By Admin


Вы здесь » USMI » MCU, SoC, CPU Микроконтроллеры » JL SoC. (杰理芯片) Programmer (Dongle) (Download Tool) Программатор.