adnega 11 24 марта, 2018 Опубликовано 24 марта, 2018 · Жалоба приходит прерывание от таймера/внешнего прерывания с интервалом 1мкс 1мкс -> 1МГц. Даже на МК с тактовой 168МГц у вас 168 тактов на посылку. По-моему, ничего разумного за такое время не сделать. STM32F тут не подходит не из-за SPI, а из-за общей производительности. Тут вариант - на внешней ПЛИС сделать опрос АЦП, а МК предоставить доступ по внешней шине, или правдами-неправдами "окутать" доступ к АЦП в какой-нить DCMI при помощи CPLD попроще. У ТС озвучивалась задача 5кГц, и под нее выбирались МК типа STM32F задача описана словами "надо дискретизировать сигнал 5000 выборок/сек и передать отсчеты наружу...", невольно понимаешь, что STM32 тут за глаза. 1мкс -> 1МГц. Даже на МК с тактовой 168МГц у вас 168 тактов на посылку. По-моему, ничего разумного за такое время не сделать. STM32F тут не подходит не из-за SPI, а из-за общей производительности. Тут вариант - на внешней ПЛИС сделать опрос АЦП, а МК предоставить доступ по внешней шине, или правдами-неправдами "окутать" доступ к АЦП в какой-нить DCMI при помощи CPLD попроще. У ТС озвучивалась задача 5кГц, и под нее выбирались МК типа STM32F Если 5кГц это максимум, то на любом STM32F это делается легко даже с ручным дерганьем CS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 71 24 марта, 2018 Опубликовано 24 марта, 2018 · Жалоба а еще извращенцы из LT делают ацп которым нужно 17-18 тактов на SPI, вот тоже ни туда, ни сюда, но это уже так, придирки ну нормальные последовательные порты умеют не только нормально аппаратно чипселектами дёргать но и произвольную длину слова задавать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dac 0 24 марта, 2018 Опубликовано 24 марта, 2018 · Жалоба 1мкс -> 1МГц. Даже на МК с тактовой 168МГц у вас 168 тактов на посылку. По-моему, ничего разумного за такое время не сделать. у меня процесс непериодический, т.е. мне не надо постоянно с таким интервалом, поэтому dma решает проблему. новые stm32f умеют произвольное слово от 4 до 16 бит ЗЫ даже если 5кГц два раза дергать прерывание по 8 тактов вход/выход + сохранить, тоже нифига не радостно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 235 24 марта, 2018 Опубликовано 24 марта, 2018 · Жалоба а еще извращенцы из LT делают ацп которым нужно 17-18 тактов на SPI, вот тоже ни туда, ни сюда, но это уже так, придирки Так возьмите МК с богатой реализацией SPI, а не урезанной. Например: XMC4xxx - "Number of data bits per data frame 1 to 63". И будет Вам и туда и сюда. :laughing: А вообще во многих SPI-АЦП частота преобразования и частота SCLK - это разные частоты, с разными источниками. Так что SCLK просто берётся с запасом и всё. 1мкс -> 1МГц. Даже на МК с тактовой 168МГц у вас 168 тактов на посылку. По-моему, ничего разумного за такое время не сделать. STM32F тут не подходит не из-за SPI, а из-за общей производительности. Тут вариант - на внешней ПЛИС сделать опрос АЦП, а МК предоставить доступ по внешней шине, Не сделать чего??? 168 тактов - это вагон + ещё маленькая тележка. 168 тактов - это не много, а очень дофига для любой пересылки. Ну конечно если иметь полноценный SPI-контроллер, а не "ручками" как на STM32. Да впрочем и на STM32 тоже можно сделать "не ручками" если голову включить. И будет совсем незначительная загрузка МК. Для МК с более фичастым SPI, 1МГц - это вообще ни о чём. У меня на XMC4700 SPI работают с SCLK в 30-36 МГц при ядре 120-144МГц. Причём - параллельно по 2 канала SPI да ещё один при этом в dual-SPI. Загрузка CPU незначительная. ну нормальные последовательные порты умеют не только нормально аппаратно чипселектами дёргать но и произвольную длину слова задавать. У меня в проекте на XMC4700 даже один из UART-ов работает с длиной слова 26 бит (1старт+24данных+1стоп). Вот это и называется - гибкая и эффективная периферия :rolleyes: ЗЫ даже если 5кГц два раза дергать прерывание по 8 тактов вход/выход + сохранить, тоже нифига не радостно Ну это уже скорее паранойя.... или тяжкое наследие АВР :laughing: 12*2*2*5000/168e+6 = ~0.143% загрузка CPU (168МГц). Даже с учётом того что вход/выход в ISR явно не 8 тактов (с чего Вы взяли?), а 12 тактов - это всё равно ни о чём. Да и вообще - как уже говорил выше - с головой даже на STM32 можно сделать без дёрганий в прерывания: завести сигнал прерывания от АЦП на какую-нить периферию, умеющую генерить запросы обслуживания к DMA (таймер например), и дальше всё сделать DMA: и CS и транзакцию по SPI. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 24 марта, 2018 Опубликовано 24 марта, 2018 · Жалоба на STM32 можно сделать без дёрганий в прерывания: завести сигнал прерывания от АЦП на какую-нить периферию, умеющую генерить запросы обслуживания к DMA (таймер например), и дальше всё сделать DMA: и CS и транзакцию по SPI. Если нужно заполнить кольцевой буфер для постобработки, то полностью согласен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 174 24 марта, 2018 Опубликовано 24 марта, 2018 · Жалоба Да вот элементарный пример, решение которого полностью решило бы такую проблему. Возможно ли в STM32F4 настроить периодическую отправку в SPI по DMA? Я бы настроил событие по совпадению таймера 5000 раз в секунду пинать DMA, чтобы он положил данные в SPI->DR. Началась бы передача, по завершении которой выставился флаг RXNE, который пинал бы другой канал DMA, и тот складировал данные в буфер и говорил мне когда нужный объём данных наберётся для передачи по другому интерфейсу разом. DMA устроен же так, что в режиме память-регистр я могу указывать только адрес регистра только того модуля, который пнул этот канал DMA, а как было бы здорово по запросу DMA от таймера сделать пересылку в SPI-DR, то есть в модуль, который не пинал этот DMA. Периодические вещи, например, отправки или прием данных по разным интерфейсам, в том числе SPI, стали бы возможны вовсе без участия процессора! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 24 марта, 2018 Опубликовано 24 марта, 2018 · Жалоба DMA устроен же так, что в режиме память-регистр я могу указывать только адрес регистра только того модуля, который пнул этот канал DMA, С чего вы это взяли? DMA может откуда угодно куда угодно произвести транзакцию, если на это нет ограничений (CCM, выравнивание и т.п.) и есть доступ к соответствующим шинам. Много раз обсуждалось, как таймер инициирует транзакцию в SPI. Там единственная особенность, что от момента запроса до момента транзакции может пройти некоторое время (у меня получалось ~12 тактов) и при высоких скоростях SPI сложно получить равномерный SCK (без межсимвольных пауз). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_su 1 25 марта, 2018 Опубликовано 25 марта, 2018 · Жалоба Добрый день. На отладочнике STM32L476-disco проверил формирование NSS в режимах TI Mode и Motorola Mode. В обоих режимах сигнал вырабатывается в соответствии с RM0351 Reference manual STM32L4x5 and STM32L4x6 advanced ARM®-based 32-bit MCUs 42.4.12 NSS pulse mode This mode is activated by the NSSP bit in the SPIx_CR2 register and it takes effect only if the SPI interface is configured as Motorola SPI master (FRF=0) with capture on the first edge (SPIx_CR1 CPHA = 0, CPOL setting is ignored). When activated, an NSS pulse is generated between two consecutive data frame transfers when NSS stays at high level for the duration of one clock period at least. This mode allows the slave to latch data. NSSP pulse mode is designed for applications with a single master-slave pair. 42.4.13 TI mode TI protocol in master mode The SPI interface is compatible with the TI protocol. The FRF bit of the SPIx_CR2 register can be used to configure the SPI to be compliant with this protocol. The clock polarity and phase are forced to conform to the TI protocol requirements whatever the values set in the SPIx_CR1 register. NSS management is also specific to the TI protocol which makes the configuration of NSS management through the SPIx_CR1 and SPIx_CR2 registers (SSM, SSI, SSOE) impossible in this case Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
inventor 0 7 апреля, 2018 Опубликовано 7 апреля, 2018 · Жалоба jcxz, как раз листаю референс на XMC4800. Общее впечатление - на днях сделаю себе отладку и попробую разобраться в новой для себя стилистике документации :rolleyes: камушек то под 2 тыщи стоит Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
backa 1 24 апреля, 2018 Опубликовано 24 апреля, 2018 · Жалоба TI "TM4C1294" - дорого и сердито - SPI работае на частоте до 60МГц (1/2 от тактовой) и с выборкой внешнего кристала "SS" там все хорошо))) Никаких "выбрать ручками".... Хотя есть странные индивидумы (мой коллега) - он "необъяснимо никаким здравым смысло" дрыгает этой ножкой тоже руками))) Поддержка просто порaжает: форум с ответами в течении рабочего дня на любые вопросы(понятно, что все консультатнты - индусы со всеми вытекающими), своя библиотека не вызывающая НИКАКИХ нареканий - было желание писать все общение самому с нуля ,но посмотрев исходники , понял что получу тоже самое но только потеряю время Так что для начала - просто сказка а не камушек и платы у них не хуже чем у STM - цена та же - около 20 баксаф... Разводка плат сделана индусами со всеми вытекающими .... особенно аналоговая часть Но для освоения нового камушка само то. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 26 апреля, 2018 Опубликовано 26 апреля, 2018 · Жалоба TI "TM4C1294" - дорого и сердито - SPI работае на частоте до 60МГц (1/2 от тактовой) и с выборкой внешнего кристала "SS" там все хорошо))) Никаких . . . Так что для начала - просто сказка а не камушек и платы у них не хуже чем у STM - цена та же - около 20 баксаф... . . . Нечто эдакое ? EK-TM4C1294XL (цена у нас, правда, около 40 кваксов). Программатор-отладчик, по виду, на плате. Как эта платформа в отладке ? (привык к "хорошему", IAR) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
backa 1 26 апреля, 2018 Опубликовано 26 апреля, 2018 · Жалоба Нечто эдакое ? EK-TM4C1294XL (цена у нас, правда, около 40 кваксов). Программатор-отладчик, по виду, на плате. Как эта платформа в отладке ? (привык к "хорошему", IAR) У нас чуть дороже 20ки $ настоящих денег) Программатор-отладчик на плате и виртуальный комп-порт для отдалки через принтф , например... Отладка прекрасная - никаких притензий - все доступно - все ресурсы и периферия ... это все в Keil ( тоже привык к хорошему!!! и больше никогда на IAR c этим "убогим" спартанским IDE и "недоотладчиком"). После того как Keil купила ARM .. все встало как надо... Самое важное, что для этого камня есть "безглючная" библиотека низкого уровня и TI поставляет бесплатную, постоянно обновляему IDE собственного производства, но ввиду безальтернативности в лице Keil-а оставил ее без внимания... Вобщем рекомендую для старта! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 27 апреля, 2018 Опубликовано 27 апреля, 2018 · Жалоба . . . Программатор-отладчик на плате и виртуальный комп-порт для отдалки через принтф , например... Вобщем рекомендую для старта! Спасибо за инф. IAR, возможно, есть "ньюансы" для каждого процессора. По IAR/MSP430 - у меня только плюсы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 235 28 апреля, 2018 Опубликовано 28 апреля, 2018 · Жалоба IAR, возможно, есть "ньюансы" для каждого процессора. По IAR/MSP430 - у меня только плюсы. О каких нюансах речь? Ещё несколько лет назад, ещё на прошлой работе создали линейку устройств на TM4C129DNCPDT. ПО там довольно большое и сложное (писалось группой программистов), с использованием многой периферии и без индусских "библиотек". Писалось/отлаживалось всё в IAR. Сейчас уже несколько лет как вся эта линейка продаётся. Производится сейчас по несколько тыс. шт. в месяц. Никаких проблем с IAR-ом или контроллером нет. Вполне нормальный МК. DMA-контроллер - так пожалуй вообще лучший из тех, что я видел в разных Cortex-M-МК. А если у кого-то что-то не работает, то может это случай "плохого танцора"? :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 28 апреля, 2018 Опубликовано 28 апреля, 2018 · Жалоба Какие камни наиболее гибкие в этом плане? Вот - https://blog.nxp.com/iot/crossover-to-extre...elq_cid=1860362 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться