реклама на сайте
подробности

 
 
> На что бы перейти..., В плане платформы
Arlleex
сообщение Mar 22 2018, 16:13
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264



С практикой работы с STM32 у меня пополняется чаша больше ненависти к этим камням, нежели положительных эмоций.
Вот элементарно - есть АЦП внешний, управляется через SPI, CS-ом дергать обязательно. В STM32 CS не дергается аппаратно при транзакциях SPI, не понимаю, почему эти говноразработчики из STMicroelectronics не могут сделать это уже в какой реализации своих линеек микроконтроллеров? Из-за такого намеренного "косяка", который они вроде как и не пытаются исправить, невозможно запустить DMA на этот SPI, приходится запускать чертов таймер, дергать лапой в прерывании и там же запускать транзакцию (одиночную), потом снова выжидать нужное время и поднимать CS обратно, формируя нужные длительности между CS и первым/последним клоком SCLK... Помню в AT91SAM7X512 (и младших по памяти моделях) была возможность не то что аппаратно лапкой CS дергать, так даже время задавалось в количествах тактов вот этих самых задержек. А тут фигу.
С ходу даже не придумал как аппаратным таймером ножку аппаратно дергать так, чтобы еще после опускания CS выжидалось время небольшое и затем осуществлялась транзакция по SPI без прерываний, по DMA , например. И, чувствую, такой возможности тупо нет. Хотя, казалось бы, банальная вещь - что сложного было реализовать полностью аппаратный CS? Урезали половину функциональности DMA<->SPI...
И вот знаете, косяков все больше и больше обнаруживается с каждым детальным разбором.
Какие камни наиболее гибкие в этом плане? ПЛИС не в расчет, знаю что там проще сделать такое и т.д. но интересует возня именно с Cortex-M профиля. Раньше немного работал с ARM7TDMI, но это уже устаревший камень, Cortex-ы для меня более привлекательны, хотелось бы что-то действительно с хорошей периферией. Прокомментируйте, пожалуйста.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Arlleex
сообщение May 6 2018, 16:29
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264



Цитата
Ну "в каком-то из STM32" максимум 72МГц, что-ж Вы с ним не сравниваете?

Я не просто так написал
Цитата
...при прочих равных условиях (главным образом, процессор Cortex-M4F).

Сравнение бралось между схожими линейками, построенных на одном ядре.
Цитата
Например (говорю по памяти) в Tiva 256-битная шина к памяти.

1. А в STM32 128-битная шина и ART-ускоритель памяти.
2. В Tiva-C до 120МГц максимум, STM32 линейки F4 (на том же проце) уже 180Мгц.
3. В Tiva-C производительность 150 DMIPS, в STM32 все той же линейки уже 225 DMIPS, как видно производительность на 1МГц частоты одинаковая, но STM32 выигрывает все-таки уже из-за более высокой частоты, кто бы что ни говорил.
4. Что в Tiva-C, что в STM32F4 по 256кБ RAM. Более того, в STM32F469 уже даже 384кБ RAM.
По периферии возможно, да, Tiva-C в некотором смысле привлекательнее, на первый взгляд (возможно и на второй, и на третий в некоторых приложениях).
Цитата
Что за рекламный ход? Где такое написано? И на кой ляд это нужно (практически, а не теоретически)?
Наверное возможно для каких-то протоколов, но ЗАЧЕМ???

Про рекламный ход нигде не написано, но производители МК любят приукрасить свои камни. Я помню как в STM32F429 хвалили на семинаре в Москве их супер-пупер LCD-TFT контроллер. А по факту в реальном проекте применить его можно было с небольшими программными костылями из-за аппаратного бага в связке NOR-Flash + SDRAM. Зато сколько понтов было у представителей, когда они из внутренней Flash картинку на экран выводили... Стоило мне взять экран побольше разрешением, да повесить NOR-Flash + SDRAM, как понял, какие же они чудаки на букву м.
Я вот сейчас пишу прошивку на МК, который стоит на плате и выполняет вспомогательную функцию для ZYNQ7000 - следит за напряжениями питания, датчики опрашивает, да с пользователем общается. И одну I2C-шную микросхему уже было невозможно к ZYNQ7000 прицепить - остался только UART. Вот и пришлось завести ее через МК, а МК уже по UART отдает данные. Получился такой программный мост - I2C-UART. А мне об этих данных вообще знать не нужно - если бы такой мост можно было бы сделать аппаратно в XMC4800 - это был бы существенный плюс. Ну по крайней мере хотя бы попробовать задумку, если бы не получилось - программно в любом случае обыграть можно.
Цитата
Более сложной и функциональной периферии и связки периферия+DMA+service_request-ы я не видел ни в одном Cortex-M.

Scatter-gather DMA в XMC4800 конечно выглядит очень вкусным, тут я полностью согласен. Но самое главное, чтобы за этой сложностью не потеряться в трех соснах.

Сообщение отредактировал Arlleex - May 6 2018, 16:30
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 6 2018, 17:04
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Arlleex @ May 6 2018, 19:29) *
3. В Tiva-C производительность 150 DMIPS, в STM32 все той же линейки уже 225 DMIPS, как видно производительность на 1МГц частоты одинаковая, но STM32 выигрывает все-таки уже из-за более высокой частоты, кто бы что ни говорил.

Вы внимательнее прочитайте, что я написал: при выполнении линейного кода из флешь. А теперь посчитайте например за сколько тактов выполнится блок инструкций в 128-и битах? А если все (или многие инструкции 32-битные)? И сколько тактов нужно чтобы дочитать следующий блок на данной частоте МК? А теперь подумайте что в Tiva этот блок в 2 раза больше.
После этого увидите, что бОльшая частота не даёт никакого выигрыша в случае линейного кода из флешь. А вот более широкая шина (и бОльшая частота шины) - даёт.
И в Tiva тоже кстати есть кеш инструкций. Хоть и небольшой. Но скорость выборки по широкой шине такова, что во многих случаях никакие акселераторы и не нужны.
Так что STM32 даже на бОльшей частоте может запросто проиграть по скорости Tiva если код не влазит целиком в его кеш.

Цитата(Arlleex @ May 6 2018, 19:29) *
4. Что в Tiva-C, что в STM32F4 по 256кБ RAM. Более того, в STM32F469 уже даже 384кБ RAM.

Опять же ещё раз открываем моё исходное сообщение и ещё раз внимательно перечитываем (раз не получается с первого раза):"когда мы выбирали Tiva для своего проекта".
Так вот - когда мы выбирали Tiva для своего проекта, у неё было 256КБ ОЗУ, а в самом жирном из тогда имевшихся STM32 - всего 192КБ (насколько помню).

Цитата(Arlleex @ May 6 2018, 19:29) *
А мне об этих данных вообще знать не нужно - если бы такой мост можно было бы сделать аппаратно в XMC4800 - это был бы существенный плюс. Ну по крайней мере хотя бы попробовать задумку, если бы не получилось - программно в любом случае обыграть можно.

Не очень понятно как вообще можно просто так передать из I2C в UART без какой-либо обработки протокола? Уже хотя бы потому, что I2C - это не просто поток байтов, а ещё и старты/стопы и адресации и переключение передача/приём и т.п. Собственно на аппаратном уровне в UART каждый байт - это независимый элемент (кадр), а в I2C кадр - это много байт.
Какой-то протокол должен быть. Возможно, что если этот протокол - ваш самопальный, то возможно, что его можно приспособить для полностью аппаратной обработки. Но мне кажется, что программная обработка будет просто легче и займёт меньше ресурсов МК. А о скорости тут вообще речь не идёт. Поэтому не вижу смысла городить огород на пустом месте.

Цитата(Arlleex @ May 6 2018, 19:29) *
Scatter-gather DMA в XMC4800 конечно выглядит очень вкусным, тут я полностью согласен.

Я не о том. В Tiva сделали очень грамотно, когда от каждой периферии умеющей генерить burst-DMA-запросы вывели два сигнала DMA-запросов: собственно burst и single. Одновременно. И обработку этих запросов в DMA-контроллере сделали по уровню, а не по edge. Вот в XMC к сожалению до этого не додумались и там с этим связано много проблем.

PS: В первую очередь советую Вам сразу же на купленной плате проверить ревизию чипа (XMC). И перепаять на последнюю.
У нас на EVB с XMC стояли инженерные образцы и я наступил сразу на несколько багов из ерраты. Пришлось их перепаивать.
В инженерных образцах много багов. Причём серьёзных. Но в серийных образцах баги уже не страшные.
Да: и у Infineon какая-то странная манера оформления еррат - те баги, что устранены в новых ревизиях чипа, из ерраты удаляются (не комментируются как относящиеся к такой-то ревизии, а просто удаляются!). И на сайте выложена еррата для последней ревизии. А для старых ревизий на сайте тоже есть ерраты (в архиве), но они не сразу находятся.
Так что имейте в виду.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Arlleex   На что бы перейти...   Mar 22 2018, 16:13
- - _pv   а таймер разве не может дёргать по совпадению и CS...   Mar 22 2018, 16:30
- - jcxz   Цитата(Arlleex @ Mar 22 2018, 18:13) Вот ...   Mar 22 2018, 16:52
- - Arlleex   Цитата(_pv @ Mar 22 2018, 19:30) а таймер...   Mar 22 2018, 16:55
|- - jcxz   Цитата(Arlleex @ Mar 22 2018, 18:55) Пожа...   Mar 22 2018, 17:03
|- - twix   Цитата(Arlleex @ Mar 22 2018, 17:55) Види...   Mar 22 2018, 18:00
|- - _pv   Цитата(Arlleex @ Mar 22 2018, 22:55) Атме...   Mar 22 2018, 19:27
- - Arlleex   jcxz, как раз листаю референс на XMC4800. Общее вп...   Mar 22 2018, 17:23
|- - inventor   Цитата(Arlleex @ Mar 22 2018, 20:23) jcxz...   Apr 7 2018, 14:55
- - yes   > В STM32 CS не дергается аппаратно при транзак...   Mar 22 2018, 18:35
- - technik-1017   Как альтернативу STM32 рассматриваю чипы SmartFusi...   Mar 22 2018, 19:17
- - skripach   LPC54 CSами умеет дергать невероятно, с настраивае...   Mar 23 2018, 01:51
- - Arlleex   Цитата(twix @ Mar 22 2018, 21:00) Вы може...   Mar 23 2018, 13:54
|- - jcxz   Цитата(Arlleex @ Mar 23 2018, 15:54) 10МБ...   Mar 23 2018, 15:49
- - adnega   Цитата(Arlleex @ Mar 22 2018, 19:13) нево...   Mar 24 2018, 07:21
|- - dac   QUOTE (adnega @ Mar 24 2018, 13:21) 2. В ...   Mar 24 2018, 07:52
|- - adnega   Цитата(dac @ Mar 24 2018, 10:52) приходит...   Mar 24 2018, 08:11
||- - dac   QUOTE (adnega @ Mar 24 2018, 14:11) 1мкс ...   Mar 24 2018, 08:54
|- - _pv   Цитата(dac @ Mar 24 2018, 14:52) а еще из...   Mar 24 2018, 08:34
|- - jcxz   Цитата(dac @ Mar 24 2018, 09:52) а еще из...   Mar 24 2018, 10:21
|- - adnega   Цитата(jcxz @ Mar 24 2018, 13:21) на STM3...   Mar 24 2018, 13:25
- - Arlleex   Да вот элементарный пример, решение которого полно...   Mar 24 2018, 17:02
|- - adnega   Цитата(Arlleex @ Mar 24 2018, 20:02) DMA ...   Mar 24 2018, 17:16
- - Andrew Su   Добрый день. На отладочнике STM32L476-disco провер...   Mar 25 2018, 11:36
- - backa   TI "TM4C1294" - дорого и сердито - SPI р...   Apr 24 2018, 20:31
|- - k155la3   Цитата(backa @ Apr 24 2018, 23:31) TI ...   Apr 26 2018, 13:38
|- - backa   Цитата(k155la3 @ Apr 26 2018, 17:38) Нечт...   Apr 26 2018, 23:16
|- - k155la3   Цитата(backa @ Apr 27 2018, 02:16) . . . ...   Apr 27 2018, 16:09
|- - jcxz   Цитата(k155la3 @ Apr 27 2018, 19:09) IAR,...   Apr 28 2018, 05:45
|- - k155la3   Цитата(jcxz @ Apr 28 2018, 08:45) О каких...   Apr 28 2018, 13:09
- - AlexandrY   Цитата(Arlleex @ Mar 22 2018, 19:13) Каки...   Apr 28 2018, 07:58
|- - ViKo   Цитата(AlexandrY @ Apr 28 2018, 10:58) Во...   Apr 28 2018, 08:55
|- - jcxz   Цитата(ViKo @ Apr 28 2018, 11:55) Без флэ...   Apr 28 2018, 09:52
|- - AlexandrY   Цитата(ViKo @ Apr 28 2018, 11:55) Без флэ...   Apr 28 2018, 10:48
- - segment   А что за "Wireless connectivity interface for...   Apr 28 2018, 12:00
|- - AlexandrY   Цитата(segment @ Apr 28 2018, 15:00) А чт...   Apr 28 2018, 14:02
|- - k155la3   Цитата(AlexandrY @ Apr 28 2018, 17:02) . ...   Apr 28 2018, 18:04
|- - adnega   Цитата(k155la3 @ Apr 28 2018, 21:04) У ST...   Apr 28 2018, 18:59
|- - k155la3   Цитата(adnega @ Apr 28 2018, 21:59) Может...   Apr 28 2018, 19:23
|- - adnega   Цитата(k155la3 @ Apr 28 2018, 22:23) А ес...   Apr 29 2018, 05:45
|- - k155la3   Цитата(adnega @ Apr 29 2018, 08:45) Т.е. ...   Apr 29 2018, 10:46
- - Arlleex   За документацию с кучей перекрестных ссылок можно ...   May 6 2018, 08:20
|- - AlexandrY   Цитата(Arlleex @ May 6 2018, 11:20) За до...   May 6 2018, 12:05
|- - jcxz   Цитата(AlexandrY @ May 6 2018, 15:05) Сек...   May 6 2018, 15:39
- - Arlleex   Тогда действительно что-то с ним точно не так Ко...   May 6 2018, 15:06
- - Arlleex   ЦитатаВы внимательнее прочитайте, что я написал: п...   May 6 2018, 17:34
|- - jcxz   Цитата(Arlleex @ May 6 2018, 20:34) Между...   May 6 2018, 20:16
- - Arlleex   Да уж, я думал я один изворачиваюсь с периферией к...   May 6 2018, 21:09
- - Arlleex   Итак, ради интереса сделал тест. Использую аппарат...   May 7 2018, 19:56
|- - jcxz   Цитата(Arlleex @ May 7 2018, 22:56) 7. Вк...   May 9 2018, 05:06
- - COMA   Я для себя определил два варианта для перехода: се...   May 9 2018, 05:58
- - Arlleex   ЦитатаТолько зачем было делать столько телодвижени...   May 9 2018, 13:03
- - Arlleex   Итак, выложу сюда две растактовки из экспериментов...   May 9 2018, 15:26
|- - jcxz   Цитата(Arlleex @ May 9 2018, 18:26) Итак,...   May 9 2018, 15:48
- - Arlleex   Никакого абсолютно. У меня в проектах он всегда вк...   May 9 2018, 15:54
- - Arlleex   Подниму свою же тему. 1. Программировал платку с X...   Jul 6 2018, 05:17
|- - jcxz   Цитата(Arlleex @ Jul 6 2018, 08:17) 1. Пр...   Jul 6 2018, 08:05
|- - Arlleex   Цитата(jcxz @ Jul 6 2018, 12:05) PS: Ну и...   Jul 6 2018, 08:25
|- - jcxz   Цитата(Arlleex @ Jul 6 2018, 11:25) А впе...   Jul 6 2018, 08:30
|- - Arlleex   Цитата(jcxz @ Jul 6 2018, 12:30) Да, чере...   Jul 6 2018, 08:35
|- - jcxz   Цитата(Arlleex @ Jul 6 2018, 11:35) Вы ис...   Jul 6 2018, 08:36
- - Arlleex   Боюсь мне начальство не выделит времени на такие п...   Jul 6 2018, 09:07
- - jcxz   Цитата(Arlleex @ Jul 6 2018, 12:07) Боюсь...   Jul 6 2018, 09:50
- - Arlleex   Цитата(jcxz @ Jul 6 2018, 13:50) Начальст...   Jul 6 2018, 10:04


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 14th August 2025 - 23:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01455 секунд с 7
ELECTRONIX ©2004-2016