Например TDA7294

Форум РадиоКот • Просмотр темы - Народный осциллограф "Мурзик" на базе STM32F303VCT6 - проект
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн дек 15, 2025 15:31:08

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 3105 ]     ... , , , 7, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Вт июл 26, 2016 18:34:46 
Мучитель микросхем

Карма: 10
Рейтинг сообщений: 81
Зарегистрирован: Чт янв 08, 2015 00:58:11
Сообщений: 410
Рейтинг сообщения: 0
у STM32F446RCT6 есть Camera Interface - 8/14bit, 54mbps
в полтора раза дороже 32F303, и корпус паябельный...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Вт июл 26, 2016 20:19:16 
Грызет канифоль
Аватар пользователя

Карма: 6
Рейтинг сообщений: 202
Зарегистрирован: Пт ноя 13, 2009 10:39:32
Сообщений: 272
Откуда: Москва
Рейтинг сообщения: 1
Да, я уже проверил. STM32F3 и F4 могут забирать с портов за 2 такта. 32 MSPS получается гарантированно.
Правда при этом происходят какие то чудеса.
Процессор на что то иногда отвлекается)
Пока не разобрася на что. Прерывания отключены.
А если забирать с внутреннего АЦП то вроде все чисто.

Вот и получается:
1. STM32F3 + AD9280 + ОУ + делитель + генератор минуса = 32мГц (может 40) Входное сопротивление 1 мОм.
2. STm32F303 (и все!) = 16 мГц Входное сопротивление 100 кОм. Правда всего 4 предела по уровню.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Вт июл 26, 2016 21:11:43 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 256
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2089
Рейтинг сообщения: 0
Fusion писал(а):
Да, я уже проверил. STM32F3 и F4 могут забирать с портов за 2 такта. 32 MSPS получается гарантированно.
Правда при этом происходят какие то чудеса.
Процессор на что то иногда отвлекается)

Есть такое. Я после запуска DMA делал __WFI(), проц засыпает до прерывания и, во-первых, меньше помехи на ADC, во-вторых, DMA никто не мешает и должно всегда забирать данные за 2 такта.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Ср июл 27, 2016 13:22:11 
Вымогатель припоя

Карма: 1
Рейтинг сообщений: 43
Зарегистрирован: Вс янв 20, 2013 12:45:25
Сообщений: 507
Откуда: Астана, Казахстан
Рейтинг сообщения: 0
fusion, P-CAD пока осваиваю может по-этому второго слоя не вижу. Печатка на Хмегу 32 односторонняя, судя по-всему? Если так, то площадки с отверстиями соединять проводами согласно схемы? Шина АЦП на какие порты МК включена или тупо делать по печатке? Оптрон не указан, через ключ включу реле или можно применить полевик?


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Ср июл 27, 2016 19:53:55 
Грызет канифоль
Аватар пользователя

Карма: 6
Рейтинг сообщений: 202
Зарегистрирован: Пт ноя 13, 2009 10:39:32
Сообщений: 272
Откуда: Москва
Рейтинг сообщения: 0
man_200:
Печатка односторонняя, соединять проводами.
Шина АЦП на порту С.
Оптореле 350В, 100мА cpc1035.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Пт авг 05, 2016 14:04:25 
Мучитель микросхем

Карма: 10
Рейтинг сообщений: 81
Зарегистрирован: Чт янв 08, 2015 00:58:11
Сообщений: 410
Рейтинг сообщения: 0
Цитата:
STM32F3 и F4 могут забирать с портов за 2 такта. 32 MSPS получается гарантированно
на F030 DMA тоже молотит до F_CPU/2.
вот меандр 15МГц, проц на 60МГц, DMA1.1 в режиме MEM2MEM, приоритет максимум, чтение из GPIOA.IDR:
ИзображениеИзображение

видно что читает по 4 точки на период, без пропусков, т.е. и на F030 получается 30MSPS :)
программным чтением (типа *buf++ = GPIOA->IDR; ...) длительность одного уровня "пляшет" по 1/2/3 семпла на полупериод...

Цитата:
Процессор на что то иногда отвлекается)
задайте макс.приоритет DMA


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Пт авг 05, 2016 15:06:24 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 256
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2089
Рейтинг сообщения: 0
ncp1400 писал(а):
видно что читает по 4 точки на период, без пропусков, т.е. и на F030 получается 30MSPS :)

