Обсуждение TLSR8269

pvvx

Активный участник сообщества
Все варианты Telink и его утилит уже перепотрошил и реверснул - тупо там всё и не подымет он все камушки. Могу забиться на что :p
Короче можно книжку уже писать о кривизне EVK и утилит от Telink.
Сделал специальную игрушку - камень из TLSR8269. Он уже и EVK был и кварц у него теперь внешний и регулируемый :p
 

pvvx

Активный участник сообщества
Чтобы подтвердить вашу тупость - расскажите, что надо сделать на TLSR8269 прошитым прошивкой из оф. sig_mesh_tools_release_2.9 8269_mesh_master_dongle.bin, чтобы заработал USB?
Думаю что гадать будете ещё годы :p
Данный пример успешно собирается и идентичен вложенному 8269_mesh_master_dongle.bin.
 

pvvx

Активный участник сообщества
Всё - несчастье.... :mad: Эта версия игры кончилась...
Кирпич "разкирпичился" в автоматическом режиме (без участия человека) и встал на команде остановки CPU по swire...
Теперь тупо через доступ к регистрам SPI дать команду стирания и затем записать более качественное окирпичивание... :)
 

nikolz

Well-known member
А нифига - вы опять врете! :p
Во первых у вас нет TLSR8269.
Я специально сделал "камень" из TLSR8269.
Вот последние программирования его 100-й прошивкой:
Посмотреть вложение 7969

Не поднимается он EVK и вообще пока ничем.
Но я придумал то, чего нет у EVK и не будет. Продам за дорого Telink-у :p
извинитесь за врете, покажу TLSR8269,
иначе - хамите перед своей женой.
 

nikolz

Well-known member
pvvx,
смешно читать как Вы здесь испражняетесь.
Право дело - как дите малое.
 

pvvx

Активный участник сообщества
pvvx,
смешно читать как Вы здесь испражняетесь.
Право дело - как дите малое.
Я тут по делу - распространяю информацию. А вы уже зеркало смотрите...
Вот сейчас слепил читалку внутренней Flash по swire для случаев если кто попытается защитить прошивку в TSLR и вырубит в boot все внешние концы (EVK с таким не справится - скорости не хватит).
Если не превышать скоростей то swire на ~1.25 мегабита один запрос-установку регистра SPI контроллера выходит такая борода:
upload_2019-9-28_19-21-42.png
На CS так-же. Долго это выходит, но всё-же читает внутреннюю Flash блоками по 16 байт...
Но на EVK nikolz-а в таком режиме уйдут часы из-за его умелых замеров длительности импульсов swire :)

В SDK аналогичное описано в скриптах rf.tls и wf.tls (чтение/запись flash через swire).
 

nikolz

Well-known member
Я тут по делу - распространяю информацию. А вы уже зеркало смотрите...
Вот сейчас слепил читалку внутренней Flash по swire для случаев если кто попытается защитить прошивку в TSLR и вырубит в boot все внешние концы (EVK с таким не справится - скорости не хватит).
Если не превышать скоростей то swire на ~1.25 мегабита один запрос-установку регистра SPI контроллера выходит такая борода:
Посмотреть вложение 7977
На CS так-же. Долго это выходит, но всё-же читает внутреннюю Flash блоками по 16 байт...
Но на EVK nikolz-а в таком режиме уйдут часы из-за его умелых замеров длительности импульсов swire :)

В SDK аналогичное описано в скриптах rf.tls и wf.tls (чтение/запись flash через swire).
Благодарю за заботу, но нахрена мне это надо?
Слепили воровскую отмычку и хвалитесь.
Докатились до цугундера.
 

nikolz

Well-known member
Вот ответ чисто установленного SDK на Win10 (запуск иконки Telink IDE):
Посмотреть вложение 7962
На Win7 - там сообщение длиннее, но о том-же, что ему не нравится версия java. Подавай какую-то древнюю...
Ну а далее и сборка не пашет.
Так што давайте описывайте, как же народу его запустить... :)
Показываю картинку работы SDK на Win10.
Установилось без проблем.
upload_2019-9-29_7-45-33.png
аналогично все работает и на Win XP
Успехов в изучении основ работы на винде.
Суетливый Вы наш.
 

nikolz

Well-known member
pvvx,
специально для Вас показываю 8269 но не все а только 4 шт.
upload_2019-9-29_8-14-38.png
Хамящий Вы наш.
-----------------------------
Ну теперь твоя душенька довольна?
 

pvvx

Активный участник сообщества
Ну теперь твоя душенька довольна?
Нет - не довольна.
Ни одного рабочего модуля не видно :p
Ну накупили дешевых модулей, а работать с ними так и не пробовали. Попробуете - узнаете, что потребуется. Тогда и поймете что, за чем и чего не хватает в EVK.
А eclipse в SDK всё равно не рабочий и конфликтует:
SDK\jre\bin>java.exe -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) Client VM (build 25.45-b02, mixed mode)
 

pvvx

Активный участник сообщества
@nikolz - Киньте бинарничек из E104-BT10-G. А то у меня пока одни E104-BT10-N, а другие ещё не пришли.
 

pvvx

Активный участник сообщества
Т.е. на это вы ответить не можете:
Вот ответ чисто установленного SDK на Win10 (запуск иконки Telink IDE):
Посмотреть вложение 7962
На Win7 - там сообщение длиннее, но о том-же, что ему не нравится версия java.
С бубном запускается, но как надо стучать в бубен пока оставим засИкреченным :p
 

pvvx

Активный участник сообщества
И как там USB с модулями E104-BT10-G? Вы их в лампочки будете вставлять? :)
Что сразу не купили готовую лампочку/люстру с ними? :) :) :)
 

