Модуль цифрового осцилографа
|
|
ВитГо | Дата: Четверг, 04.10.2012, 09:09 | Сообщение # 196 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| ну мне легче.. я на верилоге стараюсь сделать смену значения адреса в момент когда ram_wr=1 (инкремент делаю в другой фазе тактового сигнала)
посмотри по поиску "конвейеризация счетчиков"
Виталий (аka ВитГо)
|
|
| |
ВитГо | Дата: Четверг, 04.10.2012, 14:59 | Сообщение # 197 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| Sergi, я тут читал про STM32 и у меня возник вопрос: а когда ты пробовал сделать на STM32 захват данных с АЦП - ты использовал DMA ?
ведь на STM32 не обязательно вручную читать состояние порта.. можно и через DMA считывать шину и записывать ее состояние в память..
причем тактировать АЦП можно втроенным ШИМ с частотой мегагерц эдак на 25-50.. и при помощи DMA записывать в память состояние с шины..
и тогда тебе ПЛИС будет нафиг не нужна.. (и возможно мне тоже :-)))
добавлено позже даже не DMA нужно а DCMI ! - скорость захвата до 54 msps !! и все это на одном корпусе STM32 !
Виталий (аka ВитГо)
|
|
| |
Sergi | Дата: Четверг, 04.10.2012, 18:21 | Сообщение # 198 |
Подполковник
Группа: Проверенные
Сообщений: 540
Статус: Offline
| DMA работает за 7 тактов. Отсюда макс частота 17 Мгц. DCMI рабртает кадрами и ее скорость нельзя плавно менять (/2,/5,/10....). Что бы запустить дма нужно еще управляющие сигналы на счерчик или плис подавать при каждом доступе. Проще ручками ноги дергать. У меня два входа тактирования - от PLL 120,60МГц и от таймера (как ты говоришь ШИМ)30,12...
Сообщение отредактировал Sergi - Четверг, 04.10.2012, 20:06 |
|
| |
ВитГо | Дата: Четверг, 04.10.2012, 20:22 | Сообщение # 199 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| DCMI может работать в режиме jpeg - тогда там нет кадров..
ну а со скоростью да.. плавно менять нельзя.. но имхо со скоростью можно будет что нить придумать (тот же множитель pll менять :-) зато плис не нужна.. и память по fsmс подключить - там до 256 кб помоему dma может перекидывать... и 14 бит шириной (вот тебе 6 бит логического анализатора или усеченный второй канал)
в общем прикольная идея. странно что для осциллографа ее никто не использовал еще.. 50 msps не слабая цифра (вон всякие dso nano имеют всего 1-2 msps)
Виталий (аka ВитГо)
|
|
| |
Sergi | Дата: Четверг, 04.10.2012, 21:23 | Сообщение # 200 |
Подполковник
Группа: Проверенные
Сообщений: 540
Статус: Offline
| При работе с внешней памятью не используется конвейер. Поэтому она медленнее раза в 3. Плюс тайминги соблюсти. А на порте больше 40 MSPS (в F405 - 56) не получить. Я сначала так и хотел без плис. Пока не опробую и не проверю не поверю . Получится еще как с дискаверью ,хотел на ней 12 вытянуть, получилось 6 . Мой малыш и то 4 MSPS - вдвое быстрее нано.
Вот новый проект. Как изменить время анализа (до 1,2мС) чтоб посмотреть полный цикл записи?
Сообщение отредактировал Sergi - Четверг, 04.10.2012, 21:23 |
|
| |
ВитГо | Дата: Четверг, 04.10.2012, 21:29 | Сообщение # 201 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| Quote (Sergi) При работе с внешней памятью не используется конвейер.
фиг его знает.. память подключают через fsmc и захватывают видео кадр... так что думаю что 48 msps там все таки есть (даже с внешней) мне идея понравилась - вот она - идея с аппаратной генерацией адреса, и записью данных.. и все в одном корпусе// меньше разводить пришлось бы.. тем более если использовать более жирную f207 с SRAM на борту по максимуму (не нужно память внешнюю разводить - это еще около 40 ног минус из мучений) - конено 48 msps это не 60 - но блин насколько проще бы все было....! Quote (Sergi) Как изменить время анализа (до 1,2мС) чтоб посмотреть полный цикл записи?
я это тоже так и не смог сделать.. нужно еще посмотреть !
Виталий (аka ВитГо)
|
|
| |
Sergi | Дата: Четверг, 04.10.2012, 21:36 | Сообщение # 202 |
Подполковник
Группа: Проверенные
Сообщений: 540
Статус: Offline
| Я же говорю - хотел 40 (максимум для F2xx). Только дисплей и ацп прикрутить. Вот в итерливе 80 получится должно. И ацпшки дешевле . Думал OsA2 сделать в 10 раз быстрее первого . Нужно теперь заказать цифровую часть и попробовать скорость.
|
|
| |
ВитГо | Дата: Четверг, 04.10.2012, 21:49 | Сообщение # 203 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| у меня готова прошивка под ПЛИС - тоже нужно пробовать.. там пока 1 канал на 100 мгц
либо если отказаться от чтения через плис и соответственно от 100 msps на одном канале - то можно сделать управление 2мя каналами по 50 msps на одной плис - и соответственно 100 msps при их (каналах) параллельном подключении.
но в этом случае контроллер должен считывать данные напрямую с SRAM, а не через ПЛИС... - то есть нужно потратить 16 линий на ШД SRAM
плюс остаются 11 линий для управления плис (адреса, режима синхронизации, предделителем)
Виталий (аka ВитГо)
|
|
| |
ВитГо | Дата: Четверг, 04.10.2012, 21:50 | Сообщение # 204 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| Quote (Sergi) Я же говорю - хотел 40 (максимум для F2xx). Только дисплей и ацп прикрутить. Вот в итерливе 80 получится должно. И ацпшки дешевле biggrin .
согласись интересная схема должна быть!
сколько там максимум памяти SRAM на f207 которые есть в продаже ?
Виталий (аka ВитГо)
|
|
| |
Sergi | Дата: Пятница, 05.10.2012, 10:33 | Сообщение # 205 |
Подполковник
Группа: Проверенные
Сообщений: 540
Статус: Offline
| Схема очень простая! В F2xx максимум 128к 8битных. Flash 1M , 10$ цена. За такие деньги лучше взять F407 512 flash 192 ram 168 МГц 9$Добавлено (05.10.2012, 10:33) --------------------------------------------- Пересмотрел схему со счетчиками. Решил попробовать 12бит без интерлива, с предзаписью 15байт. Скорость 80 Мгц. Длина записи 3840 16битных слов в каждом из 16 банков. Используется 11 ног управления (clk, rd_clk, rd, ready, prestart, start, 4 бита адреса банка) и 16 шина данных. На все идет 5 корпусов. 3 счетчика 74ac161, 1- 74ac74, 1- 74ac00. Тайминги памяти выдерживаются. Куплю f4discovery (26$). Там уже 100ногий МК с выводами наружу. К нему подвесить эти счетчики, рам, ацп и буфер для анализатора. Всего 9 корпусов. Потом после отладки можно перенести на одну плату.
Сообщение отредактировал Sergi - Четверг, 04.10.2012, 23:11 |
|
| |
ВитГо | Дата: Пятница, 05.10.2012, 12:15 | Сообщение # 206 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| Quote (Sergi) Схема очень простая! В F2xx максимум 128к 8битных. Flash 1M , 10$ цена. За такие деньги лучше взять F407 512 flash 192 ram 168 МГц 9$
а у тебя есть что нить по DCMI ? я только нашел описание стандартной библиотеки.. а вот про подключение самого устройства чтото ничего не нашел. (вообще с инфой по этому вопросу большой напряг) например интересно кто генерит такт -внешнее устройство или сама stm ?
у меня есть отладочная плата STM32F4 Discovery c stm32f407vgt6
Виталий (аka ВитГо)
|
|
| |
Sergi | Дата: Пятница, 05.10.2012, 14:37 | Сообщение # 207 |
Подполковник
Группа: Проверенные
Сообщений: 540
Статус: Offline
| Есть плата! Класс! Сможешь проверить скорость чтения из порта?
|
|
| |
ВитГо | Дата: Пятница, 05.10.2012, 16:33 | Сообщение # 208 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| гм.. ну наверное.. нужна программа только.. или хотя бы знать что проверять :-)
p.s. я на stm32 не писал.. так немного баловался на асме.. (си не люблю)... хотя конечно нужно переходить на Си
Виталий (аka ВитГо)
|
|
| |
ВитГо | Дата: Суббота, 06.10.2012, 17:35 | Сообщение # 209 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| Sergi, а ты смотрел память FIFO ?
удобно то что адрес формировать не нужно: мы же все равно либо последовательно пишем, либо последовательно читаем так же чтение и запись из памяти не связаны между собой (оба процесса могут проходить ассинхронно)
синхронизацию можно сделать на EPM3032 в корпусе PLC (под них и панельки есть, и 32 ноги паять легко)
я сейчас написал простейшую функцию: синхронизацию - управляется 10 линиями (8- значение, 1- направление, 1- сброс синхронизации), по 8 линиям подключаемся к ШД (параллельно FIFO), 1 линия тактирования (CLK), и 1 линия на выход - генерируется "1" когда синхронизация достигнута - для разрешения записи в FIFO
всего у меня получилось 24 линии - разводка простая !
можно туда же засунуть делитель частоты..
кстати, ты в DipTrace работал когда нить ? мне нужно создать компонент генератора для схемы... чтото не врублюсь как.. :-(
Виталий (аka ВитГо)
|
|
| |
Sergi | Дата: Суббота, 06.10.2012, 19:04 | Сообщение # 210 |
Подполковник
Группа: Проверенные
Сообщений: 540
Статус: Offline
| Нет, не смотрел. Пока колдую над печаткой. Вобще загнать данные в МК не проблема. На любой скорости (торопиться не надо). По даташиту максимальный клок внешней памяти для F4xx 60 МГц (реально наверное 56- 3 такта при 168). Я софтово заберу за 8 тактов последовательно или за 9 с произвольным шагом всю запись за 216 мкс максимум.
|
|
| |