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

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

pvvx

Активный участник сообщества
Никаких дополнительных функций от TLSRPGM в оригинальном Telink BDT не обнаружено. У оригинала низкая скорость обработки функций, работать с устройствами переходящими в sleep режимы не умеет, cложности с дописыванием дополнительных функций...
Единственное отличие - больше компонентов и сразу всё в готовой коробке, не требующей включения 3D принтера...
 

Pristavkin

New member
Никаких дополнительных функций от TLSRPGM в оригинальном Telink BDT не обнаружено. У оригинала низкая скорость обработки функций, работать с устройствами переходящими в sleep режимы не умеет, cложности с дописыванием дополнительных функций...
Единственное отличие - больше компонентов и сразу всё в готовой коробке, не требующей включения 3D принтера...
А правильно ли я понимаю, что TLSRPGM работает на оригинальной (близкой к оригинальной) прошивке от BDT и в итоге поддерживается в телинковской среде разработки?
 

pvvx

Активный участник сообщества
А правильно ли я понимаю, что TLSRPGM работает на оригинальной (близкой к оригинальной) прошивке от BDT и в итоге поддерживается в телинковской среде разработки?
Нет. Там своя прошивка, сделанная даже не по подобию, а на основе нужного мне функционала.
 

pvvx

Активный участник сообщества
TLSR8269-EVK - это патченная прошивка от старой версии BDT для работы на модуле E104-BT10-G/N (ранее продавались на али).
 

pvvx

Активный участник сообщества
Как модифицировать на основе новой прошивки 4.5?
Надо: Дизасм в Ghidra, заменить команды обращения к портам GPIO и стартовую настройку частоты кварца.
Но какой смысл тратить столько времени, если есть TLSRPGM ?
А так же ныне готовый BDT продается на али не по сверх цене (не десятки т.руб), как это было четыре года назад.
 

Pristavkin

New member
Нет. Там своя прошивка, сделанная даже не по подобию, а на основе нужного мне функционала.
Ок, понятно.
А что нужно знать о новом чипе чтобы добавить его в TLSRPGM? У меня есть текущаяяя прошивка от моей клавиатуры, даташит на контроллер. Даташит средней информативности правда, но табллица адресов там по крайней мере есть, с Ghidr-ой на первый взгляд сходится...
 

pvvx

Активный участник сообщества
Через Telink SWire программатор работает аналогично JTAG. Т.е. пишется и читается шина CPU, как если бы это было обращение (чтение или запись по любому адресу) самого CPU.

Для обращения к Flash через Swire пишутся и читаются регистры SPI контроллера.

Если адреса внутренних контроллеров и их регистры другие, то в итоге необходимо переписать все функции обращения к ним.
Но главное необходимо узнать адреса и функции регистров контроллера управляющего самим CPU для останова и пуска CPU.
Иначе во время работы с контроллерами с ними может одновременно работать и CPU. Будет бардак. Надо остановить CPU.
 

pvvx

Активный участник сообщества
Формат команд по Swire простейший – передаются адрес и данные. В заголовке команды есть бит указывающий что это команда чтения. Данные читаются и пишутся побайтно. Адрес при этом инкрементируется автоматически, позволяя читать или писать любой объем данных с указанием только начального адреса - примерно как в SPI или I2C.

Если у вас возникли такие вопросы - вам следует купить BDT и не мучаться.
 

pvvx

Активный участник сообщества
Купленный BDT теперь валяется без нужды в общем хламе. Т.к. это никчемная вещь. Своим программатором пользоваться удобнее – быстрее пишет и читает. И некоторые люди, так-же купившие BDT, аналогично – используют вариант TLSRPGM.
 

Pristavkin

New member
Если адреса внутренних контроллеров и их регистры другие, то в итоге необходимо переписать все функции обращения к ним.
Но главное необходимо узнать адреса и функции регистров контроллера управляющего самим CPU для останова и пуска CPU.
Иначе во время работы с контроллерами с ними может одновременно работать и CPU. Будет бардак. Надо остановить CPU.
Хм.
Адрес SPI контроллера в даташите есть, таблица регистров вроде тоже. В выходные поковыряю еще прошивку в Ghidr-е, по идее там должны быть какие-то обращения к флешу, т.к. клавиатура обновляется через USB HID, и если я не ошибаюсь делает это без отдельного бутлоадера, т.е. во время обновления прошивка сама переписывает себя. Думаю что сравнение прошивки и даташита поможет понять насколько даташит соответствует действительности.

А вот как остановить CPU - вопрос, пока не нашел этого в даташите, думаю и в прошивке этого не будет...
 

pvvx

Активный участник сообщества
А вот как остановить CPU - вопрос, пока не нашел этого в даташите, думаю и в прошивке этого не будет...
SDK -> include -> описание регистров -> Stall CPU
C:
#define reg_pwdn_en REG_ADDR8(SC_BASE_ADDR + 0x2f)

enum
{
    FLD_SUSPEND_EN_O     = BIT(0),
    FLD_RAMCRC_CLREN_TGL = BIT(4),
    FLD_RST_ALL          = BIT(5),
    FLD_STALL_EN_TRG     = BIT(7),
};

/**
* @brief       This function serves to reboot system.
* @return      none
*/
_always_inline void sys_reset_all(void)
{
    reg_pwdn_en = 0x20;
}
 
Сверху Снизу