pvvx

Активный участник сообщества
@nikolz - Киньте бинарничек из E104-BT10-G. А то у меня пока одни E104-BT10-N, а другие ещё не пришли.
Впрочем и так ясно, что ответа от @nikolz никогда не будет.
Пришла ещё пачка E104-BT10-N,
upload_2019-9-29_11-42-36.png
upload_2019-9-29_11-42-48.png
а вот E104-BT10-G пока в пути...
---
Странно работает установка скорости swire в регистре reg_swire_clk_div (REG_ADDR8(0xb2)). При задании другого делителя, вроде выходит переключение скачками, а не плавно...
При кварце 16 MHz в модулях E104-BT10, по молчанию имеем такой расклад CLK swire (так отвечает модуль):
upload_2019-9-29_11-52-5.png
Скорость шины запроса swire (к модулю) может варьироваться в достаточном пределе, а ответ чип дает на своей установке reg_swire_clk_div.
По этому сначала передаем последовательность установки скорости (5a 00 b2 00 делитель ff), а затем уже читаем. Но вот пока непонятна зависимость от чего тактируется swire и почему возникают нелинейности шага в reg_swire_clk_div и дискретностей тактирования самой swire.
В доках про это молчек.
 

pvvx

Активный участник сообщества
Telink в своих утилитах и документации предлагает ручную установку синхронизации скоростей swire. Автоматом сделать не смогли. Я ковыряю свой адаптер для swire на STM32F103C8T6, как наиболее доступный для всех ”самодельшиков”. На нем имеется ограничение для CLK swire в 32 MHz – это 32/5 = 6.4 mbps для swire master. Для устойчивости приема на стробе в 32 MHz имеем ограничение на приемную CLK swire в 1.5 раза, т.е. прием swire до 32/5/1.5=4.266667 mbps.

Городить триггеры или PLL и прочую логику нельзя – адаптер должен смочь собрать любой с максимальной сложностью в виде перепрошивки чего-то типа китайского STLinkV2 или какой мини платки с STM32F103C8T6 + пару проводов. Да и затраты не должны превышать 100 рупь. Пока выходит, что кроме проводков нужен ещё резистор…
 

pvvx

Активный участник сообщества
После этих затрат на "программатор до 100 рупь" из модуля E104-BT10-N/G любой участник сможет получить из него EVK. Но это необязательно, т.к. если уже есть "программатор до 100 рупь", то EVK не требуется. После работы "программатора до 100 рупь" (заливки в модуль программы) далее сами модули программируются по USB... Ну и "программатор до 100 рупь" нужен для раскирпичивания, с чем EVK не справляется.
 

pvvx

Активный участник сообщества
Всё - корявая beta версия готова. Стучать в личку.
upload_2019-9-30_1-22-31.png
 

pvvx

Активный участник сообщества
Работает через эмуляцию COM порта. Т.е. возможно использование Python с pyserial.
Можно работать и в программе терминала, правда в HEX:
upload_2019-9-30_1-33-10.png
Тогда в COM-порт вводятся байты, как для передачи в swire.
Старты и стопы на передачу STM32 разгребает сам, как и декодирование приема.
В примере: 5A 06 BC 80 ff ff ff ff ff - будет передано на swire '5A 06 BC 80' (START, addr, RW_ID), принято 4 байта, передан END.
На приеме вместо 1 принятого байта выдается 2 байта (по swire передается 10 бит на байт):
Байт1:
Если принят (декодирован) успешно, то два бита: Бит1 = cmd бит, Бит0 = end бит, остальные = 0.
Если не успешно (не было приема/строба и т.д.) то данный байт = 0xFF.
Байт2:
Сами 8 бит данных.
Пока такой протокол, но кому надо тот сможет поменять в исходнике программы STM32F103C8T6...
За всеми исходниками тоже стучаться в личку, т.к. они ещё не прибраны и не приукрашены для выкладываний.
 

pvvx

Активный участник сообщества
От платки с STM32 используются 3 вывода:
1. SWO Выход swire (GPIO_PA7 STM32F103): на резистор в 750 Ом и на SWI.
2. SWI Вход swire (GPIO_PA6 STM32F103): на SWS модуля TLSR8269
3. RST выход c OK: на Reset модуля TLSR8269.
Светодиод (GPIO_PС13 STM32F103) мигает при транзакции.
RST необходим для активации убитого или ещё какого замученного модуля.
Пример как это работает:
Activate.gif
Данную процедуру, назовем "Activate", выполняет сам STM32 по спец команде.
Доп команды:
[0x55,0x00] - притянуть RST к GND (в "Activate" не встроена, должна исполняться до него)
[0x55,0x01] - отпустить RST (в "Activate" уже встроена)
[0x55,0x02,nnnn] - "Activate", где nnn - кол-во циклов (65535 циклов = 3.3 секунды)
Для текущих модулей достаточно 520.
За это время конденсатор на сбросе успевает зарядиться (после отпускания RST).

В программе, после нажатия "Activate":
upload_2019-9-30_2-18-18.png
Останавливает CPU модуля до исполнения любой команды.

Считаем PC из TLSR8269 после "Activate":
upload_2019-9-30_2-19-49.png
Адрес PC = 0x00000000.
Скороcть swire из модуля указана в строке состояния и выставлена в меню программы после "Activate".
Далее можно прочитать Flash, стереть Flash, записать рабочую прошивку и т.д.

Help-а в программе нема и не будет никогда: При подносе курсора - на все пипки вылезают всплывающие подсказки.
Я не собираюсь раскрашивать ничего - пусть берется и занимается кто-то другой для выкладывания "в народ".
Для этого все исходники отдам если постучаться в личку...
 
Сверху Снизу