Я такое тоже наблюдал :) Частота дискретизации была 19.2M, если подавать на вход 9.6M сгенерированную тем же мк, то получаем идеальную лесенку 0101..., но если подать 16M или 24M, то откуда-то берутся 4 или 3 точки не период. Визуально 16M и 4М выглядят почти одинаково, не дай себя обмануть :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Пт авг 05, 2016 15:09:46 
Мучитель микросхем

Карма: 10
Рейтинг сообщений: 81
Зарегистрирован: Чт янв 08, 2015 00:58:11
Сообщений: 410
Рейтинг сообщения: 0
проц разогнан до 64М, меандр 32М:
ИзображениеИзображение

судя по ШИМу, частота там не максимальная:
ИзображениеИзображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Пт авг 05, 2016 20:36:41 
Мучитель микросхем

Карма: 10
Рейтинг сообщений: 81
Зарегистрирован: Чт янв 08, 2015 00:58:11
Сообщений: 410
Рейтинг сообщения: 0
по SysTick получается 5 тактов на пересылку - 12MSPS на 60МГц, преимущества над АЦП F303 нет.
переход в SLEEP на время пересылки не влияет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Пт авг 05, 2016 21:00:23 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 256
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2089
Рейтинг сообщения: 0
ncp1400 писал(а):
по SysTick получается 5 тактов на пересылку - 12MSPS на 60МГц, преимущества над АЦП F303 нет.
переход в SLEEP на время пересылки не влияет.

Я и говорил, что 5 тактов. Вчера проверил на F407, там 4. Заявленные 2 такта - это если загрузить в регистры константы и по очереди выводить их в порт, что в данном случае бесполезно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Вт авг 09, 2016 10:04:51 
Грызет канифоль
Аватар пользователя

Карма: 6
Рейтинг сообщений: 202
Зарегистрирован: Пт ноя 13, 2009 10:39:32
Сообщений: 272
Откуда: Москва
Рейтинг сообщения: 0
Я забираю с АЦП за 2 такта ассемблером:
LDRB rez,[#0x50000040] // ADC1
STRB rez,[addressbuffer], #1
LDRB rez,[#0x50000140] // ADC2
STRB rez,[addressbuffer], #1

и так 1024 раза)
Получается 36 МСПС при 72 мГц у F303.
АЦП конечно 18 мГц не тянет, теряет младшие разряды. Но сигнал на мелком экране все равно видно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Вт авг 09, 2016 14:45:28 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 256
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2089
Рейтинг сообщения: 0
Fusion писал(а):
Я забираю с АЦП за 2 такта ассемблером:
LDRB rez,[#0x50000040] // ADC1
STRB rez,[addressbuffer], #1
LDRB rez,[#0x50000140] // ADC2
STRB rez,[addressbuffer], #1

и так 1024 раза)
Получается 36 МСПС при 72 мГц у F303.

Пробовал так с порта забирать, правда с ассмом не связывался, но компилятор сделал практически то же самое:
Код:
ldr r2, [r3, #16]    ;*p++ = GPIOA->IDR;
str r2, [r1, #72]
ldr r2, [r3, #16]    ;*p++ = GPIOA->IDR;
str r2, [r1, #76]
...

На F407 получились 4 такта, как и с DMA. Еще хуже если сохранять в CCM RAM - 5 тактов... Обычно LDR + STR пайплайнятся до 3-х, не уверен, что 2 такта в принципе достижимы... Может если из CCM RAM запускать, ты не так случайно делаешь?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Вт авг 09, 2016 14:54:20 
Грызет канифоль
Аватар пользователя

Карма: 6
Рейтинг сообщений: 202
Зарегистрирован: Пт ноя 13, 2009 10:39:32
Сообщений: 272
Откуда: Москва
Рейтинг сообщения: 0
Про CCM RAM не знаю не изучал еще)
Но в Кейл если поставить оптимизацию на 0, то скорость сразу падает до 5 тактов вместо 2.
Как так может быть пока не понимаю. Он что оптимизирует мой ассемблерный код?
Пробовал на stm32f411 100mHz. Забирает с порта 50 мГц. Но иногда опять пропуски. Редко. Но есть.
Прерывания отключены.
__disable_irq();
__disable_fiq();
Даже не знаю чем там процессор занимается)
Документации мало. На АВР с ассемблером было все четко - как написал так и работает.
Буду разбираться дальше


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Вт авг 09, 2016 15:05:31 
Мучитель микросхем

Карма: 10
Рейтинг сообщений: 81
Зарегистрирован: Чт янв 08, 2015 00:58:11
Сообщений: 410
Рейтинг сообщения: 0
замерьте такты Systick. На F030 ldr/str получаются те же 5 тактов, strb допускает смещение максимум 31, пришлось использовать SP


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Вт авг 09, 2016 15:24:42 
Грызет канифоль
Аватар пользователя

Карма: 6
Рейтинг сообщений: 202
Зарегистрирован: Пт ноя 13, 2009 10:39:32
Сообщений: 272
Откуда: Москва
Рейтинг сообщения: 0
У меня STRB без смещения.
STRB rez,[addressbuffer], #1 - это автоинкремент addressbuffer на единичку.
Без проверки без цикла 1024 раза - считать/записать.
На вход подаю мегагерц и по клеточкам на дисплее считаю какая скорость.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Вт авг 09, 2016 16:28:43 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 256
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2089
Рейтинг сообщения: 0
Fusion писал(а):
Про CCM RAM не знаю не изучал еще)
Но в Кейл если поставить оптимизацию на 0, то скорость сразу падает до 5 тактов вместо 2.
Как так может быть пока не понимаю. Он что оптимизирует мой ассемблерный код?

Чего гадать, ставь брейпоинт в релизной сборке и смотри что он там нагенерил... Я первый раз на массив volatile не поставил, так умный компилятор сначала в кучу регистров данные с порта считал, а потом все это сохранил :)

Цитата:
У меня STRB без смещения.
STRB rez,[addressbuffer], #1 - это автоинкремент addressbuffer на единичку.
Без проверки без цикла 1024 раза - считать/записать.
На вход подаю мегагерц и по клеточкам на дисплее считаю какая скорость.

Без разницы есть смещение или нет, все равно команда выполняется одинаковое время. Но я переделал на ассме:
Код:
asm("LDRB R0, [R1]");
asm("STRB R0, [R2], #1");
asm("LDRB R0, [R1]");
asm("STRB R0, [R2], #1");

4 такта, как не крути :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Ср авг 10, 2016 10:45:56 
Грызет канифоль
Аватар пользователя

Карма: 6
Рейтинг сообщений: 202
Зарегистрирован: Пт ноя 13, 2009 10:39:32
Сообщений: 272
Откуда: Москва
Рейтинг сообщения: 3
Вроде два такта вижу:

asm("LDRB R0, [R1]");
asm("STRB R0, [R2], #1");

Но это все справедливо если с порта забирать.
Встроенный АЦП в 303 на 18 мГц непотянет (при 72 тактовой)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Ср авг 10, 2016 13:23:35 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 256
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2089
Рейтинг сообщения: 0
Fusion писал(а):
Вроде два такта вижу:

asm("LDRB R0, [R1]");
asm("STRB R0, [R2], #1");

Ладно, проведем очередную проверку, так чтобы без ЛА, частотомеров и подсчета квадратиков :) Выставляем частоту мк 100MHz, создаем цикл на 125000 итераций, внутрь которого помещаем 100 LDR + STR, все это пихаем в бесконечный цикл в начале которого инвертим светодиод. Если каждый LDR + STR выполняется за 4 такта, то на весь вложенный цикл уйдет 4 * 100 * 125000 = 50 млн. тактов или пол секунды, т.е. светодиод должен мигать с частотой 1 Гц, что я и наблюдаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Ср авг 10, 2016 14:19:19 
Мучитель микросхем

Карма: 5
Рейтинг сообщений: 50
Зарегистрирован: Ср янв 04, 2012 11:57:40
Сообщений: 411
Откуда: Алчевск
Рейтинг сообщения: 0
Проверяли,интерфейс DCMI может забирать за 2.5 такта, но он не 16 бит и не во всех камнях присутствует


Вернуться наверх
 
 Заголовок сообщения: Re: Народный осциллограф "Мурзик" на базе STM32F303VCT6 - пр
СообщениеДобавлено: Чт авг 11, 2016 07:54:55 
Извините, что влезаю в процесс, но...
А аналоговую часть уже делали?
Вопрос такой - можно ли так создать искусственную среднюю точку для усилителя. Понимаю, что это в 2 раза заузит входной диапазон (до +-1,6V), но всё же имеет ли такое решение шанс на жизнь?
Жутко не хочется возиться с преобразователем -3,3V, к тому же лишний источник помех.
СпойлерИзображение

Спасибо.


Вернуться наверх
   
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 3105 ]     ... , , , 7, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y