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

Обсуждение TLSR8269

pvvx

Активный участник сообщества
Другие функции MP3-декодера ещё легче. Так что - 2КБ кеша должно вполне хватить для них.
Не хватает ни памяти ни производительности.
Даже STM32F10x еле тянет - декодирование фрейма к 20 мс при 36 МГц (FLASH_LATENCY=0)
Мне он не нужен. Спрашивал nikolz. Ему и карты в руки.
А нафига тогда советуете сделать то, что не влезает? Забавы ради?
 

pvvx

Активный участник сообщества
@rst - Прочувствуйте разницу
Processor / SystemDhrystone MIPS or MIPS, and frequencyD instructions per clock cycleD instructions per clock cycle per coreYearSource

ARM Cortex-M045 MIPS at 50 MHz0.90.92009[81]
ARM Cortex-M3125 MIPS at 100 MHz1.251.252004[67]
1.25 к 0.9 только там.
И не забудьте переписать ассемблерные вставки MP3 декодера на asm к TLSR8269 :)
 

rst

Member
И не забудьте переписать ассемблерные вставки MP3 декодера на asm к TLSR8269 :)
И...?
В своё время я переписал "ассемблерные вставки" с "Classic ARM" на "Thumb2". Когда портировал этот декодер. Не вижу проблемы. Если для вас это проблема - очевидно эта задача не для вас. :confused:
 

pvvx

Активный участник сообщества
В своё время я переписал "ассемблерные вставки" с "Classic ARM" на "Thumb2". Когда портировал этот декодер. Не вижу проблемы. Если для вас это проблема - очевидно эта задача не для вас. :confused:
Да, эта задача только для вас - но сначала вам надо создать документацию на данный CPU.
А остальные пока посидят всторонке :p
А с чего решили что "не влезает"?
Из объемов памяти и производительности.
Ну что-то фиктивное наверняка влезит, но не взлетит :)
 

pvvx

Активный участник сообщества
В своё время я переписал "ассемблерные вставки" с "Classic ARM" на "Thumb2". Когда портировал этот декодер. Не вижу проблемы.
Вот тут для чел начал и бросил работу по разбору реальных команд данного T32 CPU.
Надеюсь вы продолжите и возможно соберете gcc с C++ для него - у вас же "Не вижу проблемы.".
А вот вижу и не считаю что стоит даже копаться ради получения фиктивного MP3 декодера, без возможности реального применения в данном чипе.
Ждем героев потерянного времени. :p
 

rst

Member
Из объемов памяти и производительности.
И как же вы оценили эту самую производительность? Пока что от вас не было никаких конкретных цифр, касаемых скорости выполнения этого декодера. На любом ядре. Одно только пенсионерское брюзжание... :geek:
Ссылаетесь на чьи-то чужие попытки использования Helix здесь: http://we.easyelectronics.ru/STM32/programmnyy-dekoder-mp3-na-stm32f10x-chast-3-izvlekaem-zvuki.html
Но судя по описанию - там человек совсем не пытался как-то оптимизировать код под своё ядро. Он использовал имеющиеся функции PolyphaseStereo \ PolyphaseMono. Я же выше приводил свою реализацию PolyphaseStereo, оптимизированную под Cortex-M4. Так вот - моя реализация выполняется примерно на 20% быстрее, чем исходная (ассемблерная) из Helix (на CM4).
Это говорит о том, что если подойти к задаче с головой, то вполне возможно, что решение найдётся. Только придётся немного напрячь голову, а не просто старчески ворчать. :geek:

PS: Есть такая поговорка - "Дорогу осилит идущий". Именно - идущий, а не сидящий на пеньке и брюзжащий....
 

xplayerx_p

New member
Ребята нид хелп, что то не могу понять как загрузить прошу в
E180-Z6907A

1. развел плату тупо раскидал пины

1687297530167.png

2. Взял CP21рую воткнул 1к между RX TX
3. Подключил SWM к TX RST к RST ну и питание получаю

TLSR82xx TlsrPgm version 20.04.23
-------------------------------------------------------
Open COM10, 230400 bit/s... ok
Error[102] Read PGM Version and Config!

что я не так сделал. в наличии есть jlink дохера stm куча esp и всякой хрени как ее прошить?
 

pvvx

Активный участник сообщества
TLSR825x и TLSR826x имеют разный размер адреса по шине SWS.

По этой причине есть разные программы для их программирования или опции в этих программах.

Для прошивки по минимуму нужно соединение для передачи по протоколу Telink 1-wire в SWS и включение питания (можно Reset). Telink 1-wire не совместим с UART или SPI, но можно кое-как эмулировать.

Для качественной прошивки с обратной связью необходим аппаратный программатор, работающий с протоколом Telink 1-wire.

Другой способ – эмулируя только передачу по Telink 1-wire загнать в RAM чипа загрузчик по SWS, который перейдет на работу по UART через пины RX-TX.

Третий вариант – пытаться эмулировать передачу и прием Telink 1-wire на китайских USB-UART чипах.

В этом случае FTDI чипы не подходят, т.к. проверяют полную синхронизацию символа UART и, в случае нарушения не выдают криво принятый символ в буфер приема, а выставляют ошибку. Китайские чипы UART плевали на синхронизацию и всё что принято побитно передают в итоговый буфер.
 

pvvx

Активный участник сообщества
3. Подключил SWM к TX RST к RST ну и питание получаю
У чипов TLSR8269 в большеногих корпусах есть два пина SWM и SWS.
SWM - это master, а SWS - это slave.
Для доступа к потрохам чипа используется SWS.
По старту чипа, при включении питания или сразу после RESET, передается команда останова CPU - это называется "активация". Чип, сам SoC может находиться в sleep или deep-sleep. В этом состоянии внутреннее питание шины S-wire отключено.
Внутренняя программа может отключить SWS, но это возможно только тогда, когда заработает CPU и выполнит необходимый код для отключения.
По этой причине отключить считывание-запись прошивки на этих чипах невозможно. Можно только "засИкретить" протокол Telink 1-wire, что и делает Telink.
В программаторах есть опция установки времени непрерывной передачи кода останова - "активации". Большинство BLE или ZigBee модулей на короткое время автоматически пробуждаются по внутреннему таймеру и попав на момент пробуждения SoC код захвата-останова CPU отрабатывает, позволяя в дальнейшем передавать другие команды по S-Wire.
Так же путем установки длительности передачи кода активации в пару-десятку секунд, пока он непрерывно циклически передается, возможно и вручную подать питание или дернуть RESET чипа...
 

pvvx

Активный участник сообщества
У серии TLSR826x есть “болезнь” – сложное восстановление состояния внутренних ключей питаний, которая приводит к тому, что если внутренняя Flash была отключена программно и отключены некоторые неописанные в документациях внутренние питания, тогда доступа к Flash после deep-sleep и sleep для S-Wire не будет. Решается RESET или сбросом питания. Сам Telink это в своем “засИкреченном” программаторе не решил, а дает опцию в SDK для отключения перевода Flash в такое состояние сна на время отладки.
По этой причине и нужен второй провод - reset или ключ питания.
 

pvvx

Активный участник сообщества
TLSR82xx TlsrPgm version 20.04.23
https://github.com/pvvx/TLSRPGM - это программа для построения аппаратных программаторов на основе TB-04-KIT or TB-04 / 03F модуля (TLSR8253 chip and USB-COM PL2303HX or CH430 chip) или на EBYTE E104-BT10-G / N модуле (TLSR8269 chip). Они имеют аппаратный вывод SWM (single wire master).
TB-04-KIT использует для работы свой USB-COM, что не есть хорошо. У чипа TLSR8253 не выведены ноги USB.
EBYTE E104-BT10 (на TLSR8269 чипе с много ножек, имеющем SWM, SWS, USB) - работает через свой USB в чипе и является оптимальным программатором.
 

pvvx

Активный участник сообщества
что я не так сделал. в наличии есть jlink дохера stm куча esp и всякой хрени как ее прошить?
Для программирования TLSR8269:
Через USB-COM - TlsrComSwireWriter или TlsrComProg
Через STM32F103C8T6 - TlsrTools
И аппаратные программаторы: TLSRPGM + TLSR8269-EVK + https://aliexpress.ru/item/1005003712968248.html
 

xplayerx_p

New member
Спасибо через STM32 завелись, только вот теперь не как не могу ничего собрать для теста, сижу курю еклипс до того был на vs code
 

xplayerx_p

New member
одну прибил, пришлось сдувать экран и кварц вынимать тогда ожила и дала себя стереть. кстати на заметку кто зальет не ту прошивку по clock
 

pvvx

Активный участник сообщества
одну прибил, пришлось сдувать экран и кварц вынимать тогда ожила и дала себя стереть. кстати на заметку кто зальет не ту прошивку по clock
Это актуально только для программаторов с эмуляцией S-Wire. Особенно для STM32 по SPI - cложно подобрать частоту стробирования при приеме.
На аппаратном - пофиг, т.к. там есть само-синхронизация, да вручную выставляется любой шаг с дискретизацией набора длительности с шагом частоты кварца, а не делением CLK, как в случае SPI на STM32...
 

pvvx

Активный участник сообщества
Автоматическая синхронизация на Telink S-Wire работает у Slave только на прием. Диапазон, если переводить в частоту или длительность бита - в несколько раз в низ от максимума. Типа от 2 Мбит до 200 кбит.
А вот 8-ми битный ответ у Slave после строба Master-а выводится на фиксированной частоте, заданной в делителе чипа. И подобрать битовый строб для эмулятора S-Wire возможно только путем посылки команды изменения делителя в программируемом чипе, а не наоборот (не в программаторе).
 

pvvx

Активный участник сообщества
О как раз вспомнил - у SoC от Bouffalo (BL702, ...) все длительности (CLK up/down, строб data up/down, пазы до и после) для всех шин (SPI, I2C, UART, I2S, ...) задаются в собственных много-битных счетчиках CLK. Там эмуляция Telink S-Wire будет лучше.
 
Сверху Снизу