Jump to content
Kirill_Alehin

Проверка работоспособности частотомера на stm32

Recommended Posts

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

Рисунок1.png

Рисунок2.jpg

Share this post


Link to post
Share on other sites
Только что, serg123 сказал:

Proteus в помощь.

Протеус  интерфейс криво определяет.Только в железе

Share this post


Link to post
Share on other sites

Оценка точности измерения тока интеллектуальными силовыми ключами PROFET

Интеллектуальные силовые ключи PFOFET производства Infineon могут измерять ток нагрузки с разной точностью, зависящей как от абсолютной величины потребляемого тока, так и от технологии производства конечной продукции, в частности – от наличия или отсутствия этапа калибровки. В статье подробно разбирается расчет коэффициента передачи тока на примере ключа BTS7004-1EPP.
Подробнее

:D:D:D, в протеусе не работает только кривонаписанный код.

Share this post


Link to post
Share on other sites

STMicroelectronics: электростатический разряд больше не проблема

Защита от статического электричества необходима каждому современному устройству. Компания STMicroelectronics представляет решения, соответствующие стандарту IEC61000-4-2, а также специальное приложение PROTECTION FINDER, которое поможет легкого и эффективно подобрать необходимые компоненты. Рассмотрим практические примеры защиты от ESD, отраслевые стандарты и ряд ключевых параметров важных при проектировании электростатической защиты устройств.

Подробнее

в том то дело , что в протеусе может работать и кривой код , проверка железом обязательна .

Share this post


Link to post
Share on other sites

Удалось ли сделать резервную копию? Обеспечение бесперебойного питания

Для работы портативных электронных устройств с постоянным или длительным включением необходим резервный источник питания. Микросхемы диспетчеров питания производства Analog Devices LTC4040 или LTC4041 позволяют легко подключить резервное питание в виде Li-Ion-аккумулятора или суперконденсатора соответственно в случае сбоя или потери основного питания. Рассмотрим решения по резервированию питания на основе этих микросхем.
Подробнее

А в железе кривой код исполнятся не будет? 

Share this post


Link to post
Share on other sites

протеус худо бедно годится только для авр. С стм такие шутки не катят


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

Ну почему, если не протеус с нормальной лицензией то вполне работает

Share this post


Link to post
Share on other sites
Posted (edited)

Это что - абдурина на STM32?

Жесть, куда катится мир?..

P.S. Если что, частотомер (да еще и с замером скважности) делается на одном таймере в режиме ШИМ-захвата... А если надо только частоту считать но более точно, то таймер в счетном режиме.

Edited by Eddy_Em

Share this post


Link to post
Share on other sites
24.06.2021 в 09:46, Eddy_Em сказал:

Это что - абдурина на STM32?

Жесть, куда катится мир?..

P.S. Если что, частотомер (да еще и с замером скважности) делается на одном таймере в режиме ШИМ-захвата... А если надо только частоту считать но более точно, то таймер в счетном режиме.

Правильно , но точность хреновая.ШИМ на одном периоде только низкие частоты. Тема про частотомер хорошо распилина на Коте. Там есть  грамотные ребята, ники не буду называть. Да они и здесь сидят под другими никами, наверно.У меня прямой счёт на 10 секундах время измерения считает отлично. Код элементарный. НО это прямой счёт со всеми недостатками.(Низкие частоты нужно мерить секунд 50 )

Share this post


Link to post
Share on other sites

читал ту темку на котах. Хороша


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

А я так обратный счёт и не могу распилить.Тормоз наверно я.(60 лет однако, а я в stm32 полез:D)

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • если для дома и семьи - можно пользоваться. если для производства - тоже можно пользоваться. если потребуется заключение по проведенным измерениям - нет. хоть для дома, хоть для производства. до тех пор пока к тебе не предьявляют претензий - пользуйся чем желаешь. когда предьявят претензии прав будет тот, кто будет иметь занесенный в реестр прибор, поверенный и не нарушивший регламент измерений (сиречь имеющий сертификат, а следовательно специально обученный для таких измерений). кстати по международным стандартам. наши стандарты более жесткие. и главное (были) едины. все равно где, в детсаду или на стартовой площадке в космос , требования были одинаковые к одним и тем же вещам. на западе у каждого (на соседних производствах) были свои требования. 
    • На цели реагирует. Только-что подкрутил  на плате резистор и пороговый тон появился...
    • С экранировкой от наводок китайцы вообще не заморачиваются. 
    • Вот ещё не понятно , где электролиты с другой стороны платы ? На фото работает Квазар арм, а плата на столе лежит ровно.. но с другой стороны платы должны быть конденсаторы 2200мкФ и 1000мкФ ( фото) . На фото,, на плате этих конденсаторов с другой стороны  Какая то непонятка с этими электролитическими конденсаторами у меня..)) фото)  
    • У меня вопрос: А КТО - НИБУДЬ разобрался с EST7502?  Что должно быть у нее на 4-й ноге? Только не нужно ссылаться на аналоги типа LPG988. Мне кажется ,что это не 100% аналог.
    • Я бы их вообще в полку не рекомендовал бы, насколько помню - они достаточно низкодобротные, их бы в ящики или в двери. А в овальные посадочные полки лучше поищите овальные же динамики )) ЗЫ. И, опять же, насколько помню, не особо-то они и басистые.
  • Similar Content

    • By dim21841
      Добрый день.
      Прошу помощи в выборе контроллера stm32 под следующую задачу:
      Bluetooth HC-05 (1 uart) необходимо связывать по uart с:
      1) MAX232 (2 uart) по 9600, иногда 115200,
      2) с Atmega328 (3 uart) по 115200.
      Задача stm32 выставлять скорость на hc-05 и соединять между собой нужные uart в соответствии с выбором (4 switch в dip-8 корпусе).
      Кто может что-то посоветовать?
      В stm32 пока совсем начинающий.
      STM32 выбрал потому что в перспективе хочу добавить возможность параллельно  выводить данные и на lcd.
      Зарание благодарен за помощь.
    • By Serhii Serheiev
      Помогите пожалуйста советом. Бьюсь несколько дней с опцией ADC.
      Я использую двухканальный АЦП IN0 и IN1 на микроконтроллере STM32L010RB через библиотеку HAL.
      Если проверять по отдельности, все в порядке, но когда я проверяю вместе, у меня все время одна и та же проблема: первый канал перезаписывает данные на втором канале, и у меня одинаковые данные на IN0 и IN1 в терминале
      Функция для выбора IN0.
      void ADC_Select_CH0(void) { ADC_ChannelConfTypeDef sConfig_0 = {0}; sConfig_0.Channel = ADC_CHANNEL_0; sConfig_0.Rank = 0; if (HAL_ADC_ConfigChannel(&hadc, &sConfig_0) != HAL_OK) { Error_Handler(); } } Функция для выбора IN1
      void ADC_Select_CH1(void) { ADC_ChannelConfTypeDef sConfig_1 = {0}; sConfig_1.Channel = ADC_CHANNEL_1; sConfig_1.Rank = 0; if (HAL_ADC_ConfigChannel(&hadc, &sConfig_1) != HAL_OK) { Error_Handler(); } } основной цикл
      while(1) { ADC_Select_CH0(); HAL_ADC_Start(&hadc); HAL_ADC_PollForConversion(&hadc, 100); Axis[0] = HAL_ADC_GetValue(&hadc); HAL_ADC_Stop(&hadc); ADC_Select_CH1(); HAL_ADC_Start(&hadc); HAL_ADC_PollForConversion(&hadc, 100); Axis[1] = HAL_ADC_GetValue(&hadc); HAL_ADC_Stop(&hadc); sprintf(Tx_Data, "Axis X: %d;\r\nAxis Y: %d;\r\n\n\n", Axis[0], Axis[1]); HAL_UART_Transmit(&huart2, (uint8_t*)Tx_Data, strlen(Tx_Data), 1000); } ADC конфигурация:
      static void MX_ADC_Init(void) { hadc.Instance = ADC1; hadc.Init.OversamplingMode = DISABLE; hadc.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2; hadc.Init.Resolution = ADC_RESOLUTION_12B; hadc.Init.SamplingTime = ADC_SAMPLETIME_160CYCLES_5; hadc.Init.ScanConvMode = ADC_SCAN_DIRECTION_FORWARD; hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT; hadc.Init.ContinuousConvMode = ENABLE; hadc.Init.DiscontinuousConvMode = DISABLE; hadc.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; hadc.Init.ExternalTrigConv = ADC_SOFTWARE_START; hadc.Init.DMAContinuousRequests = DISABLE; hadc.Init.EOCSelection = ADC_EOC_SINGLE_CONV; hadc.Init.Overrun = ADC_OVR_DATA_PRESERVED; hadc.Init.LowPowerAutoWait = DISABLE; hadc.Init.LowPowerFrequencyMode = DISABLE; hadc.Init.LowPowerAutoPowerOff = DISABLE; if (HAL_ADC_Init(&hadc) != HAL_OK) { Error_Handler(); } }  
    • By Родион Евченко
      Здравствуйте! Не могу понять, почему на дисплей выводятся только черные квадраты, если смотреть прямо, а если под углом, то видно строку, которую я вывожу. Как убрать эти квадраты, а строку сделать видимой?
    • By SWAP
      Доброго времени суток, форумчане. Вопрос хотел задать на робофоруме, однако, похоже там сон-час (последние лет 5).
      На моих роботах стоят raspberryPi с помощью которых я в эклипсе удаленно дебажу и прогаю находящиеся на борту STMки через "openocd": https://www.instructables.com/Wireless-Programming-and-Debugging-With-STM32-and-/
      Однако, есть серьезное неудобство. При включении робота, требуется вручную подключаться к пишке по ssh и запускать команду: "sudo openocd", после чего все работает.
      Пробовал различные варианты автозапуска команды "sudo openocd" при старте пишки, выпавшие в первых страницах гугла, но результата не получил.
      Быть может, кто-нибудь из местных имеет опыт запуска "openocd" при старте системы?
      (p.s.: мои распбианы без десктопа)
       
       
       
       
    • By Константин Галкин
      Начинаю знакомство с STM32 после AVRок. Решил сделать дрыганог через прерывание по таймеру. Плата Nucleo на базе STM32F446re, частота работы до 180МГц, собираю проект в CubeIDE.
      Для опыта решил взять таймер6 (на самом деле мне всё равно какой) и вызывать прерывания по переполнению счётчика. По даташиту, его тактирование идёт от APB1, которая работает на 45МГц, с множителем Х2 (т.е получается 90МГЦ). Прескалер выставил в 89 (т.е счёт должен идти с частотой 1 МГц), каунтер на 1 (т.е по идее я должен получать прерывания с частотой 500КГц).
      static void MX_TIM6_Init(void) { TIM_MasterConfigTypeDef sMasterConfig = {0}; htim6.Instance = TIM6; htim6.Init.Prescaler = 89; htim6.Init.CounterMode = TIM_COUNTERMODE_UP; htim6.Init.Period = 1; htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_Base_Init(&htim6) != HAL_OK) { Error_Handler(); } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK) { Error_Handler(); } } В обработчике прерывания вызываю смену состояния светодиода на PA5.
      void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if(htim->Instance == TIM6) //check if the interrupt comes from TIM1 { HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); } } Загрузив код и проверив логическим анализатором я получаю частоту 254,5Кгц. Меняя значения прескалера в меньшую сторону увеличения частоты добиться не могу (основной цикл пуст, в программе никаких вычислений кроме этого нет). Почему так происходит?


×
×
  • Create New...