Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 15.05.2018, 16:06  
фёдорыч
Временная регистрация
 
Регистрация: 20.05.2015
Адрес: Бишкек, Киргизия
Сообщений: 59
Сказал спасибо: 22
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
фёдорыч на пути к лучшему
По умолчанию Re: синхронизация осциллограммы

Сообщение от DanilinSA Посмотреть сообщение
А у тебя сейчас пока ДМА не отработает - ядро крутится в пустом цикле ожидая событий.
Я понимаю, что мой код - "быдлокод" в чистом виде. Хочется как побыстрее - вчера содрал где-то код инициализации FSMC SPL, немного подправил под свой камень и сразу заработало. Думал, что с ADC тоже получится - ан нет.
Я почти два месяца убил на въезжание в HAL - так и не разобрался до уяснения хотя бы в общих чертах, вот решил попробовать CMSIS и SPL.
На взгляд новичка - это попроще или после "курения" HAL так кажется?

Забыл спросить, может из-за этого фигня получается.
Первой строчкой в main.c объявляю:
#define HSE_VALUE ((uint32_t)8000000) //кварц на плате

И еще в файле system_stm32f4xx.c меняю значение PLL_M
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
//#define PLL_M 25
#define PLL_M 8 //168MHz

Где-то на просторах интернета такое увидел.
Вывод по FSMC на дисплей работает.
Реклама:

Последний раз редактировалось фёдорыч; 15.05.2018 в 16:24.
фёдорыч вне форума  
Непрочитано 15.05.2018, 18:29  
DanilinSA
Почётный гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,715
Сказал спасибо: 130
Сказали Спасибо 1,108 раз(а) в 527 сообщении(ях)
DanilinSA на пути к лучшему
По умолчанию Re: синхронизация осциллограммы

В теории облегчает. Но лично мне - мешает.
Причина:
1) Не всегда хорошо документировано, какие флаги в какое состояние в регистрах выставляются.
2) Сильно загруженный код. И сильно не оптимальный результат. Плата за универсальность.

Мне проще сразу в регистр число записать, чем заполнять монстроподобную структуру для вызова функции. Число собираю как сумма констант с удобноваримыми названиями. Быстро, читабельно ...

Но конечно бывает частенько пользуюсь "макрофункциями" моего специфичного компилятора.
DanilinSA вне форума  
Непрочитано 15.05.2018, 19:59  
фёдорыч
Временная регистрация
 
Регистрация: 20.05.2015
Адрес: Бишкек, Киргизия
Сообщений: 59
Сказал спасибо: 22
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
фёдорыч на пути к лучшему
По умолчанию Re: синхронизация осциллограммы

Вы не первый человек,от которого слышу, что лучший результат получается, когда код пишется в регистры, без всяких библиотек. У меня скромный опыт по работе с HAL EXTI, когда я не смог запретить/разрешить внешнее прерывание, используя HAL. А запись напрямую в регистры принесло необходимый результат. Одно но: необходимо тщательно "талмудить" RM, который не очень внятно написан на взгляд новичка.

Что касаемо моей темы: посмотрел данные в буфере ADC_Data - какая-то каша, не похожая на оцифрованный меандр. Поменял тестовый генератор - результата нет, т.е. результат тот же самый. Буду копать код, попытаюсь обойтись работой с регистрами, без применения SPL.
Всем спасибо и всем удачи!
фёдорыч вне форума  
Непрочитано 15.05.2018, 21:43  
Исбанни
Прописка
 
Регистрация: 21.04.2018
Сообщений: 174
Сказал спасибо: 1
Сказали Спасибо 66 раз(а) в 53 сообщении(ях)
Исбанни на пути к лучшему
По умолчанию Re: синхронизация осциллограммы

Как сделать синхронизацию в самописном псевдо-осциллографе?
Очень просто. Проводите непрерывные измерения АЦП, выставив порог и AWD (analog watchdog) и разрешив от него прерывание. В прерывании скомандуйте начинать заполнение буфера захвата, размером до конца дисплея (или до конца буфера), одновременно запретив это прерыание. Затем останавливайте заполнение, разрешайте прерывание от AWD и ожидайте следующего события.
Исбанни вне форума  
Сказали "Спасибо" Исбанни
фёдорыч (16.05.2018)
Непрочитано 16.05.2018, 01:57  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: синхронизация осциллограммы

