реклама на сайте
подробности

 
 
9 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Самодельный игрушечный осциллограф
Слесарь
сообщение Jan 25 2017, 11:55
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 705
Регистрация: 7-11-09
Из: Ростовская обл.
Пользователь №: 53 484



Здравствуйте!
Если не покупать готовый цифровой осциллограф, рассматриваю вариант спаять самому. Как понимаю, архитектура проста до безобразия, достаточно быстрый МК читает по одной параллельной шине данные достаточно быстрого АЦП, сохраняет в память и допустим каждые 20 мс. по другой шине передает данные на дисплей от сотового телефона.
Первое что попалось на глаза АЦП AD9280 (32MIPS).
Проц PIC24HJ12GP202 (40MIPS).
Дисплей + сенсор, пока еще рассматриваю варианты от Самсунг или Нокии.

Верна ли архитектура?
Как думаете, потребуется ли более быстрый проц для полноценного использования приведенного АЦП? Собственно, как понимаю, надо только быстро тактировать АЦП, принимать данные по параллельной шине и сохранять в оперативной памяти. ничего сложного, но достаточно ли будет быстродействия?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 25 2017, 12:03
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 7 477
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Синхронизированный сигнал на экране иметь не желаете? rolleyes.gif
P.S. в слове "осциллограф" сколько букв 'ф'?
Go to the top of the page
 
+Quote Post
novikovfb
сообщение Jan 25 2017, 12:06
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 323
Регистрация: 29-09-11
Пользователь №: 67 450



Цитата(Слесарь @ Jan 25 2017, 15:55) *
Как думаете, потребуется ли более быстрый проц для полноценного использования приведенного АЦП? Собственно, как понимаю, надо только быстро тактировать АЦП, принимать данные по параллельной шине и сохранять в оперативной памяти. ничего сложного, но достаточно ли будет быстродействия?

процессор должен:
1. прочитать данные из АЦП
2. записать в оперативную память
3. продвинуть указатель записи на следующую позицию
4. определить, заполнен буфер в памяти или нет
5. если заполнен - начать отображение
Чтобы выполнить каждое из этих действий, процессор должен выполнить далеко не одну команду. Поэтому, для приема 32 млн выборок в секунду нужно хотя бы 160 млн операций в секунду, ПИКу и не снилось. А на малой частоте - будет работать, если программу получится написать. Ну и входные цепи АЦП - совсем не то, что требуется от входов осциллографа.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 25 2017, 12:19
Сообщение #4


Mentor
******

Группа: Модераторы
Сообщений: 5 146
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Слесарь @ Jan 25 2017, 13:55) *
Верна ли архитектура?

"Архитектура" не верна.

Рекомендую Kinetis KV5x
Честные 240 МГц позволят делать сложные триггеры.
4-е 12-и битных ADC по 5 MSPS в комбинации дадут 20 MSPS.
Кроме того там уже есть встроенные аппаратные триггеры по превышению уровня, по понижению уровня и по переходу через 0.
Встроенный DMA снизит нагрузку на шину на полной скорости ADC до считанных процентов.
В добавок есть и 16-и битный ADC (но медленный).
Ну и имеющийся готовый универсальный протокол обмена с PC тоже плюс.
Go to the top of the page
 
+Quote Post
Слесарь
сообщение Jan 25 2017, 12:33
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 705
Регистрация: 7-11-09
Из: Ростовская обл.
Пользователь №: 53 484



Ну там по идее должно выполняться до нескольких команд за один такт. Частота как понимаю до 80 МГц. Предлагаете поставить PIC проц на 70 MIPS ?

Цитата(AlexandrY @ Jan 25 2017, 15:19) *
Ну и имеющийся готовый универсальный протокол обмена с PC тоже плюс.

Я не предполагал использовать РС в качестве отображающего устройства. По цене РС есть готовые осциллы 200 мГц, более компактные и более удобные в управлении. например из линейки HANTEK DSO5202P

Задача усложняется, - допустим указанный проц имеющаяся среда разработки поддерживает. а более быстрые процы, допустим PIC33, скорее всего не поддерживает.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 25 2017, 13:10
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 501
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Слесарь @ Jan 25 2017, 14:55) *
Если не покупать готовый цифровой осциллограф, рассматриваю вариант спаять самому. Как понимаю, архитектура проста до безобразия, достаточно быстрый МК читает по одной
...
Как думаете, потребуется ли более быстрый проц для полноценного использования приведенного АЦП? Собственно, как понимаю, надо только быстро тактировать АЦП, принимать данные по параллельной шине и сохранять в оперативной памяти. ничего сложного, но достаточно ли будет быстродействия?

Как видно из контекста сообщения - "спаять" Вы его сможете, а вот "сделать" - нет. wink.gif
Go to the top of the page
 
+Quote Post
Слесарь
сообщение Jan 25 2017, 13:16
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 705
Регистрация: 7-11-09
Из: Ростовская обл.
Пользователь №: 53 484



Разобрался, можно применить dsPIC33 (70 MIPS), ну а встроенный модуль DSP позволит использовать осцилл, как прочую измерительную аппаратуру, типа анализаторы спектра и декодеры сигналов.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 25 2017, 13:17
Сообщение #8


Mentor
******

Группа: Модераторы
Сообщений: 5 146
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Слесарь @ Jan 25 2017, 14:33) *
Я не предполагал использовать РС в качестве отображающего устройства. По цене РС есть готовые осциллы 200 мГц, более компактные и более удобные в управлении. например из линейки HANTEK DSO5202P


Я и не предлагал, делать осциллограф на PC.
Просто закон природы такой, что прежде чем запустить рендеринг на встроенном дисплее, надо долго и упорно качать и проверять всяческие отладочные данные на PC.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 25 2017, 13:24
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 501
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(AlexandrY @ Jan 25 2017, 15:19) *
Честные 240 МГц позволят делать сложные триггеры.
4-е 12-и битных ADC по 5 MSPS в комбинации дадут 20 MSPS.

Как уже тут говорил не раз - лучше в этом плане - LPC4370:
1. Нет проблем с внешним интерфейсом (это будет узким местом, так как потребует реально быстрой внешней шины ещё и совместимой по сигналам, GPIO вряд-ли потянет, если и потянет - кроме обслуживания GPIO МК возможно больше ничего не будет успевать делать).
2. Частота сэмплирования заведомо выше (и опять-же - DMA работает уже не с внешним интерфейсом, а напрямую с АЦП, что позволяет использовать все его плюшки по уменьшению загрузки шины, типа упаковки данных в 32-битные слова и FIFO).
3. 3 ядра, что может оказаться полезным, например - для той же кадровой синхронизации.
Таким образом: 200МГц тактовой LPC4370 с его встроенным АЦП и 3 ядрами будет эквивалентно примерно раза в 1.5-2 более быстрому МК работающему с внешним АЦП.

Цитата(Слесарь @ Jan 25 2017, 16:16) *
Разобрался, можно применить dsPIC33 (70 MIPS), ну а встроенный модуль DSP позволит использовать осцилл, как прочую измерительную аппаратуру, типа анализаторы спектра и декодеры сигналов.

Ну-ну... wink.gif
Для начала надо хотя-бы подумать как внешний АЦП подключать к этому МК.
А для этого надо прочитать спецификацию на его внешнюю шину (она вообще там имеется?) и узнать - сколько тактов шины потребуется на чтение одного слова с АЦП.
И можно-ли вообще этот АЦП подключить к этой шине. Не в плане "припаивания" проводов, а в плане времянок сигналов.
А Вы похоже не читали ничего.
Да и осциллограф - это не просто чтение данных с АЦП. Это много больше.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 25 2017, 13:26
Сообщение #10


Mentor
******

Группа: Модераторы
Сообщений: 5 146
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(jcxz @ Jan 25 2017, 15:20) *
Как уже тут говорил не раз - лучше в этом плане - LPC4370:


Да принципиальных возражений нет.
Как намекает сам Слесарь , осциллографф можно сделать на любой трухе.
Просто KV5x дал бы существенные преимущества.

На мультиядерность я бы не возлагал больших надежд, там во-первых частота ниже, во-вторых запаритесь надежный межядерный обмен делать и опять потеряете производительность.
И пропустить 80 mbps на внешнюю память в LPC я бы не надеялся, если расчет на это.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jan 25 2017, 13:29
Сообщение #11


Познающий...
******

Группа: Свой
Сообщений: 2 567
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (Слесарь @ Jan 25 2017, 19:55) *
Здравствуйте!
Если не покупать готовый цифровой осциллограф,

Здравствуйте! Помнится вы уже поднимали тему самодельного осцилла несколько лет назад. Тогда вас вроде убедили, что идея трудновыполнимая. Я считаю, что этим можно заниматься как хобби, для исследований что-ли))) Но если вам нужен инструмент для работы, то лучше купить. Даже сейчас, в кризиное время, найти недорогой осцилл на эбее или али вполне можно)

Кстати по-работе сейчас решаю вопрос осциллографирования, только требования скромнее: сигнал до 5 кГц. Проблем хватает даже на частоте дискретизации 10 кГц, если нужен реалтайм) Хотя... проблемы, это так субъективно. Пробуйте сделать этот осциллограф, нам потом расскажете!


--------------------
Желаю всем гармонии с самими собой!
Go to the top of the page
 
+Quote Post
Слесарь
сообщение Jan 25 2017, 13:30
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 705
Регистрация: 7-11-09
Из: Ростовская обл.
Пользователь №: 53 484



Цитата(jcxz @ Jan 25 2017, 16:24) *
сколько тактов шины потребуется на чтение одного слова с АЦП.


Вроде просто, АЦП выставил слово на параллельной шине, любой МК по такой же шине это слово прочитал.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 25 2017, 13:51
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 3 501
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(AlexandrY @ Jan 25 2017, 16:26) *
Да принципиальных возражений нет.
Как намекает сам Слесарь , осциллографф можно сделать на любой трухе.
Просто KV5x дал бы существенные преимущества.

Да с тов. Слесарем всё ясно wink.gif
Что из трухи сделано, то трухой и останется biggrin.gif

Цитата(AlexandrY @ Jan 25 2017, 16:26) *
На мультиядерность я бы не возлагал больших надежд, там во-первых частота ниже, во-вторых запаритесь надежный межядерный обмен делать и опять потеряете производительность.

Макс. частота всех ядер в LPC4370 одинакова == 204МГц. Хотя по скорости M0-ядра конечно слабее. Конечно 3 ядра не дадут линейно 3-кратное увеличение скорости, но всё равно - часто бывают задачи, которые лучше выполнять непрерывно одним ядром, чем прерываться на них одним процессором - если такие переключения нужно делать часто, то выделенное 1 ядро будет делать эту задачу быстрее чем скажем даже в 2-3 раза более быстрое ядро, но часто переключающееся на другие задачи.
Скажем - у Вас поток реалтайм-данных с неглубокой буферизацией (или глубокая буферизация невозможна, так как недопустим большой лаг между приёмом данных и их обработкой) и в то же время Вам надо всякой прочей работой заниматься, типа обслуживания пользовательского ввода-вывода и пр.
И что делать в таком случае? Часто-часто прерываться на обслуживание потока данных основному ядру? Да только на одних входах-выходах в ВЧ обработчик прерывания будет потеряна огромная часть производительности CPU.
А здесь можно полностью высвободить основное ядро для обработки потока данных, а всю рутину пусть одно из M0-ядер делает. На 200МГц оно всё успеет.

Надёжный обмен я ещё на OMAP-L137 делал между его ARM9 и DSP - никаких там проблем нет: каждое ядро занимается своим делом не мешая другому.

Энтузиастам осциллографо-строения для справки:
Только для чтения потока данных со встроенного АЦП LPC4370 на частоте 80MS/s без пропусков из-за конфликтов на шине CPU и DMA необходима тактовая частота ядра не менее 160Мц.
И это при упаковке данных АЦП в 32-битные слова (по 2 сэмпла в слове) и наличии FIFO на (вроде 16 слов - точно не помню).
И это при самом оптимальном пути данных - из внешнего АЦП, находящегося на быстрой шине без дополнительных задержек.

Цитата(Слесарь @ Jan 25 2017, 16:30) *
Вроде просто, АЦП выставил слово на параллельной шине, любой МК по такой же шине это слово прочитал.

crying.gif
"Просто было на бумаге, да забыли про овраги..."
У МК нет интерфейса "просто" у него обычно есть всякие GPIO, FMSC и пр. Которые тоже просто не умеют читать, а им нужны сигналы стробов, синхронизации и пр., у каждого из которых свои временные требования и зависимости одного сигнала от другого.
И как правило оказывается, что у 180МГц МК внешняя шина тактируется в 2-3 раза более низкой частотой, да плюс сигналы стробирования таковы, что не каждый такт можно захватывать внешние данные, да DMA например не успевает обслуживать эту шину каждый такт и т.п.
И в результате оказывается, что максимальная частота потока, который МК может считать по внешнему интерфейсу в несколько раз ниже его тактовой частоты.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 25 2017, 13:54
Сообщение #14


Mentor
******

Группа: Модераторы
Сообщений: 5 146
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(jcxz @ Jan 25 2017, 15:42) *
Скажем - у Вас поток реалтайм-данных с неглубокой буферизацией (или глубокая буферизация невозможна, так как недопустим большой лаг между приёмом данных и их обработкой) и в то же время Вам надо всякой прочей работой заниматься, типа обслуживания пользовательского ввода-вывода и пр.

Триггеры осциллографа предполагают постоянный прием данных и их анализ процессорным ядром.
Скажем триггер по переходу через ноль.
Если его у вас нет аппаратного, то 160 МГц процессора не помогут и 204 будет мало.
Придется снижать частоту, и никакие ядра не помогут.
Либо у вас будет непредсказуемый джиттер триггеров.

А еще претриггеринг такой есть. Это когда хотите посмотреть, что было непосредственно перед триггером.
Потребует реалтаймную поддержку циклическго буфера и опять на том же самом ядре.
Все это убъет производительность.

Ну а всем остальным сервисам хватит и 10% оставшихся ресурсов времени, если конечно правильную RTOS применить. biggrin.gif
Короче, многоядерность здесь не поможет.
Go to the top of the page
 
+Quote Post
Слесарь
сообщение Jan 25 2017, 13:58
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 705
Регистрация: 7-11-09
Из: Ростовская обл.
Пользователь №: 53 484



Цитата(jcxz @ Jan 25 2017, 16:51) *
И в результате оказывается, что максимальная частота потока, который МК может считать по внешнему интерфейсу в несколько раз ниже его тактовой частоты.


И нормально. если АЦП стробировать как по даташиту не более 32 МГц. то проца PIC24 или PIC33 70 MIPS с частотой порядка 140 МГц должно хватить.

А мне собственно надо посмотреть какой синус на выходе бензогенератора.
Go to the top of the page
 
+Quote Post

9 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th August 2017 - 06:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.0752 секунд с 7
ELECTRONIX ©2004-2016