• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Обсуждение Программатор для TLSR

pvvx

Активный участник сообщества
Поэтому SWS подключается лишь для загрузки начального загрузчика (2 кб) в SRAM чипа т е для этого надо соединить SWS с Tx CH340.
Как он загрузит чип, если по старту стоит отключение SWS?
Чип запросто запитывается от линии TX у CH340 и не скинет состояние GPIO на SWS.
Переключение TX в уровень "0" у CH340 не предусмотрено.
Навешаете пачку костылей и без паяльника? :)

Т.е. у вас уже 4-ре провода для программирования + питание. Не жирно ли, когда достаточно 3-х за глаза?
И в проекте должны быть свободны 3 вывода у чипа. Кошмар.
 

A_D

Active member
Видно что не в теме, Но хочется выпендриваться? Верно?
Объясняю для тех кто временами тявкает на караван.
Двухсторонний обмен я делаю по UART интерфейсу. Для него не нужен SW интерфейс.
Поэтому SWS подключается лишь для загрузки начального загрузчика (2 кб) в SRAM чипа т е для этого надо соединить SWS с Tx CH340.
----------------
схему можете нарисовать сами. Rx Tx TLSR соединяете с Tx Rx CH340. и дополнительно через диод шоттки,или тумблер, или кнопу соединяете SWS TLSR с Tx CH340 .
как Вы написали, так это и понятно. Это только Вы тут выпендриваетесь, написав сначала, что подключили только Tx и получили двусторонний обмен, а потом, оказывается, не только Tx подключили (когда Вам на это указали)...
 

pvvx

Активный участник сообщества
Ви будити смеяться, но как то все это мне до боли напоминает Виставку Достижений Народного Хозяйства
Даже не смешно - именно так и возникло такое кол-во вариантов программаторов для Telink чипов.
Было испробовано на всём. Есть даже вариант на Arduino к ESP8266. Но не доведен до финальной стадии - нет пользовательской интерфейсной части, только сам код на ESP в виде тестовых процедур. И там так-же - два варианта - на I2S и на UART.
-> выставку Достижений Народного Хозяйства можно продолжать ещё долго.
Мне понравился сам протокол Swire от Telink - 1 провод и 2 мегабита в default.
 

aloika

Active member
ИНФОРМАЦИЯ К РАЗМЫШЛЕНИЮ:
  • Ни один загрузчик, т.е. bootloader.bin у меня никогда не грузился в Flash.
  • Никаких UART давно не использую. Всё работает на TLSR8269 c USB и аппаратным SWM-SWS, программа универсальная и поддерживает вcю линейку TLSR, включая полное отключение потенциалов для страта чипов с защитой от штатного BDT-evk, и автоматическое получение данных за ms периоды активности чипа. Т.е. отрабатывает и как SEGGER RTT + чего нет у JTAG - может автоматически сопровождать постоянно отключающийся в сон MCU.
Но в используемом хламе остался один вариант, который просто собран на плате на базе модуля с TLSR8253 - вот там установлен USB-UART для связи с чипом TLSR8253, а далее опять аппаратный SWM-SWS. Программа у него аналогичная с TLSR8269, а UART использован по причине отсутствия выводов USB в корпусе TLSR8253.
Читал, но так и не понял до конца. У меня есть TLSR8253, это целевой модуль, его хочу прошивать. Есть TLSR8269, сейчас в нем прошивка EVK, кое-как работает с BDT. Чтобы использовать TLSRPGM я должен перешить как-нибудь 8269 новой прошивкой, подключить, как написано:

PA7 - SWM
PB1 - External Reset
PC4 - Power Enable

1. И будет работать TLSRPGM (скрипт на питоне), да?

2. Если в модуле TLSR8269 (E104-BT10) прошивка EVK - она в одном из вариантов отключает SWS и никак его теперь не перешить, используя только usb-uart? (если так, то другой E104-BT10 придется заказать, ждать)

3. Ножка Power Enable - должна идти на какой-то ключ, коммутирующий питание целевого модуля? Или прямо от этой ноги и питать (если по нагрузочной способности пройдет)?
 
А USB соединение я использую для отладки - мне так проще писать, т.к. код команд и последовательность одинаковы в UBIA и для BLE, но BLE медленнее.
А в том "ардуино-образном примере", который вы мне давали, ну для ds3231, код обновления по USB отсутствует?
 

pvvx

Активный участник сообщества
Читал, но так и не понял до конца. У меня есть TLSR8253, это целевой модуль, его хочу прошивать. Есть TLSR8269, сейчас в нем прошивка EVK, кое-как работает с BDT. Чтобы использовать TLSRPGM я должен перешить как-нибудь 8269 новой прошивкой, подключить, как написано:

PA7 - SWM
PB1 - External Reset
PC4 - Power Enable

1. И будет работать TLSRPGM (скрипт на питоне), да?
Да.
Там есть вариант и USB-UART-TLSR8253->Swire
2. Если в модуле TLSR8269 (E104-BT10) прошивка EVK - она в одном из вариантов отключает SWS и никак его теперь не перешить, используя только usb-uart? (если так, то другой E104-BT10 придется заказать, ждать)
Прошить при включении питания.
3. Ножка Power Enable - должна идти на какой-то ключ, коммутирующий питание целевого модуля? Или прямо от этой ноги и питать (если по нагрузочной способности пройдет)?
Это как вам нравиться...
 

pvvx

Активный участник сообщества
А в том "ардуино-образном примере", который вы мне давали, ну для ds3231, код обновления по USB отсутствует?
А я что помню?
И там не код, а вызов при старте процедуры проверки пина SWS на "0" и загрузки кода из 0x7100/72800.
C:
#include "proj/tl_common.h"
#define FLOADER_FADDR1 0x71000    // usbfloader
#define FLOADER_FADDR2 0x72800    // uartfloader
#define FLOADER_SIZE  0x01000

void load_floader(void) {
    uint32_t * p = (uint32_t *)FLOADER_FADDR1;
    if(gpio_read(GPIO_SWS) == 0) {
        if (p[2] != 0x544c4e4b) {
            p = (uint32_t *)FLOADER_FADDR2;
            if (p[2] != 0x544c4e4b)
                return;
        }
        irq_disable();
        memcpy((void *)0x808000, (void *)p, FLOADER_SIZE);
        REG_ADDR8(0x602) = 0x88;
        while(1);
    }
}
 

DOMOB

New member
Вы писали на другом обсуждении в этом форуме что раздобыли новые модули E180-Z6907A, построенные так же на этом чипе tlsr8269 (правда пока не разбирал, не знаю там выводов столько же либо больше/меньше под жестяным кожухом). У вас есть замечательный проект программатора EVK на базе модуля E104-BT10. Но этот модуль, как будто китайцы поняли фишку и перестали продавать. Нет ни одного предложения на Aliexpress, официальный магазин ebyte в переписке отписался, что сделаем, если купите от 500шт.
Но попробовал залить проект на зелёный модуль E180-Z6907A, он по сути закирпичился. Ну бог с ним, мои 200 рублей спасут от фейла других пользователей. Задним числом только начал читать, оказалось там кварц на другую частоту внутри модуля, наверно поэтому SWS больше не слышит правильно.
Но у людей программаторы будут гореть, и нужны будут новые. Если у вас есть исходники, есть ли планы на перенос проекта ЕVK на другой доступный модуль с Telink чипом, или на этот? Или расшарить как то лично. Я уверен если проект написан на Telink SDK, вся правка будет состоять в правке макроса на нужную частоту внешнего клока, который будет влиять на вызов clock_init().

Даешь сообществу дешёвый программатор!

1657797971964.png
 

DOMOB

New member
Можно конечно после прошивки уже феном отпаять крышку и кварц, и впаять любой другой на проводах на 16 МГц (если дело только в нём окажется). Компоненты улетят, не страшно, там нам надо по сути только чтобы USB, кондеры по питанию и линии кварца запаянные остались, но до этого не хотелось бы дело доводить.
 

pvvx

Активный участник сообщества
Но у людей программаторы будут гореть, и нужны будут новые. Если у вас есть исходники, есть ли планы на перенос проекта ЕVK на другой доступный модуль с Telink чипом, или на этот?
Для EVK я создаю бинарный патч к Firmware_v3.x.bin и никаких исходников у меня нет.
Все варианты пропатченных файлов EVK для работы на TLSR8269F512ET32/TLSR8269F512AT32 (в малом корпусе, 32 ноги) - тут
TLSR8269F512ET48/TLSR8269F512AT48 в корпусе с 48 ног в продаже на али никогда не было или я не нашел.
Патчем переконфигурируются выводы и частота кварца...
 

Вложения

pvvx

Активный участник сообщества
Даешь сообществу дешёвый программатор!
Куда уже дешевле, чем полностью готовый TB03F-KIT или TB04F-KIT с али за 200..230 руб?
Код и питон для превращения в самый скоростной программатор с аппаратным Telink Swire - TLSR SWire programmer
 

doctor64

New member
Код и питон для превращения в самый скоростной программатор с аппаратным Telink Swire - TLSR SWire programmer
Пытаюсь поэкспериментировать и чтото не выходит. в модуль TB-03F залил прошивку программатора, соеденил с TB-04 SWS<->SWS, GND<->GND, 3.3<->3.3, но никаких ответов не получает
============================
>python TlsrPgm.py -s -pcom3 i
=======================================================
TLSR82xx TlsrPgm version 27.04.21
-------------------------------------------------------
Open com3, 230400 bit/s... ok
PGM: ChipID: 0x5562 (TLSR825x), ver: 0.0.0.1
swdiv 5, addrlen 3, swbuf [5a 00 06 02 00 05], pwr On
SWire bit rate: 0.9600 Mbits/s
=== PreProcess ========================================
CPU Stop... ok
=== Process ===========================================
Error get Chip ID! (102)
 

doctor64

New member
Спасибо, я тормоз :) Заработало.
=======================================================
TLSR82xx TlsrPgm version 27.04.21
-------------------------------------------------------
Open com3, 230400 bit/s... ok
PGM: ChipID: 0x5562 (TLSR825x), ver: 0.0.0.1
swdiv 5, addrlen 3, swbuf [5a 00 06 02 00 05], pwr On
SWire bit rate: 0.9600 Mbits/s
=== PreProcess ========================================
CPU Stop... ok
=== Process ===========================================
Chip TLSR825x ID: 0x5562, rev: 0x02
CPU PC=0x00000000 ([0x0602] = 0x05)
Flash JEDEC ID: 0xC86013, Size: 512 kbytes
-------------------------------------------------------
FLASH UID:
000000: 45 41 42 33 39 37 06 ff 00 25 00 5d 01 ec ff ff
000010: c8 01 ff ff ff ff ff ff ff ff ff ff ff ff ff ff
-------------------------------------------------------
FLASH:
000000: 26 80 00 00 00 00 00 00 4b 4e 4c 54 00 08 88 00
000010: ce 80 00 00 00 00 00 00 a8 28 00 00 00 00 00 00
-------------------------------------------------------

Но читать отказывается
python TlsrPgm.py -w -t 1 -a 20 -c -pCOM3 -b3000000 rf 0 0x80000 ff_512k.bin
=======================================================
TLSR82xx TlsrPgm version 27.04.21
-------------------------------------------------------
Open COM3, 230400 bit/s... ok
PGM: ChipID: 0x5562 (TLSR825x), ver: 0.0.0.1
swdiv 5, addrlen 3, swbuf [5a 00 06 02 00 05], pwr On
SWire bit rate: 0.9600 Mbits/s
Set Speed UART PGM board 3000000 bits/s... ok
ReOpen COM3, 3000000 bit/s... ok
=== PreProcess ========================================
Hard reset Ext.MCU 5 ms... ok
Activate 20 ms... ok
CPU PC=0x00000000
CPU Stall... ok
=== Process ===========================================
Outfile: ff_512k.bin
Read Flash from 0x000000 to 0x080000...
Error Read Flash data at 0x000000!
 

pvvx

Активный участник сообщества
А 3Mbit/s не все USB-UART тянут. Типовые китайские USB-UART в пределе дают 230400 Buad для непрерывного потока UART. При большей скорости необходимо аппаратно контролировать занятость сигналами RTS/CTS.
 
Сверху Снизу