индюк, да какая бы не была плата, можно делать или как хочется или как нужно.
Во втором варианте математика не сильно сложная, но в результате получится работать с любым сигналом, а не только с заранее заложенным в алгоритм.
Аналоговые каскады нужны для решения именно аналоговых вопросов, которые в цифровую часть занести по некоторым причинам (скорость, память,…) затруднительно.
Синхронизация к таким причинам относится при совсем уж жестком лимите на ресурсы.

фёдорыч, последовательно и по шагам - сначала просто достоверную выборку получить от ADC, а затем уже заняться выводом ее на экран…
Вариант с постановкой на бумаге это никак не отменяет .
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Сказали "Спасибо" mike-y-k
фёдорыч (16.05.2018)
Непрочитано 16.05.2018, 05:14  
фёдорыч
Временная регистрация
 
Регистрация: 20.05.2015
Адрес: Бишкек, Киргизия
Сообщений: 59
Сказал спасибо: 22
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
фёдорыч на пути к лучшему
По умолчанию Re: синхронизация осциллограммы

Сообщение от Исбанни Посмотреть сообщение
Как сделать синхронизацию в самописном псевдо-осциллографе?
Очень просто. Проводите непрерывные измерения АЦП, выставив порог и AWD (analog watchdog) и разрешив от него прерывание. В прерывании скомандуйте начинать заполнение буфера захвата, размером до конца дисплея (или до конца буфера), одновременно запретив это прерыание. Затем останавливайте заполнение, разрешайте прерывание от AWD и ожидайте следующего события.
У меня была идея использовать AWD для синхронизации. Меня остановила сложность (для новичка) реализации: AWD в режиме DualInterleaved.
Поэтому, следуя совету
Сообщение от mike-y-k Посмотреть сообщение
фёдорыч, последовательно и по шагам - сначала просто достоверную выборку получить от ADC, а затем уже заняться выводом ее на экран…
Вариант с постановкой на бумаге это никак не отменяет .
решил вернутся к тому, с чего начинал.
фёдорыч вне форума  
Сказали "Спасибо" фёдорыч
mike-y-k (16.05.2018)
Непрочитано 16.05.2018, 05:48  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: синхронизация осциллограммы

фёдорыч, каждый компонент в планируемой конфигурации отдельно. Полученные знания на рихтовку задуманного и так к итогу…
Эволюция со всех сторон выгоднее кавалерийской атаки по фронту
Даже тот же опыт и знания в процессе…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Сказали "Спасибо" mike-y-k
фёдорыч (16.05.2018)
Непрочитано 16.05.2018, 08:09  
фёдорыч
Временная регистрация
 
Регистрация: 20.05.2015
Адрес: Бишкек, Киргизия
Сообщений: 59
Сказал спасибо: 22
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
фёдорыч на пути к лучшему
По умолчанию Re: синхронизация осциллограммы

Стало прояснятся ситуация. ADC крутится в циклическом режиме, DMA в нормальном режиме заполняет буфер. После обработки буфера необходимо включить поток, DMA снова заполнит буфер и т.д. Я правильно понимаю?
Возник еще вопрос - если изменять системную частоту, нужен какой-либо тайм-аут для ADC? Есть желание разогнать системную частоту на время работы ADC.
Сам камень разгонял до 320 MHz, FSMC работает на такой частоте, а вот ADC?
Есть у кого-нибудь инфа на сей счет?
фёдорыч вне форума  
Непрочитано 16.05.2018, 20:34  
фёдорыч
Временная регистрация
 
Регистрация: 20.05.2015
Адрес: Бишкек, Киргизия
Сообщений: 59
Сказал спасибо: 22
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
фёдорыч на пути к лучшему
По умолчанию Re: синхронизация осциллограммы

Победил.
Почему-то не прикрепляется папка с проектом.
фёдорыч вне форума  
Непрочитано 16.05.2018, 21:21  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: синхронизация осциллограммы

фёдорыч, а прикрепить можно только по одному файлу, а папку только в архиве сжатую. Теперь можно вывод на экран из тестового набора данных для начала и лучше сразу отдельной подпрограммой с указателем на буфер и параметрами синхронизации на входе.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Синхронизация потоковой оцифровки в LPC2478. Oleg_IT ARM 0 28.08.2014 13:39
С1-73 синхронизация U~A Измерительное оборудование 9 18.01.2012 14:50
Осцилограф ОМЛ-2М синхронизация urisss Измерительное оборудование 6 24.12.2011 23:52
Пакетная синхронизация в SPI alberio Микроконтроллеры, АЦП, память и т.д 7 12.06.2010 17:41
Синхронизация surgutw Делимся опытом 1 10.06.2005 15:32


Часовой пояс GMT +4, время: 15:17.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot