|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
||||||
Цифровой осциллограф на LPC1768 LangTiger27.12.2014, 12:35. Показов 6849. Ответов 55
Метки нет (Все метки)
Добрый день.
Хочу набраться теории и опыта в программировании ARM и Cortex. Для освоения выбрал нетривиальную тему - "Осциллограф". За основу взял демоборд с LPC1768 LangTiger (все что нужно на первое время есть на борту). Написал обработчик прерывание АЦП (накопление выборок) и процедуру вывода на дисплей данных, накидал простейший алгоритм синхронизации. Подскажите алгоритмы синхронизации. Подскажите как лучше накапливать выборки: в прерываниях по таймеру с определенным интервалом или по прерываниям от АЦП и измерением времени накопления выборок?
0
|
||||||
| 27.12.2014, 12:35 | |
|
Ответы с готовыми решениями:
55
Простой цифровой осциллограф. Цифровой осциллограф. Самокалибровка Цифровой осциллограф из конструктора |
|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
|||||||
| 29.12.2014, 22:21 [ТС] | |||||||
|
Спасибо за поддержку.
Примеры как раз и изучаю. АЦП включается после настройки DMA. В LPC каналы настраиваются вручную указанием источника данных
АЦП 12-ти битный, а вот DMA с ним может работать только в режиме 32 бита. Добавлено через 18 минут Так что он у меня правильно записал одними и теми же значениями весь массив. Почитал еще даташит на мк и заметил что инициализировано не все.. Добавлено через 1 час 41 минуту Есть два примера работы с DMA. Первый ADC - DMA - RAM, написан с использованием библиотеки. Второй RAM - DMA - RAM, написан вчистую.. Буду основыватся на втором чтобы лучше понять работу модуля DMA.
0
|
|||||||
|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
|||||||||||||||||||||
| 31.12.2014, 17:14 [ТС] | |||||||||||||||||||||
|
Достал меня этот DMA.
Не могу его заставить читать данные из АЦП. Точнее сказать он читает, заполняет массив, только первым считанным значением. А почему так я не пойму...
0
|
|||||||||||||||||||||
|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
||||||||||||||||||||||||||||||||||||
| 03.01.2015, 12:25 [ТС] | ||||||||||||||||||||||||||||||||||||
|
Удалось таки его запустить. Нужно было сделать вот так:
Добавлено через 1 час 1 минуту Если закомментировать обращение к буферу с данными АЦП, то все стабильно работает. Видимо что-то не так делаю с атомарным доступом.. Добавлено через 14 часов 50 минут Если напряжение на входе АЦП не изменять все работает, но только стоит сдвинуть ручку переменника или подать на вход сигнал, все тут же замирает.. Добавлено через 4 часа 39 минут Победил я эту "животИну"!!! Просто нужно мне даташит внимательней читать. Автоматический режим АЦП запускается сразу после установки бита BURST и не зависит от битов START, а я делал по другому устанавливал BURST, а когда нужно было запускать преобразование ставил START. И останавливал преобразование тем же битовым полем START. Что совсем не правильно.. Добавлено через 1 час 46 минут Вот что получилось. Кликните здесь для просмотра всего текста
Добавлено через 15 часов 42 минуты С дисплеем все сложнее - он работает через 16-ти битную параллельную шину, а перевести его на SPI не возможно. Из-за особенностей реализации протокола нет возможности использовать DMA.
1
|
||||||||||||||||||||||||||||||||||||
|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
||||||
| 04.01.2015, 20:10 [ТС] | ||||||
|
Сделал оформление дисплея. Алгоритм следующий - попиксельно выводится весь экран одной функцией, а цвет пикселя берется из отдельной функции в которой реализован алгоритм программного рисования. Это в дальнейшем даст возможность восстановления цветовой схемы экрана при стирании осциллограммы и других выводимых примитивов.
0
|
||||||
|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
|
| 04.01.2015, 20:15 [ТС] | |
|
Верхнее поле 16 пикселей, нижнее 32, левое 32, центральное поле 288х192.
0
|
|
|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
|
| 05.01.2015, 01:11 [ТС] | |
|
Первый вывод на новый дисплей
0
|
|
|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
|
| 05.01.2015, 13:21 [ТС] | |
|
Столкнулся с проблемой стирания выведенной осциллограммы.
Попробовал 3 метода: 1 - перерисовка всей области вывода осциллограммы - появляется мерцание и низкая яркость выводимой осциллограммы; 2 - стирание выведенной осциллограммы, запомненной во временный буфер и вывод новой с запоминание ее во временный буфер - мерцание появляется в меньшей степени, но все же присутствует; 3 - стирание выведенной осциллограммы по отрезкам (осциллограмма строится отрезками), стер предыдущий (запомненный) отрезок / нарисовал новый - мерцание практически отсутствует, но появляются пропуски на осциллограмме из-за наложений отрезков. Кто что подскажет? Делать видеобуфер и в нем подготавливать изображение к выводу и выводить или есть еще варианты?
0
|
|
|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
|
| 05.01.2015, 13:38 [ТС] | |
|
Фото 3-го варианта:
0
|
|
|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
|
| 05.01.2015, 13:45 [ТС] | |
|
Тоже самое только крупнее
0
|
|
|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
|
| 05.01.2015, 19:44 [ТС] | |
|
Есть идея. Дабы сэкономить ОЗУ и время ядра, сделаю следующим образом: для каждого столбца возьму один 16-ти разрядный регистр в котором будет хранится начало выводимой области (32..224) и количество закрашенных пикселей (0-192). Соответственно при выводе новой осциллограммы нужно будет проверить регистр для выводимого столбца, стереть закрашенную область (вывести фон) и заполнить столбец дисплея и регистр новыми значениями.
0
|
|
|
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,715
|
|
| 06.01.2015, 00:26 | |
|
Ты делай делай и исходники выкладывай. Может получится Российский осциллограф не хуже там всяких "риглаф"
0
|
|
|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
|
| 06.01.2015, 00:33 [ТС] | |
|
Я то делаю ))
Я тут еще насчупил счупальцами исходники на DS0201. Можно будет почерпнуть немного ))
0
|
|
|
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
||
| 06.01.2015, 11:00 | ||
|
Иначе, как бы вы ни мучались, все равно будет "помаргивать", "лагать", и "сыпаться" . Любая добавка с масками на экране, контролем области визирования и т.д. и т.п. потребует заметно более мощного проца, но и естественно - параллельного а не последовательного вывода на экран.Добавлено через 4 минуты ЗЫ: у вас же есть предел последовательной записи в экран - это 18МГц по частоте SPI (хотя по факту и на 25 работает, тут зависит от схемотехники и длины проводов), и собственно, возможности самого экрана - не факт что он может работать и на 18МГц.
0
|
||
|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
||
| 06.01.2015, 12:41 [ТС] | ||
|
Спасибо. Я уже писал.
0
|
||
|
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
|||
| 06.01.2015, 12:56 | |||
|
Добавлено через 1 минуту
0
|
|||
|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
||
| 06.01.2015, 13:06 [ТС] | ||
|
А с DMA проблемы из-за того что разработчики демоборда намудрили с шиной. У дисплея она 16-ти разрядная, а они ее завели через регистр-защелку и теперь если использовать DMA нужно пересылать данные по 1 байту и каждый раз манипулировать 3 выводами..
0
|
||
|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
|
| 06.01.2015, 13:12 [ТС] | |
|
Вот участок схемы
0
|
|
|
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,715
|
|
| 06.01.2015, 20:22 | |
|
AD9057BRS-80 если вы задались целью построить осциллограф можете рассмотреть.
http://chip-nn.ru/78.php
0
|
|
|
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
|
|
| 06.01.2015, 22:17 [ТС] | |
|
Внешний АЦП это следующий этап (правда я прицеливался на AD9280). Вначале хочу разобраться в тонкостях работы системы в общем, а уж потом рюшечки.
Добавлено через 48 минут или вот этот AD9203. Добавлено через 45 минут Для интереса посчитал время для отрисовки 1 пикселя на дисплее. Для одиночного пикселя - 417 команд, обновление в таком режиме всего экрана 0,3 секунды. Для серии (установили курсор 266 команд, дальше запись по 47 команд) - 47 команд, время обновление экрана 0,036 секунды (27 Гц). Поэтому отрисовывать придется только частично. В DS0201 отрисовывают посекторно. Я хочу отрисовывать построчно (команда установки курсора и серия выводов пикселя - 266 + 47*n).
0
|
|
|
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,715
|
|
| 06.01.2015, 23:23 | |
|
Да да идеально было бы иметь быстрый интерфейс для управления ЖК дисплеем. Если вы будете использовать AD92** то без предварительной записи полученных данных в ОЗУ на дисплей не выведешь нужную диаграмму. Просто далее вы столкнётесь с дороговезной деталей для вашего устройства. Я одно время рассматривал монитор от ПК и самую простую видеокарту.
0
|
|
| 06.01.2015, 23:23 | |
|
Цифровой осциллограф и сеть 220В Цифровой осциллограф RIGOL DS1052E Цифровой осциллограф. Что скажете. Цифровой осциллограф RIGOL DS1102E Цифровой осциллограф Rigol DS1052E + Linux Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Новости компьютерного мира и их обсуждение (4)
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|