Например TDA7294

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





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

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


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



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: SPI на GPIO+DMA
СообщениеДобавлено: Пт ноя 17, 2017 07:27:14 
Встал на лапы

Зарегистрирован: Сб янв 11, 2014 21:25:55
Сообщений: 113
Рейтинг сообщения: 0
Доброго времени суток! Начну с предыстории (можно не читать). Примерно с год назад передо мной поставили задачу заставить работать RGB-модули, 16х32 точек каждый, всего их два. В связи с краткостью сроков, задачи показывать полноцвет не было, достаточно было 7 цветов, получаемых смешением цвета пикселя, светящегося на полную. Соответствено, над скоростью записи данных в эти модули особо не заморачивался и повесил их на обычные порты ввода - вывода. Всё прекрасно работает и по сей день. Но! Тут возникла неожиданно необходимость выводить полноцвет. Развёртка модулей 1/4, максимальная частота записи данных 150 МГц. Частота обновления (от строки к строке) 1920 Гц, а их 4 штуки. То есть, у нас есть, казалось бы, аж 2 мс (!) чтобы несколько раз перезаписать данные одной строки (применить BAM). МК при этом делает ещё неслабые расчёты помимо вывода инфы и его ресурса перестаёт хватать.

Собсно, возникла идея-вопрос: можно ли как-то реализовать на периферии GPIO+DMA некое подобие шести MOSI + общий CLK?
То есть, на GPIOB у меня болтаются такие выходы:
Изображение
Как тупо затолкать данные в порт через DMA - понятно. А вот как стробить каждый бит - не очень. Есть идеи?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: SPI на GPIO+DMA
СообщениеДобавлено: Пт ноя 17, 2017 14:52:46 
Друг Кота

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 0
писать в порт два раза - со сброшенным и установленным битом clk

ЗЫ вам насколько важно clk тоже по dma переключать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: SPI на GPIO+DMA
СообщениеДобавлено: Сб ноя 18, 2017 07:21:40 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 155
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
Alex-Elektron, читай http://forum.easyelectronics.ru/viewtop ... it=dma+spi


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: SPI на GPIO+DMA
СообщениеДобавлено: Ср ноя 22, 2017 15:03:18 
Сверлит текстолит когтями

Карма: -10
Рейтинг сообщений: 93
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1150
Рейтинг сообщения: 0
А вот как стробить каждый бит - не очень. Есть идеи?

1. Использовать МК имеющий quad-SPI-интерфейсы. Есть в старших LPC, в Tiva, в Infineon и т.д.
2. Либо ещё лучше: имеющий порты McASP или McBSP - там в некоторых вообще до 16-ти сериализаторов на порт. Хотя с фазой CLK надо будет помудрить.
3. Либо ещё лучше: что-нить из LPC43xx, они имеют SGPIO - на нём вообще можно наверное любой последовательный интерфейс эмулировать (с поддержкой DMA) хоть многоканальный SPI, хоть какой-нить свой экзотический.

Зы: Никогда не имел дела с RGB-модулями: а они что - по SPI подключаются? Или вы через SPI пытаетесь какой-то другой интерфейс эмулировать?


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: SPI на GPIO+DMA
СообщениеДобавлено: Ср ноя 22, 2017 15:42:18 
Встал на лапы

Зарегистрирован: Сб янв 11, 2014 21:25:55
Сообщений: 113
Рейтинг сообщения: 0
Спасибо за рекомендации! Буду пробовать.
Цитата:

Зы: Никогда не имел дело с RGB-модулями: а они что - по SPI подключаются? Или вы через SPI пытаетесь какой-то другой интерфейс эмулировать?


В них используются китайские аналоги hc595. А они, как известно, довольно бодро рулятся по SPI.


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: SPI на GPIO+DMA
СообщениеДобавлено: Ср ноя 22, 2017 18:02:40 
Друг Кота

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 0
если забить на clk в самой пачке DMA и дрыгать его таймером, то у ST есть методичка вот прям того, что нужно - http://www.st.com/content/ccc/resource/ ... 169730.pdf . В двух словах - клок получается ШИМ-ом с того же таймера, который тактирует DMA.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: SPI на GPIO+DMA
СообщениеДобавлено: Ср ноя 22, 2017 19:59:11 
Сверлит текстолит когтями

Карма: -10
Рейтинг сообщений: 93
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1150
Рейтинг сообщения: 0
В двух словах - клок получается ШИМ-ом с того же таймера, который тактирует DMA.

Чтобы это работало стабильно на больших частотах событий от таймера к DMA, нужно чтобы приоритет арбитража шины для DMA-контроллера был выше чем у других bus-master-ов в МК. Главным образом - выше чем у CPU. А у большинства известных мне МК, как раз у CPU приоритет доступа к шине выше чем у DMA и изменить его нельзя.
Только некоторые МК позволяют менять.
А без этого невозможно гарантировать то, что не будет пропусков обслуживания DMA-контроллером событий от таймера. Да даже когда нет пропусков, из-за того что идёт задержка обслуживания DMA из-за занятости шины, то не будет никакой стабильности во временных диаграммах сигналов данных (будет джиттер). И уж никак нельзя гарантировать синхронность и постоянство фаз между сигналом от таймера на внешней ноге (который генерится без задержек арбитража) и сигналами данных от DMA.
Соответственно: нужно брать МК с возможностью задания наивысшего приоритета DMA-контроллеру. Ну или ложить спать CPU (и остальных bus-master-ов) на время DMA-передачи.
Ну или посмотреть матрицу шин в вашем МК - возможно раскидав массивы данных DMA и рабочие области памяти процессора по разным регионам памяти сидящим на разных шинах, можно добиться независимого доступа к памяти без задержек на арбитраж шины. Хотя тут надо посмотреть.... не факт...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: SPI на GPIO+DMA
СообщениеДобавлено: Ср ноя 22, 2017 20:58:06 
Друг Кота

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 0
Соответственно: нужно брать МК с возможностью задания наивысшего приоритета DMA-контроллеру.

вот у описываемых в оной методичке stm32 как раз так, в случае чего тапки у DMA:
Цитата:
The DMA request may stop the CPU access to the system bus for some bus cycles, when the CPU and DMA are targeting the same destination (memory or peripheral).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: SPI на GPIO+DMA
СообщениеДобавлено: Ср ноя 22, 2017 21:09:31 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 155
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
jcxz, по моей ссылке сходите.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: SPI на GPIO+DMA
СообщениеДобавлено: Ср ноя 22, 2017 23:09:07 
Сверлит текстолит когтями

Карма: -10
Рейтинг сообщений: 93
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1150
Рейтинг сообщения: 0
jcxz, по моей ссылке сходите.

Сходил, и что там полезного?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: SPI на GPIO+DMA
СообщениеДобавлено: Чт ноя 23, 2017 06:41:19 
Встал на лапы

Зарегистрирован: Сб янв 11, 2014 21:25:55
Сообщений: 113
Рейтинг сообщения: 0
Там довольно неплохой пример от dosikusa именно того, что мне надо (без переделки железа). Там как раз обсуждается рулёжка RGB. 7й пост сверху.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: SPI на GPIO+DMA
СообщениеДобавлено: Чт ноя 23, 2017 11:10:11 
Сверлит текстолит когтями

Карма: -10
Рейтинг сообщений: 93
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1150
Рейтинг сообщения: 0
Там довольно неплохой пример от dosikusa именно того, что мне надо (без переделки железа). Там как раз обсуждается рулёжка RGB. 7й пост сверху.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: SPI на GPIO+DMA
СообщениеДобавлено: Чт ноя 23, 2017 21:22:13 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 155
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
jcxz, пока вы решаете свою надуманную"проблему", совершенно ни у месту здесь озвученную , другие реализуют.
Вы своего "сферического коня в вакууме" приберегите для дурачков, ОК?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: SPI на GPIO+DMA
СообщениеДобавлено: Пт ноя 24, 2017 01:18:12 
Сверлит текстолит когтями

Карма: -10
Рейтинг сообщений: 93
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1150
Рейтинг сообщения: 0
jcxz, пока вы решаете свою надуманную"проблему", совершенно ни у месту здесь озвученную , другие реализуют.

Всегда так - кто-то думает, прежде чем что-то сделать. А другой сразу быдлокодит, а потом разбирается в той куче, что получил и костыли костылит.
Видимо Вы свой выбор уже сделали.
Если по делу сказать нечего, лучше помолчите.


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23


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

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


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