TigerSHARC 0 March 16, 2021 Posted March 16, 2021 · Report post Рассматриваю возможность сопряжения малины и ацп (например AD7606-8). Вопросы: 1) малина имеет потенциальную возможность генерить стабильный клок для внешнего АЦП (200кГц) 2) сможет ли малина вовремя складывать данные в буфер Я вот очень сомневаюсь что линукс сможет так быстро данные заглатывать. Какие варианты возможны? Quote Share this post Link to post Share on other sites More sharing options...
Aner 13 March 16, 2021 Posted March 16, 2021 · Report post Да по параллельному врядли получится, пользуют другие интерфейсы, тот же SPI и др. Quote Share this post Link to post Share on other sites More sharing options...
TigerSHARC 0 March 16, 2021 Posted March 16, 2021 · Report post хорошо, AD7606 поддерживает SPI. Я вот сомневаюсь что малина сможет вовремя забирать данные по прерыванию от АЦП на частоте 200кГц даже по SPI Quote Share this post Link to post Share on other sites More sharing options...
Aner 13 March 16, 2021 Posted March 16, 2021 · Report post сможет и быстрее. Quote Share this post Link to post Share on other sites More sharing options...
vervs 77 March 17, 2021 Posted March 17, 2021 · Report post 23 часа назад, TigerSHARC сказал: стабильный клок для внешнего АЦП требования к тактовому генератору определяются разрядностью и частотой выборок гулите "SNR vs jitter" Quote Share this post Link to post Share on other sites More sharing options...
TigerSHARC 0 March 17, 2021 Posted March 17, 2021 · Report post 6 hours ago, vervs said: требования к тактовому генератору определяются разрядностью и частотой выборок гулите "SNR vs jitter" на малине есть что-то вроде конфигурируемого таймера с выводом на GPIO? дергать GPIO программно на малине и думать что это хороший клок не хочется :) Quote Share this post Link to post Share on other sites More sharing options...
vervs 77 March 17, 2021 Posted March 17, 2021 · Report post как-то корявенько есть, может и более прямые варианты имеются Quote Share this post Link to post Share on other sites More sharing options...
Alex163 0 October 1 Posted October 1 · Report post Говоря об АЦП - а может, бывают модули с АЦП и памятью, позволяющие организовать осциллограф? Чтобы через Малинку задать скорость записи отсчётов в быструю память модуля и задать стартовое или стоповое условие; а потом не спеша прочитать отсчёты, обсчитать и нарисовать на экране картинку. Quote Share this post Link to post Share on other sites More sharing options...
khach 64 October 1 Posted October 1 · Report post 1 час назад, Alex163 сказал: Чтобы через Малинку https://github.com/kelu124/bomanz то если без FPGA или быстрой fifo памяти. Quote Share this post Link to post Share on other sites More sharing options...
_pv 103 October 2 Posted October 2 · Report post On 3/16/2021 at 9:11 AM, TigerSHARC said: хорошо, AD7606 поддерживает SPI. Я вот сомневаюсь что малина сможет вовремя забирать данные по прерыванию от АЦП на частоте 200кГц даже по SPI Для 16бит*200кГц*8каналов надо как минимум 25.6МГц spi клока, АЦП умеет только 23.5 и то только при 5В питании выходных драйверов, что "малине" не очень понравится, поэтому spi там "сдвоенный" и по-человечески запихнуть его в малину будет скорее всего ещё сложнее чем параллельный интерфейс. 18 hours ago, Alex163 said: Говоря об АЦП - а может, бывают модули с АЦП и памятью, позволяющие организовать осциллограф? Чтобы через Малинку задать скорость записи отсчётов в быструю память модуля и задать стартовое или стоповое условие; а потом не спеша прочитать отсчёты, обсчитать и нарисовать на экране картинку. Бывают, осциллограф называется :), через usb/ethernet подключиться и данные забирать. Если не хочется самому писать модули линукс ядра, или городить снаружи мелкий "труъ-realtime" микроконтроллер с памятью чтобы АЦП читать, а потом неспешно по запросу отдавать данные, и если месье понимает толк в извращениях, можно обойтись каким-нибудь костылями вроде FT232H. Буфер там несколько кБ, но для нескольких МБайт/с вроде хватает с highspeed USB, я им какой-то похожий ads1278 как-то читал с ПК. Quote Share this post Link to post Share on other sites More sharing options...
jcxz 342 October 2 Posted October 2 · Report post 22 часа назад, Alex163 сказал: а может, бывают модули с АЦП и памятью, позволяющие организовать осциллограф? Чтобы через Малинку задать скорость записи отсчётов в быструю память модуля и задать стартовое или стоповое условие; а потом не спеша прочитать отсчёты Берём LPC4370. Пишем ему простейшую прошивку. Которая будет просто делать захват из его АЦП на скорости <= 80MS/s во внутренние <=282KB ОЗУ LPC4370. Затем вычитываем полученные сэмплы через любой удобный интерфейс (USB, SPI, UART, ...). Только со стартовым условием будет затруднительно (если на большой скорости sample rate). Но тоже можно что-то придумать. А "стоповое условие" - зачем? Просто читать от старта макс. возможное число сэмплов и всё. 22 часа назад, Alex163 сказал: может, бывают модули Если хочется "модуль", то вот и модуль: https://www.nxp.com/design/design-center/development-boards-and-designs/OM13054 PS: Только получается очередная "Каша из топора". В которой малина - в роли топора. Потому как и сам LPC4370 вполне способен осциллограмму на LCD нарисовать. Quote Share this post Link to post Share on other sites More sharing options...
mantech 124 October 3 Posted October 3 · Report post 16 часов назад, jcxz сказал: будет просто делать захват из его АЦП на скорости <= 80MS/s во внутренние <=282KB ОЗУ LPC4370. Затем вычитываем полученные сэмплы через любой удобный интерфейс (USB, SPI, UART, ...). 80MS/s - при 12 битах, это 160мегабайт\сек, через какой уарт вы собираетесь это вычитывать?))) Это не осцилл будет, а просто стоп-кадр-буфер, типа лог анализатора в аналоговом виде с короткой памятью... Quote Share this post Link to post Share on other sites More sharing options...
jcxz 342 October 3 Posted October 3 · Report post 2 часа назад, mantech сказал: 80MS/s - при 12 битах, это 160мегабайт\сек, через какой уарт вы собираетесь это вычитывать?))) Вы бы хоть википедию почитали, что-ли. Почитайте в ней - что такое "осциллограф". А то ведь рассуждаете как кухарка, впервые услышавшая это слово. 2 часа назад, mantech сказал: Это не осцилл будет, а просто стоп-кадр-буфер, типа лог анализатора в аналоговом виде с короткой памятью... А что по вашему такое этот загадочный "осциллограф"? И как он работает? В качестве ликбеза для кухарок: Осциллограф - это прибор, который делает захват блока сэмплов исследуемого сигнала и отображение его на экране. Захват стартует по некоторому условию (триггер-условие). Осц. как правило имеют следующие режимы старта захвата: авто, ждущий, однократный. После каждого захвата, блок сэмплов должен быть показан на экране в течение какого-то времени. Как правило - нет смысла стартовать захват нового блока чаще, чем ~20Гц (нужно же какое-то время его отображать). Теперь предположим, что размер экрана осц. по X = 512 пикселей. Разрядность пикселей = 8 бит (более - также не имеет особого смысла). Итого - берём калькулятор и считаем: 512*10*20 = 102400 бод. Именно такая скорость передачи нужна для передачи блока захваченных данных осциллографа в автоматическом режиме развёртки, при размере экрана по X=512. Вы считаете, что 102400 бод для UART - это нечто запредельное??? Т.е. - видимо ваш любимый AllWinner не потянет такую "запредельную" скорость по UART? Так бросьте тогда его! Упоминаемый выше LPC4370 запросто выдаст по UART скорость и в 10 раз выше и даже ещё больше. Сможете сделать осциллограф с частотой развёртки в авт.режиме аж = ~200Гц! Мечту мух. Если вам 20Гц мало. ЗЫ: Надеюсь хоть немного развеял темноту кухаркиного невежества в электронике... Quote Share this post Link to post Share on other sites More sharing options...
jcxz 342 October 3 Posted October 3 · Report post 22 часа назад, _pv сказал: можно обойтись каким-нибудь костылями вроде FT232H. Буфер там несколько кБ, но для нескольких МБайт/с вроде хватает с highspeed USB Можно без костылей: Простейшая CY7C68013A + подключенный прямо к ней параллельный АЦП. CY7C68013A работает с тактовой до 48МГц с шириной шины до 16 бит. Если хорошенько помозговать, то можно придумать схему сопряжения CY7C68013A с параллельным АЦП. Диаграмму сопряжения с АЦП можно нарисовать в GPIF-редакторе. В идеале наверное можно получить скорость чтения АЦП до половины тактовой CY7C68013A (сомневаюсь что выше) = 24 MS/s. До LPC4370 далеко. В любом случае - шина от внешнего АЦП всегда будет узким местом. Которое сильно зарежет скорость. И дёшево на внешнем АЦП ничего сравнимого по скорости с LPC4370 - не сделать. Именно по этой причине. Да и какой смысл? LPC4370 стоит даже дешевле чем CY7C68013A. Не говоря уже о АЦП. PS: Можно сделать дорого: параллельный АЦП + FIFO-память (что-то типа 72V245L15TFGI или подобная; на нужную частоту / ширину шины; с раздельными шинами чтения/записи или с совмещённой) + схема сопряжения АЦП-FIFO. Кроме FIFO-чипа, можно также использовать какую-либо 2-х-портовую ОЗУ. Но всё это будет гораздо дороже. Quote Share this post Link to post Share on other sites More sharing options...
mantech 124 October 3 Posted October 3 · Report post 1 час назад, jcxz сказал: ЗЫ: Надеюсь хоть немного развеял темноту кухаркиного невежества в электронике... Ммм, да, шикарно, расскажите теперь почему для скоростных "комповых" осциллов применяют усб 3.0, там же уарта через переходник будет достаточно)))))) 1 час назад, jcxz сказал: Теперь предположим, что размер экрана осц. по X = 512 пикселей. Разрядность пикселей = 8 бит А, теперь понял, для карманной игрушки, наверно сойдет))) 1 час назад, jcxz сказал: Так бросьте тогда его! Нет не брошу, он хороший, лучше всяких ваших там)))) Quote Share this post Link to post Share on other sites More sharing options...