• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Обсуждение TLSR8269

pvvx

Активный участник сообщества
В общем случае идея такая
...
Вам уже говорилось месяц назад - реализовать swire можно на чем угодно за день и EVK не нужен.
И то, за день - это было до того как уже расписал всё про swire. Ныне на это надо полчаса :p
 

pvvx

Активный участник сообщества
Если ещё выкинуть исходники готовых CDC дров на github и прочих USB к TLSR, то вообще будет весело с TLSR.
Но это не моё - не люблю оформлять и некогда поддерживать... У меня "варится" не только TLSR.
 

nikolz

Well-known member
Вам уже говорилось месяц назад - реализовать swire можно на чем угодно за день и EVK не нужен.
И то, за день - это было до того как уже расписал всё про swire. Ныне на это надо полчаса :p
Я вам верю.
Но предпочитаю делать сам.
Поэтому я взял EVK изучил протоколы
нашел те картинки которые потом выложили в форум в том числе и вы
Пока все сделал собственными силами и прочитал документацию ( если посмотрите то месяц назад писал что протокол накорябал на ESP)
Но в отличии от вас-профессионала, я -любитель Вашего оборудования нет и не пашу 30 лет на разработке железа на микропроцессорах
поэтому так как вы быстро не делаю но делаю как мне нравится.
------------------------
Поэтому меня интересуют прикладные вопросы и конкретная информация, если жаба не душит Вас,
а не Ваше самовосхваление.
 

nikolz

Well-known member
Вариант с адаптером делает не нужными не только EVK но и вашу поделку на STM32,
которая тоже не будет широко использоваться (как и ваша свалка и ваши поделки на RTL).
 

pvvx

Активный участник сообщества
Вот вам очищенные исходники floader от TlsrTool.
Для сборки нужен только SDK Telink.
 

Вложения

pvvx

Активный участник сообщества
Вариант с адаптером делает не нужными не только EVK но и вашу поделку на STM32,
которая тоже не будет широко использоваться (как и ваша свалка и ваши поделки на RTL).
Сильно ошибаетесь - всё перечисленное используется :p
Есть земля, на ней растет трава, траву едят .... Круговорот. А перечисленное есть звено этого.
Иначе жизни нет, т.е. совсем как у вас. :p
 

nikolz

Well-known member
Сильно ошибаетесь - всё перечисленное используется :p
Есть земля, на ней растет трава, траву едят .... Круговорот. А перечисленное есть звено этого.
Иначе жизни нет, т.е. совсем как у вас. :p
Вы постоянно в заботе о других. Всегда думаете о народах.
Как я Вам сочувствую.
----------------------------------------
Василий Иванович, а ты армией командовать могёшь?
- Могу.
- А фронтом?
- Могу, Петька, могу.
- А всеми вооружёнными силами Республики?
- Малость подучиться, смогу и вооружёнными силами.
- Ну, а... в мировом масштабе, Василий Иванович, совладаешь?
 

pvvx

Активный участник сообщества
Описание как работать с Floader.


Предварительно по swire посылается остановка/сброс CPU - SwireWrite(0x006f, 0x20, 1).

Далее загружается бинарник в адрес 0x8000 - SwireWrite(0x8000, floader, sizeof(floader) ).

После загрузки запускается CPU - SwireWrite(0x0602, 0x88, 1).

В бинарнике floader.bin по адресу 4 расположен указатель на адрес структуры обмена командами EXT.

Далее общаемся c работающим floader по swire через эту структуру EXT в памяти TLSR8269.

Код:
typedef struct {
                volatile u32 faddr; // адрес Flash или другого устройства
                volatile u32 pbuf; // адрес буфера в памяти TLSR
                volatile u16 count; // кол-во байт обработки
                volatile u16 cmd; // команда Floader-у
                volatile u16 iack; // оповещение о смене команды по swire
                volatile u16 oack; // оповещение Floader-а о исполнении команды
} sext;
sext ext;
По старту Floader-а данная структура заполняется:
  • ETX.faddr = Flash ID
  • ETX.pbuf = адрес буфера в памяти TLSR
  • ETX.count = максимальный размер буфера
  • ETX.cmd = команда чтения ID Flash
  • ETX.iack = номер версии Floader
  • ETX.oack = 0

После старта Floader, через задержку в пару ms, по swire считываем EXT.
Проверяем размер ETX.count, FlashID, адрес буфера, номер версии Floader...

Если хотим подать команду чтения Flash, то изменяем:
  1. ETX.faddr = адрес чтения Flash,
  2. ETX.count = сколько хотим прочитать за раз (см. ограничение буфера)
  3. ETX.cmd = FLASH_READ_CMD
  4. ETX.iack увеличиваем на 1
ETX.pbuf не меняем (будем менять - это надо только при хитрых мультизадачах).

Передаем структуру ETX по Swire за раз, но не всю, без последних 2-х байт ETX.oack.

В цикле читаем по swire слово ETX.oack и ждем когда оно изменится от прошлого (изменяется на +1).
Это значит floader выполнил команду.

Читаем по swire буфер по адресу ETX.pbuf и размером ETX.count.
Всё – заданный кусок Flash прочитан.
 

pvvx

Активный участник сообщества
Вы постоянно в заботе о других. Всегда думаете о народах.
Как я Вам сочувствую.
Человек общественное животное.
Есть трутни, есть зомби, есть ...
Вы чъих будете?
(Я вот человек, который строит под себя мир и часто чужими руками за счет малых подач... :p )
 

pvvx

Активный участник сообщества
И чтобы Гуру @nikolz не расстраивался, то в TlsrTool давно вписано такое:
upload_2019-10-10_20-23-47.png
Нажал FFread на чтение 16 байт :) Но читать/писать не отказывается.
Распределение на оптимум по скорости в программу не вписано, может потом... Пока не требовалось.

Более мелкие операции быстрее сделать непосредственно по swire, путем копания в регистрах чипа.
Например стирание всей Flash - это всего подать команду стирания Flash через регистры SPI = несколько коротких транзакций по swire, а не загрузка килобайтного лоадера.

Другие опции в TlsrTool вписываются пор мере моей нужды.
 

pvvx

Активный участник сообщества
А вот в загрузчике программы cstartup_8269.S закоментированная защита от EVK
Код:
    .org 0x20
__reset:
@    tloadr        r0, DAT0 + 36
@    tmov        r1, #1024        @ set sws to GPIO
@    tstorer     r1, [r0, #0]
Но не от TlsrTool :)
 

nikolz

Well-known member
Человек общественное животное.
Есть трутни, есть зомби, есть ...
Вы чъих будете?
(Я вот человек, который строит под себя мир и часто чужими руками за счет малых подач... :p )
Русский язык - могучий язык
С его помощью можно изложить любую чушь и делать вид что это что-то значит.
Как может человек (животное) быть трутнем (насекомым) и зомби( придуманным персонажем страшилок для дебилов)
---------------
Все замечательно когда Вы излагаете технические вопросы по микропроцессорам,
но просто кошмар, какой-то,
когда Вы начинаете излагать свои домыслы на гуманитарные темы.
-----------------------------
 

nikolz

Well-known member
pvvx,
Признайтесь , положа руку на библию:
Если бы я Вас так не раздражал,
Вы бы и десятой доли не сделали того что есть.
-------------------
"О, сколько нам открытий чудных
Готовят
просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг"
 

pvvx

Активный участник сообщества
pvvx,
Признайтесь , положа руку на библию:
Если бы я Вас так не раздражал,
Вы бы и десятой доли не сделали того что есть.
-------------------
"О, сколько нам открытий чудных
Готовят
просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг"
Посмотрите начало тем ESP8266, RTL, ... Там вас не было, а сделано было больше за тот-же период.
В данной теме есть большая проблема - безграмотный в электронике и программировании nikolz. На описание вам простейших и уходит всё время... А за это время вполне возможно было-бы создать нормальные описания по Tlsr и их глюки и баги в чипе (они есть - уже нашел кучку...).
 

nikolz

Well-known member
Посмотрите начало тем ESP8266, RTL, ... Там вас не было, а сделано было больше за тот-же период.
В данной теме есть большая проблема - безграмотный в электронике и программировании nikolz. На описание вам простейших и уходит всё время... А за это время вполне возможно было-бы создать нормальные описания по Tlsr и их глюки и баги в чипе (они есть - уже нашел кучку...).
Мы говорим не про ESP а про TLSR.
--------------------------
Посмотрите начало этой темы я создал ее в августе.
а эту
https://esp8266.ru/forum/threads/ochen-umnyj-dom.4518/
в сентябре
-------------------
Что же касается ESP, то там я вообще просто погулять вышел.
А про RTL - верно это Вы кричали на форуме что убили ESP
А я лишь написал, что RTL не получит такого распростанения как ESP
---------------------------
У вас опять приступ хамства и позерства, значит злитесь.
 

pvvx

Активный участник сообщества
Забудем о глупом Гуру @nikolz, он только темы ни о чем создает :)

По мере копаний с USB1.1 у TLSR8269 вылезло, что FIFO у точек на RX в 256 байт, на TX 64 байт. Это ограничивает максимальную скорость по USB. В номинале у USB1.1 всего 64 килобайта в сек - 64 байта на строб в 1 мс.
Со стандартным драйвером USB-COM (Микрософт), в режиме CDC, TLSR8269 работает плохо. Это связано со спецификой аппаратной части USB у TLSR8269. Host посылает непрерывно и сразу пачку блоков по 64 байта, а USB у TLSR8269 их проглатывает и не дает ACK или прерываний на блок в 64 байта. Только на 256, хотя везде выставленно 64. (Может ещё где-то что-то можно установить в каком из тысячи регистров, но документации нет). Выходит беда - на каждую посылку 64 байт комп передает от 4..5 блоков по 64 байта. При большем запросе к COM порту в компе пачка увеличивается и всегда комп передает лишние, без подтверждения от TLSR, что уменьшает максимальный трансфер. Я переписал дрова в TLSR и ограничение приема только по объему памяти, но выйти за скорость более 64000 байт в сек на ответ (TX к компу) не выходит. Как и пишут - у USB1.1 в CDC это иногда сделать невозможно.

Да и вообще CPU у TLSR тормоз и имеет ужасный код. В помойке такие архитектуры давно.
 

pvvx

Активный участник сообщества
Видимо по этим причинам Telink забросил коды USB CDC дров, оставил кривые потуги (куски нерабочих исходников) со старой версией так называемой OS, и не стал использовать.
Т.к. обещал покопаться с USB у TLSR, то вывод пока такой:
Из всего описанного вытекает, что USB TLSR можно использовать как примитивные HID устройства USB1.1 с редкими запросами/ответами блоками по 64 байта в несколько мс и не более.
 
Сверху Снизу