iiv 29 7 июля Опубликовано 7 июля · Жалоба 18 minutes ago, _pv said: там, кстати, и пожирнее есть, например, MSPM0G3105, с 32МГц spi и двумя АЦП по 4МСПС. Спасибо!!! Это, кстати, может быть очень классным для меня решением, так как если я буду по 800КС/с на 10 каналах собрать, и при 80МГц тактовой в целых числах я смогу многое предварительно обработать и на выходе уже иметь существенно меньший трафик, который в 32МГц SPI с легкостью полезет. Альтернативно, сделать на нем 8-ми битный параллельный интерфейс на 12МГц уже на голом GPIO. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Priest_89 8 8 июля Опубликовано 8 июля · Жалоба А обработка требуется поканальная или всего массива данных вместе? Возможно, глупость скажу - но 20-30 китайских bluepill по 1.5 доллара для оцифровки и обработки плюс один для управления и синхронизации - не вариант? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iiv 29 8 июля Опубликовано 8 июля · Жалоба 2 hours ago, Priest_89 said: А обработка требуется поканальная или всего массива данных вместе? кучкой по несколько миллисекунд со всех каналов, то есть около 1000*60 данных за раз надо обработать, на выходе получить около 100 чисел, послать по ком-порту, и приступить к обработке следующей партии. Можно по 5-10 отсчетов, то есть 5*60 данных немного предобрабатывать и уменьшать трафик в 4-5 раз. 2 hours ago, Priest_89 said: но 20-30 китайских bluepill по 1.5 доллара спасибо за совет, к сожалению, это будет много места занимать. На данный момент уже в процессе разводки на MSPM0G3107 по совету уважаемого _pv на этом решении и место раза в 3 меньше надо, и стоимость раз в 10 падает, да и каналов можно побольше, но от 80 каналов наверное esp32 уже не потянет, и надо будет думать о чем-то более жирном. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 8 июля Опубликовано 8 июля · Жалоба 3 часа назад, iiv сказал: но от 80 каналов наверное esp32 уже не потянет, и надо будет думать о чем-то более жирном. как же так??? Ведь: В 07.07.2024 в 13:18, iiv сказал: у вас всегда ко мне один и тот же совет - взять камень по толще, подороже. Но не об этом тема, поймите, пожалуйста! PS: Боюсь, что опять окажется что "даю совет взять камень по-толще по-дороже", но XMC4502 имеет: "Four Analog-Digital Converters (VADC) of 12-bit resolution, 8 channels each". Хотя сомневаюсь что удастся с него одного 80 каналов на 0.32MS/s. А вот с пары XMC4502 - должно получиться. Ну и по периферии, через которую можно отдать данные наружу - он богат: хоть несколько QSPI, хоть SDMMC 4-битный, хоть внешняя шина (EBU). И проще сего (имхо): 2шт.XMC4502 + TMS320C6745 со связью через параллельную шину или несколько QSPI. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 79 8 июля Опубликовано 8 июля · Жалоба 46 minutes ago, jcxz said: PS: Боюсь, что опять окажется что "даю совет взять камень по-толще по-дороже", но XMC4502 имеет: "Four Analog-Digital Converters (VADC) of 12-bit resolution, 8 channels each". Хотя сомневаюсь что удастся с него одного 80 каналов на 0.32MS/s. А вот с пары XMC4502 - должно получиться. Ну и по периферии, через которую можно отдать данные наружу - он богат: хоть несколько QSPI, хоть SDMMC 4-битный, хоть внешняя шина (EBU). И проще сего (имхо): 2шт.XMC4502 + TMS320C6745 со связью через параллельную шину или несколько QSPI. с коммуникационной периферией у XMC действительно всё очень хорошо, но заявленные 4 мегасэмпла АЦП выдаст только в интерливе если их объединить, так там 4 х 2Мспс АЦП: 12-bit conversion time: tCN12C = (2 + 12 + 2) × tADCI + 2 × tADC = 16 × 33.3 ns + 2 × 8.3 ns = 550 ns т.е. суммарно столько же сколько у тексасовских кортексов M0, 2x4Msps, только те стоят 50 центов, а не 7$. ну и даже пары всё равно не хватит на 80 каналов, так как 4 ацп * 8 каналов по 250кГц это только 32 входа, а если надо быстрее то каналов будет ещё меньше. проще и дешевле тогда наверное будет быстрый параллельный АЦП с гирляндой мультиплексоров к TMS320C6745 прицепить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 8 июля Опубликовано 8 июля · Жалоба 1 час назад, _pv сказал: с коммуникационной периферией у XMC действительно всё очень хорошо, но заявленные 4 мегасэмпла АЦП выдаст только в интерливе если их объединить, так там 4 х 2Мспс АЦП: 12-bit conversion time: tCN12C = (2 + 12 + 2) × tADCI + 2 × tADC = 16 × 33.3 ns + 2 × 8.3 ns = 550 ns т.е. суммарно столько же сколько у тексасовских кортексов M0, 2x4Msps, только те стоят 50 центов, а не 7$. А где вы такие цены нашли??? Я смотрел на digikey и mouser - MSPM0G3107: ~1.7$ (поштучно, у ТС явно не массовое производство). XMC4502 = 8$ Насчёт того, что двух XMC4502 не хватит (по скорости) - пожалуй вы правы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iiv 29 8 июля Опубликовано 8 июля · Жалоба 7 minutes ago, jcxz said: А где вы такие цены нашли??? mspm0g3105-7 - да, 1.1 евро за штуку при 100 экземплярах, а вот mspm0c1104 - только 40 центов за штуку при 100 экземплярах заказа. Хотелось на более дешевых, но из-за того, что их нет в наличии вот сейчас, а другие - уже есть, сейчас развожу на mspm0g3105 из расчета по 8 каналов на процессор, на лету считать разницу и назад отдавать по 20-32МГц SPI слейв шине, которую запараллелить на основном процессоре. Цена тоже играет не последнюю роль, так как таких конструкций (по 40-60 каналов) надо собрать только на попробовать около 20 экземпляров, если в каждой по 8 таких процессоров, то уже как раз и 80 экземпляров надобно, то есть 100 экземпляров - как раз с запасом, что если где полетит и разобьется, или криво спаяется и, только на попробовать. 16 minutes ago, jcxz said: XMC4502 Спасибо!!! Процессор интересный, начал смотреть. Конечно не такой простой, как mspm0g3105, про который я только вчера первый раз услышал и сейчас уже развел (очень-очень надеюсь, что без ошибок) свой первый тестовый вариант моей платы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 8 июля Опубликовано 8 июля · Жалоба В 06.07.2024 в 22:23, _pv сказал: LPC4370 + 2 x ADG732 = 64 канала x 12бит x 1.25МГц LPC4370 + 3 x ADG732 = 96 каналов x 12бит x 800кГц Подумалось, что может получится сделать так, если удастся запрограммировать передачу результатов АЦП с помощью DMA напрямую в регистры SGPIO. Без промежуточного буфера в ОЗУ. А уже SGPIO - несколько последовательных потоков наружу. И если всё это будет работать синхронно, то и CPU ещё какой-то код сможет выполнять. Но обработку - всё равно внешним процессором. LPC4370 использовать только как многоканальный АЦП. Но это только в теории. Надо пробовать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 29 8 июля Опубликовано 8 июля · Жалоба Хорошо бы ещё промоделировать мультиплексор. Могут быть проблемы при быстром переключении. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 79 8 июля Опубликовано 8 июля · Жалоба 11 minutes ago, jcxz said: Подумалось, что может получится сделать так, если удастся запрограммировать передачу результатов АЦП с помощью DMA напрямую в регистры SGPIO. если там в шины данных памяти упирается что не хватает на одновременную чтение/запись и считать надо что-то совсем уж простое типа разности двух сэмплов, может и наоборот тоже получится именно процессором перекладывать из регистра adc в регистр sgpio, без dma и памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 8 июля Опубликовано 8 июля · Жалоба 1 час назад, _pv сказал: если там в шины данных памяти упирается что не хватает на одновременную чтение/запись и считать надо что-то совсем уж простое типа разности двух сэмплов, может и наоборот тоже получится именно процессором перекладывать из регистра adc в регистр sgpio, без dma и памяти. Там не "регистр АЦП", а FIFO (внутри АЦП). Которое к тому же может объединять по два сэмпла подряд в одно 32-битное слово. И DMA может читать из него этими 32-битными словами. В этом плане проще. Но LPC4370 - это flashless МК. Соответственно - CPU обращается к ОЗУ не только за данными, но и за кодом. А дальше просто нужно посчитать максимальную нагрузку на ОЗУ и матрицу шин при работе АЦП, DMA, CPU. Можно конечно разнести код и данные в разные регионы ОЗУ, может даже - запустить код из внешней флешки подключенной на SPIFI, с расчётом что выполнение не уйдёт за пределы её кеша. Но по-крайней мере - мне в своё время не удалось выполнять код из ОЗУ при работающем АЦП. Приходилось класть CPU в сон на время работы АЦП->DMA->ОЗУ. Иначе - получал переполнение FIFO АЦП. Правда у меня АЦП работал на максимальной частоте = 80 MS/s. Да и задача позволяла класть CPU в сон на время работы АЦП (АЦП выполняла захват только 8000 сэмплов; потом - стоп). Так что - сильно долго не пытался заставить CPU работать без переполнения FIFO АЦП - не особо нужно было. Да, можно попробовать - без DMA: читать CPU прямо из FIFO АЦП и желательно пару сэмплов (32 бита); дальше (если обработка целочисленная) - можно попробовать обрабатывать сразу пары сэмплов (в "DSP-наборе" команд ARM есть несколько подходящих команд для пар 16-битных значений); и класть результаты сразу в FIFO SGPIO. Но ТС писал про мегафлопсы, значит у него обработка видимо в плавающей точке, а тогда всё гораздо печальнее. С плавучкой уже почти наверняка не влезет, даже если обработка самая простейшая. Но даже с целочисленной обработкой - не факт, что влезет, нужно экспериментировать. Слишком всё впритык.... 1 час назад, MegaVolt сказал: Хорошо бы ещё промоделировать мультиплексор. Могут быть проблемы при быстром переключении. Можно скомбинировать внутренний мультиплексор (там 6 каналов) и внешние мультиплексоры. Заранее коммутируя их, пока идут преобразования на других каналах внутреннего мультиплексора. Навесить 6 внешних мультиплексоров на 6 внутренних каналов и коммутировать их со сдвигом времени. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 67 9 июля Опубликовано 9 июля · Жалоба А каково целевое назначение сего чудного устройства? По всем признакам очень похоже на акустический локатор. Например, для обнаружения и лоцирования дронов. И/или местоположения источника выстрела. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iiv 29 9 июля Опубликовано 9 июля · Жалоба 8 hours ago, dxp said: А каково целевое назначение сего чудного устройства? По всем признакам очень похоже на акустический локатор. Например, для обнаружения и лоцирования дронов. И/или местоположения источника выстрела. да, верно аккустический локатор, правда на самом дроне (поэтому вес важен) и не для обнаружения других дронов, а для получения пространственной картины, с дрона идет ультразвук и эта куча микрофонов детектирует отклики от близко расположенных объектов, чтобы не столкнуться. Стоит в дополнении к 20 ИК/обычных камер. Камеры не всегда все хорошо видят, особенное если темно, подсветка не сработала, а ультразвук как раз в ближней зоне хорошо все видит. До этого пробовал лазерные ИК дальномеры, но они очень узконаправленные, если летаешь по лесу, то все идет юзом, вот хочу попробовать таким объемным ультразвуком. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 12 июля Опубликовано 12 июля · Жалоба Если по каким-то причинам не выгорит с MSPM0G3107, то вспомнил тут про ещё один _возможно_ подходящий для задачи ТС МК с много-АЦП: серия SPC58NH... от STM. Совсем про них забыл.... Я сам с ними не работал, но рассматривал для какого-то проекта. Так что сужу чисто теоретически - по даташиту. Если ему верить, то они имеют по 4 SAR ADC с частотой выборок до 16MHz/5 = 3.2MS/s (в 10-битном fast режиме). И 100 АЦП-каналов. Т.е. - если каналы в чипе распределены так, что получится на каждый АЦП посадить по 10 каналов (я не смотрел распределение), то как раз получатся желаемые 0.32MS/s на канал. И того = 40 каналов на один МК. 2 МК = уже 80 каналов. На mouser-е и digikey они есть на складе, с ценой ~30 евро при 100шт. партии. Т.е. - вроде не смертельно для проекта ТС. Правда в наличии почему-то только самые тяжёлые (и дорогие) камни из линейки: SPC58NH92... (3-ядерные, с 10 МБ флеша). 6МБ-ных почему-то нет в наличии (а они думаю должны быть заметно дешевле). Но может ещё появятся вскоре? К тому-же: 3 ядра по 200МГц каждое - возможно хватит даже и для обработки данных (40 каналов на чипе). Архитектура у них правда какая-то хитрая: Цитата Three main CPUs, dual issue, 32-bit CPU core complexes (e200z4), one of them having a checker core in lock-step не народный Cortex. Но... наличие у каждого ядра своей памяти: Цитата 1088 KB on-chip general-purpose SRAM (in addition to 192 KB core local data RAM): 64 KB in CPU_0, 64 KB in CPU_1 and 64 KB in CPU_2 ...а также кешей: Цитата 32 KB local instruction RAM and 64 KB local data RAM for Core_0, Core_1 and Core_2 – 16 KB I-Cache and 8 KB D-Cache for Core_0, Core_1 and Core_2 ...и некий "лёгкий DSP-набор": Цитата Lightweight signal processing auxiliary processing unit (LSP APU) instruction support for digital signal processing (DSP) on Core_0, Core_1, Core_2 дают надежду, что возможно этот МК сможет потянуть и обработку данных. И тогда - кроме двух таких МК на плате, больше ничего и не нужно будет. К тому же - там имеется некий: Цитата Multi channel direct memory access controllers (eDMA) – One eDMA with 64 channels – One eDMA with 16 channels Если этот eDMA (enhanced?) позволит поток сэмплов со всех 4 АЦП раскидывать равномерно по регионам ОЗУ трёх ядер, распределяя таким образом вычислительную нагрузку по ним, то шансы успеть прожевать все данные и не захлебнуться - имеются. Получается: 3.2*4/3 = ~4.267 MS/s - вычислительная нагрузка на каждое 200МГц-овое ядро. При работе каждого ядра в своём регионе ОЗУ я думаю - уже должно хватить быстродействия прожевать этот поток. Хотя конечно нужно бы посмотреть - что там за система команд и что она могёт? 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kamil_ismailov 1 8 августа Опубликовано 8 августа · Жалоба У ADI были примеры или эвалборды с похожим применением, если не ошибаюсь, для всяких видео-АЦП типа AD9271. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться