Четверг, 25.04.2024, 06:35
Вы вошли как Гость | Группа "Гости"Приветствую Вас Гость | RSS
Главная | Модуль цифрового осцилографа - Страница 26 - Форум | Мой профиль | Регистрация | Выход | Вход
Обитель RC-инженера
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: ВитГо  
Форум » Разработка электронных устройств » Разрабатываю ! » Модуль цифрового осцилографа (Пробуем свои силы в построении цифрового осциллографа)
Модуль цифрового осцилографа
ВитГоДата: Воскресенье, 24.02.2013, 22:34 | Сообщение # 376
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
Цитата (Sergi)
А откуда начинать рисовать, с какого места?
Дисплей 400х240 16бит - весь экран 192000байт.
В маленьком я зарисовую старую линию цветом фона и сразу рисую новую цветом линии. Посмотри исходники на радиокоте OsA. Так получается быстро.


фиг его знает конечно, но имхо проще не стирать картинку старым цветом, а сразу рисовать новую,
тем более что на цветном дисплее на st7735 есть функция задания области для вывода, у меня при последовательном выводе область заполняется снизу вверх, слева на право,
следовательно зная нужную позицию по Y каждой точки можно рассчитать вывод.. причем это будет очень быстрый вывод, я уже писал - на разрешении 128 на 160 точек у меня вывод кадра занимал чтото около 11-15 мс
Цитата (Sergi)
Но еще обсчитать, интерполировать, Высчитать действующее и среднее напряжение, синхру, маркеры.

ну на 168 мгц это не проблема, тем более что стартовать можно по 50%ому заполнению буфера захвата (не обязательно ждать полного цикла)
так что это проблема скорее грамотного использования связки DCMI и DMA


Виталий (аka ВитГо)
 
SergiДата: Вторник, 26.02.2013, 09:17 | Сообщение # 377
Подполковник
Группа: Проверенные
Сообщений: 540
Репутация: 55
Статус: Offline
Не могу разобраться.
Например DCMI упаковывает четыре 8битных отсчета в одно 32бит слово (за 4*2,5=10 тактов), правильно?
DMA забирает это из регистра DCMI_DR и пишет в память с инкрементом 4.
На картинках видел что DMA работает за 7 тактов. Непонятно- 7 тактов на 8бит или на все 32?
А то может получиться что DMA не успеет за DCMI. Даже если использовать FIFO DCMI (наверно обязательно чтоб процу не мешать) 4*32бит, можно не успеть забрать данные.
Если DMA не использовать, то можно забрать за 3 такта на байт (3*4=12 или может 3 такта на слово в 32бита), но проц будет занят и все остальные будут ждать очереди. Правильно ли я думаю?
Как идет запись в память? По байтно (8 бит) или по словно (32) за один такт?

Добавлено (26.02.2013, 09:17)
---------------------------------------------
Если DMA работает за 7 тактов на слово, можно сделать 2 канала по 8бит со скоростью 40 MSPS на канал при частоте проца 200 Мгц! На clk DCMI поставить делитель на 2, а с него на CS разных АЦП. Шину данных запараллелить. Четные отсчеты будут от АЦП0, нечетные-АЦП1.Если АЦП не умеют так быстро переключаться, добавить по 8битному буферу.
Понятно что одиночный канал будет работать на 80.


Сообщение отредактировал Sergi - Вторник, 26.02.2013, 09:22
 
ВитГоДата: Вторник, 26.02.2013, 11:34 | Сообщение # 378
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
Цитата (Sergi)
Не могу разобраться.
Например DCMI упаковывает четыре 8битных отсчета в одно 32бит слово (за 4*2,5=10 тактов), правильно?
DMA забирает это из регистра DCMI_DR и пишет в память с инкрементом 4.
На картинках видел что DMA работает за 7 тактов. Непонятно- 7 тактов на 8бит или на все 32?

на все 32 бита !
Цитата (Sergi)
Если DMA не использовать, то можно забрать за 3 такта на байт (3*4=12 или может 3 такта на слово в 32бита), но проц будет занят и все остальные будут ждать очереди. Правильно ли я думаю?


а вот это не получиться из за особенностей архитектуры, у армов получается что GPIO тактируется как бы отдельно от проца, поэтому скорость ввода\вывода gpio не равна скорости исполнения команд ввода\вывода у процессора.. у дихалта ктото тестировал gpio на чтение у F4 получили около 30 msps всего
опять таки забрать 3 такта, упаковать еще 2-3 такта, и после 4ех упаковок записать в память еще 4-7 тактов - будет точно дольше !

Цитата (Sergi)
Если DMA работает за 7 тактов на слово, можно сделать 2 канала по 8бит со скоростью 40 MSPS на канал при частоте проца 200 Мгц! На clk DCMI поставить делитель на 2, а с него на CS разных АЦП. Шину данных запараллелить. Четные отсчеты будут от АЦП0, нечетные-АЦП1.Если АЦП не умеют так быстро переключаться, добавить по 8битному буферу.
Понятно что одиночный канал будет работать на 80.


а вот это идея !
в принципе запустив на 240 мгц проц получим теоретический предел DCMI равный 96 мгц ! правда делитель mco только 2 или 3 - так что будет только 80 мгц на два канала на практике (без дополнительного генератора)
соответственно поделив на 2 канала - будет по 48 мгц на канал...
правда нужно посмотреть быстродействующий делитель на частоту 96 мгц и посмотреть если ли у АЦП линия управления OE (Output Enable) lkz перевода линий в Z состояние..

опять таки делитель 2.5 от sysclk только для 12 и 14 бит захвата, а для 8 бит возможно пройдет и делитель 2 !! (по крайней мере в тестах у меня работало) - а это уже 120 мгц на канал (при 240 мгц такта) и по 60 мгц на два канала

в принципе можно на ходу менять тактирование с 240 мгц (когда работают два канала) на 168 мгц (когда работает один канал) - чтобы не превышать сильно частоту АЦП (у меня например АЦП на 80 мгц)


Виталий (аka ВитГо)
 
ВитГоДата: Вторник, 26.02.2013, 11:52 | Сообщение # 379
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
вот про изменение тактирования через SPL: http://forum.easyelectronics.ru/viewtopic.php?p=164196#p164196
сохраню здесь чтобы потом не искать :-)


Виталий (аka ВитГо)
 
SergiДата: Вторник, 26.02.2013, 21:56 | Сообщение # 380
Подполковник
Группа: Проверенные
Сообщений: 540
Репутация: 55
Статус: Offline
В F207 мсо может работать с делителем 1. На штатной частоте 120МГц.
Есть буфер 74AC245. Самый плохой случай переключения в Z- 7.5нс при 3.3в. А это 130МГц.
На АЦП AD9283 явно не указано время EN. Ориентировочно 5нс. Это если конвертация не останавливается пока сигнал не активен.
В расчетах не стоит далеко отходить от штатных частот.
Для проверки скорости захвата надо проводить опыт.
Думаю что сохранение регистра DCMI_DR в память с инкрементом пройдет максимум за 6 тактов без DMA (у меня так получилось на F100). Это 32МГц при 192 тактовой или 2 канала 8бит по 64МГц или 1 с 128 МГц. DCMI медленнее. 4*2=8 тактов или 24 МГц и 48 и 96 соответственно. Если DMA работает за 7, то основное место задержки DCMI. И все будет работать правильно.
Теперь задумываюсь о переделке цифровой части.


Сообщение отредактировал Sergi - Вторник, 26.02.2013, 21:57
 
ВитГоДата: Вторник, 26.02.2013, 22:01 | Сообщение # 381
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
Цитата (Sergi)
Думаю что сохранение регистра DCMI_DR в память с инкрементом пройдет максимум за 6 тактов без DMA (у меня так получилось на F100). Это 32МГц при 192 тактовой или 2 канала 8бит по 64МГц или 1 с 128 МГц. DCMI медленнее. 4*2=8 тактов или 24 МГц и 48 и 96 соответственно. Если DMA работает за 7, то основное место задержки DCMI. И все будет работать правильно.


как то сложно написал..
в даташите на DCMI написано: скорость работы не более sysclk\2.5
больше думать не нужно..
еще идет про 54 msps - но поскольку камень гонется то думаю на эту цифру сильно внимания можно не обращать..

дополнительно, я уже писал что цифра sysclk\2.5 - это для захватов 12 и 14 бит ! то есть 32 бита заполняются за 2 такта захвата DCMI !
если же у нас будет 8ми битный режим - то возможно частоту захвата удасться увеличить, так как даже при увеличении частоты захвата DCMI - запись в память будет производиться с той же частотой что и при 12 или 14 бит...

в общем что будет тормозить DMA или DCMI предлагаю не задумываться :-) - они успеют :-)


Виталий (аka ВитГо)
 
SergiДата: Вторник, 26.02.2013, 22:16 | Сообщение # 382
Подполковник
Группа: Проверенные
Сообщений: 540
Репутация: 55
Статус: Offline
Все правильно. Я хотел сказать что упаковка 8 бит в 32 в DCMI_DR пройдет за 2 такта * 4 байта =8 тактов. А это по 2 отсчета на 2 канала. То есть возможность захвата 2х каналов на скорости f/4! ИЛИ f/5 при 2,5 такта DCMI.
Пока упакуются новые данные DMA все вычитает и сохранит в память.


Сообщение отредактировал Sergi - Вторник, 26.02.2013, 22:19
 
ВитГоДата: Вторник, 26.02.2013, 22:34 | Сообщение # 383
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
ну да.. где то так...
даже если f\5 то от 240 мгц останеться 48 мгц на каждый из двух каналов...

имхо за глаза... :-)

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

нужна схема упрощенного аналога... чтобы был маленький... придумай а?
ЦАП возьму аппаратный (на 1 канал есть свободный у контроллера помоему)
я так понимаю нужен генератор двуполярного напряжения (почему нельзя использовать искусственную среднюю точку я не понял)
и операционники работающие в обоих полярностях..
кстати, а как тогда работает АЦП ? у него тоже должно быть двуполярное напряжение ?


Виталий (аka ВитГо)
 
SergiДата: Вторник, 26.02.2013, 22:53 | Сообщение # 384
Подполковник
Группа: Проверенные
Сообщений: 540
Репутация: 55
Статус: Offline
Разные ацп по разному питаются. ад9283 специально для портативных приборов и питание одно 3в. У него диф вход, но может работать с однополярным сигналом. Второй вход внутри подключен к делителю на 3 (около 1в). Если на первый подать 1в+-0,5в получим код от 0 до 255.
Вобще то в приборах принято вход и выход привязывать к земле (корпусу) для экранизации и минимизации токов смещения. Для опытов можно входной делитель подключить через конденсатор, или как в твоем первом посте.

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


Сообщение отредактировал Sergi - Вторник, 26.02.2013, 22:59
 
ВитГоДата: Среда, 27.02.2013, 09:44 | Сообщение # 385
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
вопрос на засыпку: ты делал компоненты для CPC1035 и NC7SB3157 ?

можешь мне скинуть?

кстати а для управления CPC1035 транзисторный ключ нужно использовать или ты напрямую на контроллер повесить хочешь?


Виталий (аka ВитГо)
 
ВитГоДата: Среда, 27.02.2013, 10:55 | Сообщение # 386
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
а если в эту схему http://vg.ucoz.ru/_fr/0/0615859.jpg
поставить ad9283 ?

а на вход делитель на cpc1035n ?

какие недостатки ?

на VRef завести с ШИМ или DAC напряжение для смещения...


Виталий (аka ВитГо)
 
ВитГоДата: Среда, 27.02.2013, 18:13 | Сообщение # 387
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
кстати а насколько допустимо использовать ICL7660 (MAX1044) для получения отрицательного напряжения -5 вольт для питания операционников ?

вроде бы по даташиту подключение предельно простое...


Виталий (аka ВитГо)
 
ВитГоДата: Среда, 27.02.2013, 21:04 | Сообщение # 388
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
Sergi,
напиши мне аську свою что ли..
а то иногда нужно оперативно что нить спросить - а тебя на сайте нет


Виталий (аka ВитГо)
 
ВитГоДата: Среда, 27.02.2013, 21:12 | Сообщение # 389
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
Кстати, вопрос на засыпку: а зачем нам во входной цепи регулировка усиления входного сигнала ?
разве входного делителя будет мало ?


Виталий (аka ВитГо)
 
SergiДата: Среда, 27.02.2013, 21:35 | Сообщение # 390
Подполковник
Группа: Проверенные
Сообщений: 540
Репутация: 55
Статус: Offline
NC7SB3157 это тоже самое что и 74LVC1G3157GV. Есть в библиотеках.
CPC1035 рисовал сам. Как отдельный элемент добавить? Всю библу выкладываю. Ему достаточно 2ма для открытия, можно питать через резистор и напрямую и через буфер,регистр.

Если в схему поставить ad9283 понадобится одно питание 2.7-3.3в, можно обойтись одним оу включенным инвертором.
На +вход оу подать напряжение смещения от DAC или ШИМ. Только при анализе учесть инверсию сигнала. Например так: Uвх=(255-Uвх (это код в цифре))*Кус.

Для питания оу желательно симметричное напряжение. Например +-3в. Для 74LVC1G3157GV максимальное напряжение питания 5.6в. Я поставил источник +2.8 и инвертор -2.8. Ток потребления от источника зависит от нагрузки оу. При нагрузке 200 ом и амплитуде 0.6в ток будет 3ма. По даташиту max может выдать до 10 ма при 3в. Достаточно для двух оу.
Прикрепления: lib.rar (56.1 Kb)
 
Форум » Разработка электронных устройств » Разрабатываю ! » Модуль цифрового осцилографа (Пробуем свои силы в построении цифрового осциллографа)
Поиск:


Copyright MyCorp © 2024
Сделать бесплатный сайт с uCoz