Перейти к содержанию
    

А есть ли где поисковик по переферии процессоров, конкретно по АЦП?

Добрый день,

 

как-то много АРМов, и все разные. Иногда хочется чего-то простого в разводке, но например, с быстрым АЦП. Скажите, пожалуйста, есть ли такой поисковик, чтоб, например, задал условия: не менее 12 каналов АЦП, каждый на 1MS/s и больше, и получился список АРМов, которые это поддерживают?

 

Конкретно, в данный момент ищу процессор с 12 и больше каналов, чтобы с каждого канала от 1MS/s, а лучше 2MS/s было. Вроде stm32f7 чуть-чуть не дотягивает. Сделать на стороннем АЦП + ПЛИС + процессор могу, но не хотелось бы тратить время на не тривиальную разводку.

 

Спасибо!

 

ИИВ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

был довольно удобный параметрический поиск на mcu.ru, но он последний раз обновлялся лет пять назад,

да и параметрического поиска,который различает количество именно АЦП, а не каналов мультиплексора думаю нет даже у самих производителей МК.

 

довольно специфичный АЦП получается с суммарным 12-24MSPS.

такое искать надо в каких-нибудь тексасовских TMS320F28044 или его более современных братьях по разуму (delfino), в которых АЦП помедленнее ~4msps, но несколько штук.

у пиков32 тоже тоже бывает по 4-6АЦП по 3-4MSPS каждый, которые с понижением разрядности 20-30MSPS суммарно могут выдать. https://www.microchip.com/promo/pic32-adc

ещё можно мультиплексор снаружи к lpc4370 приделать там 80мспс х 12бит, но каналов не особо много.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 часов назад, iiv сказал:

Конкретно, в данный момент ищу процессор с 12 и больше каналов, чтобы с каждого канала от 1MS/s, а лучше 2MS/s было. Вроде stm32f7 чуть-чуть не дотягивает. Сделать на стороннем АЦП + ПЛИС + процессор могу, но не хотелось бы тратить время на не тривиальную разводку.

В топовых TriCore (TC29x Infineon) есть до 11-и независимых 12-разрядных АЦП с частотой преобразования немного больше 1MS/s каждый. На каждом АЦП есть мультиплексор.

Можно уменьшить разрядность, увеличив скорость преобразования.

Да и МК довольно мощный и с большим объёмом ОЗУ и 3-я ядрами, чтобы можно было прожевать потом эти данные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 часов назад, iiv сказал:

Конкретно, в данный момент ищу процессор с 12 и больше каналов, чтобы с каждого канала от 1MS/s, а лучше 2MS/s было. Вроде stm32f7 чуть-чуть не дотягивает.

Какая разрядность?

stm32h7 (да и f7 наверное) может понизится до 8 бит (соответственно увеличить скорость) и получить на каждом из трёх встроенных ADC 6MSPS, т.е. "тютелька в тютельку" :) Плюс ядро на 400 МГц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое за классные советы!

 

А действительно есть большое разнообразие.

 

Конкретно на данный момент мне надобно максимально быстро и дешево оцифровывать одновременно 12 каналов, в которых есть несколько гармоник из диапазона 10КГц-15МГц и попробовать эти каналы друг с другом пачками по 1мс коррелировать. То есть и памяти надо немного - где-то на 3-5 копий с каждой миллисекунды, и точность - абы как, то есть и 8 бит хватит. Я предполагаю, что пока могу забить на высокочастотные гармоники, возможно даже превентивно фильтруя его, и рассматривать сигнал с 100КГц-1МГц, но если есть возможность работать на большей частоте, то лучше.

 

Если корреляция получится, то перейду на классическую схему АЦП - ПЛИС - компьютер (а входной сигнал будет с уже большими частотами, и каналов может быть больше), но хочется проверить теорию максимально быстро и с минимальными затратами на железо.

 

То есть сейчас очень заманчиво поставить 6 однобитных мультиплексоров на каждый вход lpc4370 и попробовать такое развести и запрограммировать, хотя ИМХО, на stm32h7 наверное будет проще, хоть я высокие частоты не увижу.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

56 minutes ago, iiv said:

То есть сейчас очень заманчиво поставить 6 однобитных мультиплексоров на каждый вход lpc4370 и попробовать такое развести и запрограммировать, хотя ИМХО, на stm32h7 наверное будет проще, хоть я высокие частоты не увижу.

для попробовать можно взять lpclink2, он же OM13054. там 100ногий lpc4370 c трехканальным мультиплексором на АЦП, а внешний мультиплексор всё равно какой, 6x2:1 или 3x4:1 или 12:1.

а с учётом того что они стоят по 20$, можно просто 4 штуки взять, только с синхронизацией что-нибудь придумать. от одних клоков запитать и фазы pll отдельно предварительно померить.

 

ещё можно взять http://www.ti.com/tool/LAUNCHXL-F28379D 

там 4 АЦП по 3.5MSPS и мультиплексор на 20 каналов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое, _pv,

 

пока хочу попробовать по Вашему совету с одной OM13054, на которую подавать сигнал через три мультиплексора ADV3221 (а может и ADG704 будет достаточно). Поставить 4 платы lpclink2 боюсь не осилить и не только из-за сложности в синхронизации, но и в сложности по объединению данных для обработки, на 80MSPS суммарно получается гигабитный поток и не понятно как из этой платы его вытащить.

 

Техасовская плата конечно интересна, но возможность оцифровывать мои сигналы на 6MS/s против 1.2MS/s существенно меняет расклад.

 

Скажите, пожалуйста, а как и на какой скорости можно вытаскивать данные с OM13054 на PC и правильно ли я понимаю, что только по USB? Как-то странно, что на сайте https://www.nxp.com/design/microcontrollers-developer-resources/lpc-microcontroller-utilities/lpc-link2:OM13054 очень мало информации про саму плату и физического расположения коннекторов на ней, а заказать сегодня ее я не успел, то есть придет только теперь не раньше понедельника.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

там схема есть, на плате шелкографией имена коннекторов подписаны. быстрый АЦП на J4 справа сверху

все 80Msps не вытащить, но Вам же только 1мс нужна, это 80(160)кБ столько памяти у него есть.

 

а если всё равно городить мультиплексор, почему бы его выход тогда просто в осциллограф не засунуть, если разрядности 8 бит хватает?

нужны лишь клоки, 4 битный счётчик и какой-нибудь CD74HC4067, ну или поаккуратней мультиплексор можно даже найти.

записать осциллографом 1мс: один канал выход, другой - клоки счётчика мультиплексора, чтобы разобрать потом где кто.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 часов назад, iiv сказал:

хочу попробовать по Вашему совету с одной OM13054, на которую подавать сигнал через три мультиплексора ADV3221 (а может и ADG704 будет достаточно). Поставить 4 платы lpclink2 боюсь не осилить и не только из-за сложности в синхронизации, но и в сложности по объединению данных для обработки, на 80MSPS суммарно получается гигабитный поток и не понятно как из этой платы его вытащить.

Изначально Вы ничего не написали про то "куда и зачем собираетесь девать потом считанные с АЦП данные". Обрабатывать как-то? Передавать куда-то?

А с таким потоком, чтобы потом с этими данными что-то можно было сделать, нужно ещё и неслабое вычислительное ядро. Поэтому я и посоветовал TriCore. Ну или DSP-ядра тоже должны справиться.

У LPC4370 с максимальным потоком 80 MS/s уже быстродействия может быть впритык для пережёвывания этого потока. Там только чтобы захватить поток на 80 MS/s уже придётся постараться: читать с АЦП только в упакованном режиме, повысить приоритет DMA и постараться чтобы процессор не мешал работе DMA по приёму с АЦП (чтобы он во время приёма не обращался интенсивно к тому же региону ОЗУ). И то не факт что получится.

Про непрерывный потоковый режим (приём АЦП->DMA->ОЗУ и одновременное ОЗУ->DMA->USB из этого же региона) я не уверен, что вообще так будет успевать работать: надо не забывать, что DMA тут должен работать в режиме связанных списков (так как непрерывный поток), а это может стать проблемой. Но может и будет работать (там вроде у USB свой DMA).

Надо пробовать. Сначала запустить непрерывный приём в ОЗУ из АЦП на 80 MS/s. Потом добавить USB. Может если раскидать их по разным регионам ОЗУ, остановить ядро M4 на время передачи, использовать только одно ядро M0 (то, которое имеет своё выделенное ОЗУ). Тогда может получится. На какую либо более-менее сложную обработку во время потока мне кажется вряд-ли стоит рассчитывать.

8 часов назад, iiv сказал:

Как-то странно, что на сайте https://www.nxp.com/design/microcontrollers-developer-resources/lpc-microcontroller-utilities/lpc-link2:OM13054 очень мало информации про саму плату и физического расположения коннекторов на ней, а заказать сегодня ее я не успел, то есть придет только теперь не раньше понедельника.

Потому что OM13054 не NXP-ная, у неё другой производитель. На его сайте и нужно искать доки: https://www.embeddedartists.com/products/lpc-link2/

С доками там всё ок. А вот с разъёмами на этой плате - не очень. Мало что выведено на разъёмы. Да и сами разъёмы неудобные и дорогие. Смутно помню, что там вроде всего 3 канала быстрого АЦП выведено на разъёмы (хотя могу ошибаться - давно уже с ней работал).

 

PS: Если LPC4370 будет работать не в непрерывном режиме, а захватывать только 1 мс, а потом - длинная пауза, то тогда наверное справится (но всё равно нужно прояснить вопрос с работой DMA, так как 80000 сэмплов не уложатся в одну DMA-пересылку; может надо будет вообще от DMA отказаться и читать CPU из FIFO АЦП). Но тогда неясен Ваш вопрос про

8 часов назад, iiv сказал:

на какой скорости можно вытаскивать данные с OM13054 на PC и правильно ли я понимаю, что только по USB?

так как очевидно, что в таком режиме данные можно вытаскивать через любой удобный интерфейс.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 minutes ago, jcxz said:

Изначально Вы ничего не написали про то "куда и зачем собираетесь девать потом считанные с АЦП данные". Обрабатывать как-то? Передавать куда-то?

ТС'у нужен коррелятор, причем не один, а 12*11/2 = 66 шт.:

19 hours ago, iiv said:

Конкретно на данный момент мне надобно максимально быстро и дешево оцифровывать одновременно 12 каналов, в которых есть несколько гармоник из диапазона 10КГц-15МГц и попробовать эти каналы друг с другом пачками по 1мс коррелировать.

Сделать такое на МК в реальном времени, ИМХО, нереально..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, blackfin сказал:

ТС'у нужен коррелятор, причем не один, а 12*11/2 = 66 шт.:

Сделать такое на МК в реальном времени, ИМХО, нереально..

Ну он же не написал какие дырки будут между этими 1-мс пачками. Да и процессоры бывают разные, DSP-ядра довольно мощны. Да и TriCore - 3 ядра по 300МГц каждое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое всем за важные замечания по поводу производительности.

 

Да, мне понятно, что сама обработка не тривиальна, у меня с двух каналов, правда на 160MSPS, самый жирный пятый циклон еле справляется. У меня корреляция не только самими сигналами, но и с несколькими их копиями от предыдущих измерений, поэтому там все так вычислительно сложно (то есть в идеале корреляторов может быть существенно больше 66 как посчитал blackfin, но посмотрев на данные я хочу от многих отказаться). Сейчас я хочу только на данные посмотреть, чтоб понять что дальше туда ставить, понятно, что хочется иметь сразу в кустах рояль суперкомпьютер, но, возможно сделав несколько дампов или посчитав только несколько корреляционных коэффициентов мне будет понятно что мне надо там вычислять, а что - не нужно.

 

3 hours ago, jcxz said:

TriCore

скажите, пожалуйста, я на инфенионовских процессорах ни разу до этого не работал, там много танцев с бубном, если надо только 12 потоков с АЦП далее численно обрабатывать результаты посылать по USB на компьютер?

 

Спасибо!

4 hours ago, jcxz said:

PS: Если LPC4370 будет работать не в непрерывном режиме, а захватывать только 1 мс, а потом - длинная пауза, то тогда наверное справится (но всё равно нужно прояснить вопрос с работой DMA, так как 80000 сэмплов не уложатся в одну DMA-пересылку; может надо будет вообще от DMA отказаться и читать CPU из FIFO АЦП). Но тогда неясен Ваш вопрос про 

12 hours ago, iiv said:

на какой скорости можно вытаскивать данные с OM13054 на PC и правильно ли я понимаю, что только по USB?

так как очевидно, что в таком режиме данные можно вытаскивать через любой удобный интерфейс. 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, iiv сказал:

скажите, пожалуйста, я на инфенионовских процессорах ни разу до этого не работал, там много танцев с бубном, если надо только 12 потоков с АЦП далее численно обрабатывать результаты посылать по USB на компьютер?

На сами TriCore мы пока только облизываемся. Пока работаем с XMC4xxx. На них никаких проблем с АЦП нету (работают сразу все 4 АЦП на почти максимальной частоте 2MS/s).

USB на XMC4xxx не используем, а АЦП хорошо сделан - имеет много фич. Вроде как на TriCore периферия очень похожа на XMC4xxx.

1 час назад, iiv сказал:

я только хочу вытаскивать хотя бы часть данных, чтобы на них посмотреть, а вытаскивать в виде самих данных по USB или что-то коррелировать и вытаскуивать коэффициенты - это будет ясно по ходу, возможно надо и то и другое будет попробовать.

Я на LPC4370 работал в режиме: 100 мкс данных на 80 MS/s (M4 в это время спит), потом обработка, выдача в USB и простой до начала следующего цикла. И такие циклы - с периодом около 100Гц. Так норм. работало. Но уже если не останавливать M4 на время работы ADC->DMA->RAM, то происходило иногда переполнение FIFO АЦП. Я особо не копал - вполне возможно, что и при работающем M4-ядре можно было заставить нормально работать ADC->DMA->RAM - так как мне всё равно M4 не нужно было во время чтения из АЦП, то просто останавливал.

И как уже сказал выше - если размер DMA-пересылки больше чем 2^12 слов, то нужно использовать режим "свЯзных списков DMA", а это значит - перезагрузка регистров DMA-канала после каждых 2^12 пересылок, а значит - приостанов обслуживания на некоторое время FIFO АЦП, что может приводить к его переполнению. В моей задаче мне хватало длительности 100мкс, а значит всё влазило в одну DMA-транзакцию. Не знаю - может можно как-то обойти эту потенциальную проблему например с помощью burst-ов - надо смотреть внимательнее на регистры DMA.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

26 minutes ago, jcxz said:

На сами TriCore мы пока только облизываемся. Пока работаем с XMC4xxx. На них никаких проблем с АЦП нету (работают сразу все 4 АЦП на почти максимальной частоте 2MS/s). 

Спасибо большое, возможно мне по частоте может не хватить. Я пока попробовал на двух MCP3913 задрав в ущерб точности 250КSPS на канал, но, то что хотел - не увидел. 750КSPS на TriCore на канал мне может, к сожалению, не хватить.

 

Может правильнее все 12 каналов замультеплексировать 12:2 и собирать эти данные своей двухканальной поделкой на 160МSPS, всяко у меня там все есть, и процессор с гигафлопсом и гигабайтом оперативки, и плиска, а, главное, я уже все эти интерфейсы запрограммировал и в них разбираться не надо. Спасибо, _pv за идею!!!

 

Огромное всем спасибо за классные советы и обсуждения!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только мультиплексор 16:1 из гирлянды быстрых spdt ключей собирать придется. Вроде sn74lvc2g53 или ts5a3157. У готовых мультиплексоров 16:1 быстродействие скорее всего так себе будет, чтобы на 160Мгц переключаться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...