Например TDA7294

Форум РадиоКот • Просмотр темы - Работа с регистрами
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 16, 2024 13:13:58

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 80 ]    , , , 4
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Вс июл 11, 2021 13:03:24 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14052
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Кольцевой буфер...
Штука интересная... и возможных решений достаточно много.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Вс июл 11, 2021 13:34:15 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6865
Откуда: .ru
Рейтинг сообщения: 0
при чём тут кольцевой буфер... это буфер FIFO


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Вс июл 11, 2021 13:52:11 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
при чём тут кольцевой буфер... это буфер FIFO

Т.е. у тебя в программе идет обращение к внешней памяти? И какой размер этого FIFO?


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Вс июл 11, 2021 14:53:09 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6865
Откуда: .ru
Рейтинг сообщения: 0
какая ещё внешняя память... это внутренняя ОЗУ AVR.

STS - инструкция Запись SRAM AVR.
LDS - инструкция Читаем SRAM AVR.
Вложение:
инструкции AVR.jpg [100.89 KiB]
Скачиваний: 155

Тут что никто на Ассемблере инструкции не писал что ли))
Reflector писал(а):
И какой размер этого FIFO?

Да любой))
До 2 килобайта для AVR типа ATmega328 ))
Вложение:
SRAM AVR.jpg [92.17 KiB]
Скачиваний: 167

:tea:
Никто так и не ответил на простой вопрос...
STM может так же как AVR работать через инструкции или нет ???
:tea:


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Вс июл 11, 2021 15:04:45 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
какая ещё внешняя память... это внутренняя ОЗУ AVR.

Ясно, значит это типа однобайтовое FIFO :) Если читать значение считанное с порта в ячейку памяти, сразу из нее читать и выводить в другой порт, то на G0 получится тоже 8 тактов для 140 MHz:
Спойлер
Код:
int i = 1000;
while(i--)
{
   volatile uint32_t fifo = GPIOB->IDR;
   GPIOC->ODR = fifo;
}


ldr r2, [r0, #16]
subs r3, #1
str r2, [sp, #52]
ldr r2, [sp, #52]
str r2, [r1, #20]
cmp r3, #0
bne.n 0x800019fe

Именно такой цикл выполняется за 10 тактов, но там 2 команды для счетчика без которого точно замерять число тактов проблематично, т.к. помимо конвеера у мк еще есть небольшой кеш инструкций и нужно учитывать латентность флеша которая разная для разных частот. Итого учитывая больший потенциал разгона код выполняется быстрее в ~5 раз на одном из самых простых STM32.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Вс июл 11, 2021 15:59:28 
Мудрый кот

Карма: 11
Рейтинг сообщений: 114
Зарегистрирован: Пт июн 01, 2018 07:28:45
Сообщений: 1759
Рейтинг сообщения: 0
Цитата:
Большая часть современной периферии 3-х вольтовая

это так

Цитата:
быстродействующие коммутаторы...
обработчики потокового аудио и видео...
внешняя ОЗУ на МК...

это всё делается на ПЛИС.

Цитата:
Да и АВРки уже совсем иные пошли, весьма отличающиеся от "стандартных"...

Они всегда были разные. AtXMega, AVR32...

Цитата:
Кстати... совсем про ПИКи подзабыли

Пики не являются чем-то универсальным. Там под каждую задачу есть свой пик. Иногда, этот самый пик и заменить нечем из-за специфической периферии.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Вс июл 11, 2021 17:15:46 
Держит паяльник хвостом

Карма: 6
Рейтинг сообщений: 149
Зарегистрирован: Чт авг 10, 2017 20:57:51
Сообщений: 993
Рейтинг сообщения: 0
roman.com писал(а):
программа буфер FIFO
roman.com писал(а):
это буфер FIFO


и как, примерно, делается FIFO


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Вс июл 11, 2021 18:49:00 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6865
Откуда: .ru
Рейтинг сообщения: 0
diplodok писал(а):
и как, примерно, делается FIFO

Только ушёл от Си на Ассемблер... и вот опять всё сначала))
parovoZZ писал(а):
это всё делается на ПЛИС.

Угу)) Сейчас сбегаю за ПЛИС ))
Reflector писал(а):
Если читать значение считанное с порта в ячейку памяти, сразу из нее читать и выводить в другой порт, то на G0 получится тоже 8 тактов для 140 MHz

140 MHz
А вот это уже интересно))
:tea:
Reflector писал(а):
там 2 команды для счетчика без которого точно замерять число тактов проблематично

Не понял...
Reflector писал(а):
помимо конвеера у мк еще есть небольшой кеш инструкций и нужно учитывать латентность флеша которая разная для разных частот.

:shock:
У AVR нет никакого кеш инструкций... И флеш не зависит от частоты...
AVR просто берёт инструкции из флеша и выполняет их )) Читает/Записывает регистры/порты.
А результат выполнения инструкций в регистре статуса.
Вложение:
Screenshot_1.jpg [60.95 KiB]
Скачиваний: 150

:roll:

кеш инструкций... Это только у STM так ? Это уже что-то сложное пошло... До этого я ещё не дошёл... ))
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Вс июл 11, 2021 19:58:09 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14052
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Скорее речь о конвеерной предвыборке команд из ПЗУ...
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Вс июл 11, 2021 21:14:35 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6865
Откуда: .ru
Рейтинг сообщения: 0
Reflector писал(а):
2 команды для счетчика без которого точно замерять число тактов проблематично

зачем там счётчик ? а низя просто читать инструкции подряд и просто их выполнять...
BOB51 писал(а):
предвыборке команд из ПЗУ...

а какая там предвыборка ?

На примере простой программы (см. выше):

Например при записи регистра порта-
OUT PORTD, R0 // Запись Port D -1 такт
По идеи процессор просто берёт инструкции из флеша и сразу их выполняет. Т.е. записывает регистр порта (включает порт).

Например при чтении регистра порта-
IN R0, PINC // Читаем Port С -1 такт
STS _x, R0 // Запись SRAM -2 такт
По идеи процессор читает регистр порта и сразу пишет в ОЗУ.
Вложение:
Screenshot_1.jpg [117.59 KiB]
Скачиваний: 132

И далее инструкции по списку...))

Сколько на это все эти инструкции уходит тактов проца... фиг его знает))
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Вс июл 11, 2021 22:18:56 
Мудрый кот

Карма: 11
Рейтинг сообщений: 114
Зарегистрирован: Пт июн 01, 2018 07:28:45
Сообщений: 1759
Рейтинг сообщения: 0
Цитата:
По идеи процессор просто берёт инструкции из флеша и сразу их выполняет.

Это на медленных AVR так можно. А на быстрых камнях так не получается - флеш не сразу отдаёт данные, а через определённый интервал.
Программу можно загрузить целиком в ОЗУ (как это делает ESP) и выполнять оттуда. Но такое можно на фон неймане. А у АВР гарвард - там такое нельзя никак.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Вс июл 11, 2021 23:03:26 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
У AVR нет никакого кеш инструкций... И флеш не зависит от частоты...

AVR простой и работает на низких частотах, потому дополнительные такты ожидания для медленного флеша не требуются. У STM32 есть буфер предвыборки в который заранее читаются сразу несколько инструкций чтобы нивелировать тормоза флеша, у некоторых кортексов работающих на частотах порядка 500Mhz чтение происходит по целой 256-ти битной шине... Также может быть кеш инструкций и данных, например, в вышеприведенном коде первый раз при переходе в начало цикла инструкции там находящиеся попадут в кеш и последующие разы переход будет выполняться за 1 такт, иначе придется сбросить конвеер и дождаться чтения инструкций из флеша, а это 2 такта требуемых на заполнение конвеера плюс само чтение с учетом тактов ожидания флеша которые зависят от частоты, потому если постоянно не пишешь на ассме для одной серии на одной частоте, то вручную подсчитать количество тактов не так просто, в итоге я добавил счетчик и замерял при помощи таймера сколько выполняются 1000 итераций... У более продвинутых кортексов может работать сразу два конвеера, читаться сразу два 32-х битных значения из RAM и выполняться две команды за такт, там вообще писать на ассме подсчитывая такты гиблое дело(при пошаговой отладке будет показывать не совсем то, что происходит на полной скорости)... Но есть серии где код можно выполнять из CCM RAM, тогда многие проблемы пропадают и на любой частоте код выполняется максимально быстро.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Вс июл 11, 2021 23:38:45 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 157
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3328
Рейтинг сообщения: 0
roman.com писал(а):
140 MHz А вот это уже интересно))
А как насчет 480 МГц? https://www.st.com/en/microcontrollers- ... 750vb.html
В добавок 2 МБ флеша и 1 МБ ОЗУ.
Только это МК не для подсчета каждого такта. К ядре есть кеши инструкций и данных, конвейер и др. что затрудняет точный подсчет времени до такта.

roman.com писал(а):
И флеш не зависит от частоты
Потому что частоты низкие. Когда речь идет о сотнях МГц, из флеша не успевает производится чтение на такой скорости и применяются различные методы позволяющие снизить скорость чтения не снижая производительность МК.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Пн июл 12, 2021 18:42:26 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6865
Откуда: .ru
Рейтинг сообщения: 0
parovoZZ писал(а):
Программу можно загрузить целиком в ОЗУ (как это делает ESP) и выполнять оттуда.

а ОЗУ не тормозит ?
ESP вроде загружает пользовательские программы из внешнего EEPROM...
Reflector писал(а):
если постоянно не пишешь на ассме для одной серии на одной частоте, то вручную подсчитать количество тактов не так просто

Reflector писал(а):
придется сбросить конвейер и дождаться чтения инструкций из флеша

:roll:
Мурик писал(а):
К ядре есть кеши инструкций и данных, конвейер и др. что затрудняет точный подсчет времени до такта.

:roll:
Короче... пипец)) Ну я примерно так и думал... что не всё так просто))
Короче надо подробней всё это изучить...
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Пн июл 12, 2021 20:30:05 
Мудрый кот

Карма: 11
Рейтинг сообщений: 114
Зарегистрирован: Пт июн 01, 2018 07:28:45
Сообщений: 1759
Рейтинг сообщения: 0
Цитата:
ESP вроде загружает пользовательские программы из внешнего EEPROM...

Так и ARM можно заставить делать так же.


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Пн июл 19, 2021 13:48:30 
Друг Кота

Карма: 49
Рейтинг сообщений: 523
Зарегистрирован: Чт фев 20, 2014 18:57:55
Сообщений: 18441
Рейтинг сообщения: 0
Короче... пипец)) Ну я примерно так и думал... что не всё так просто))
Короче надо подробней всё это изучить...
:tea:

Да нафиг этот асм и подсчет тактов :) Возьмите пожирнее что нибудь.

_________________
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Пн июл 19, 2021 18:33:26 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6865
Откуда: .ru
Рейтинг сообщения: 0
есть целый список узкоспециализированных задач...
пожирнее что нибудь типа Intel Core i9 10 x 3600 МГц ?)) Этот справится ))
а на сколько хватит одной батарейки ? на 5 минут ? ))
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Пн июл 19, 2021 20:53:16 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 157
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3328
Рейтинг сообщения: 0
Нужно по максимуму перекладывать работу на железо, тогда не придется подсчитывать такты команд. В идеале процессор только конфигурирует и обслуживает железо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Вт июл 20, 2021 07:36:34 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14052
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
В то же время никто не запрещает использование внешних специализированных микросхем сопровождения.
В том числе и самодельных.
Да и "рассыпухи" средней степени интеграции в избытке.
Попривыкали уже все в одном "клопе" делать.
:wink:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с регистрами
СообщениеДобавлено: Вт июл 20, 2021 11:39:24 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6865
Откуда: .ru
Рейтинг сообщения: 0
Можно делать всё на "рассыпухи"
Вложение:
1.jpg [103.66 KiB]
Скачиваний: 120

А можно сделать всё на одном "клопе"
Вложение:
2.jpg [53.15 KiB]
Скачиваний: 122

И т.д. и т.п. ))
Что проще дешевле быстрей... каждый решает сам))
:tea:


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 80 ]    , , , 4

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Morroc и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y