Обсуждение Программатор для 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);
    }
}
 
Сверху Снизу