Например TDA7294

Форум РадиоКот • Просмотр темы - Мигать светодиодом. ARM или не-ARM?
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 18, 2024 11:03:28

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


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



Начать новую тему Ответить на тему  [ Сообщений: 3623 ]     ... , , , 78, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Вс сен 10, 2017 14:08:26 
Друг Кота
Аватар пользователя

Карма: 138
Рейтинг сообщений: 2712
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 21797
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Замечательно, в каком-то своем устройстве можно использовать более продвинутые методы когда нужно производить измерения достаточно быстро, но точность то упадет все равно, потому в частотомере, как приборе, никто так измерять частоты не будет.

С какого перепуга должна упасть точность? И с какого перепуга методы измерения в приборах и в оборудовании должны отличаться? Откуда Вы все это взяли?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Вс сен 10, 2017 15:42:20 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
С какого перепуга должна упасть точность? И с какого перепуга методы измерения в приборах и в оборудовании должны отличаться? Откуда Вы все это взяли?

Смотрим на график
Изображение
При длительности измерения 1 сек и опорной частоте 10MHz получим 7 значащих цифр, а если, как ты предлагаешь, производить измерения за очень малый измерительный интервал, например, за 1ms, то их будет всего 4, а частоты меньше 1KHz мы таким образом нормально и не измерим, т.к. не будет хотя бы одного целого периода. Такой подход может быть полезен если в любом случае измерения необходимо провести быстро, но для чего торопиться частотомеру? Чтобы 1000 раз в сек вывести в 1000 раз менее точный результат? Типичный любительский частотомер редко опускает время измерения ниже 0.1 сек, исключения есть, но это скорее режимы для галочки, которые остаются невостребованными.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Вс сен 10, 2017 17:02:56 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
О арифметике частотомеров
Л.И. и FC-510 - живехонький форум с участием самого
http://www.diod.club/forum/topic.php?fo ... pic=25&p=7
оттуда:
СпойлерA: Леонид Иванович, а вы используете в своей программе управления FC-510 - расчеты с плавающей запятой?

B: Нет, плавающую запятую не использую. Точности 32-разрядных float недостаточно, требуются 64-разрядные double. Но в этом случае не хватает памяти ATmega8.

A: Частота 9Мгц в режиме 10с измеряется так - если меняются младшие разряды в процессе измерения- то последний девятый всегда - 0

B: Да, такое наблюдается. Можно даже подать 9 кГц - будет то же самое. Но я не понимаю, почему так происходит. Скорее всего, дело в строке 325 модуля Count.c, для переменной Nx не хватает 64 бит. Для исправления ситуации, похоже, придется переходить на плавающую арифметику, а это большой кусок работы. Думаю, что для любительских целей 9 знаков результата получать не очень нужно.

Попробовал использовать плавающую запятую - памяти не хватает безнадежно.

Проблема в коде:

long pm = 10000000;
if(Mx)
{
while(Nx < (0x7FFFFFFFFFFFFFFF / 10) && pm > 1)
{
Nx = Nx * 10;
pm = pm / 10;
}
Freq = Nx / Mx * pm;
}

Когда интервал 10 сек. при опорной 12.8 МГц, то с учетом интерполятора (к = 100) значение Mx = 12800000000. Значение Nx в худшем случае (зависит от входной частоты) может быть 0x7FFFFFFFFFFFFFFF / 10 = 922337203685477580. Целочисленное деление даст 72057594, что меньше 9 знаков. Не знаю, как выйти из ситуации. Может деление делать в два этапа с промежуточным масштабированием?

Присоединил v3.2, где попытался ошибку округления исправить. Теперь надо тестировать.

A: Ура работает!

К нашим баранам:
Хобийному чисто частотомеру, как вырисовалось, точность сильная не надо, можно на низких частотах один метод - обратный, на высоких - прямой. Минимум деталей и обычный кварц очень хорошо тоже, пока для хобби. Потом хоббист может применить полученные знания профессионально с повышением точности - знать целых два метода это зачет при приеме на работу.
Теория прямого/обратного счета и аналоговый интерполятор доступным языком в документации от Л.И.:
http://www.leoniv.diod.club/projects/me ... fc-510.pdf

что ж за чудо интерполятор, надо всего 2 внешних логических с триггерами:
http://leoniv.livejournal.com/129151.html
туда же:
viewtopic.php?p=3177210#p3177210

Тут нашел еще:
Вот теория, от GM:
Измерение частоты с помощью авр микроконтроллера

Спойлер1) Введём определения
Fо - сигнал опорной частоты,
То - период опорной частоты, То=1/Fо,
Fx - входной сигнал (меандр) неизвестной частоты, подлежащей измерению,
Тх - период входной частоты, Тх=1/Fx,
Тизм - период измерения входной частоты,
N - количество импульсов опорной частоты за время измерения,
M - количество импульсов входной частоты за время измерения.

2) Формула вычисления частоты Fx = Fо*М/N (поскольку очевидно, что То*N=Тх*М за Тизм).

3) Формула для Fx применима как к варианту с "воротами", так и к варианту со схемой захвата. При использовании схемы захвата М является точным числом, а N "гуляет" в пределах (-1,+1). При использовании "ворот" N является точным числом, а М "гуляет" в пределах (-1,+1).

Вот всё, что нам нужно знать из теории для измерения частоты.

4) Применим наши знания на практике. Выберем период измерения Тизм примерно равным одной секунде. (Примерно потому, что Тизм должен быть ТОЧНО кратен М*Тх). Пусть Fx=170 кГц, а Fо=16МГц. Тогда М=170000, а N=16000000.

Вычислим частоту по нашей формуле Fxвыч = Fо*М/N=16000000*170000/16000000=170000 Гц.
Вычислим погрешность метода. Не буду вас мучить выводом соответствующей формулы с помощью частных дифференциалов, кто захочет пусть сам потренируется, скажу только, что относительная погрешность будет суммой модулей относительных погрешностей отдельных составляющих.
Ну и ещё упростим задачу, приняв Fo/Fo =0 (На самом деле, кратковременная нестабильность кварцевой опоры порядка 10^(-8) или лучше).

Итак, Fx = Fо*М/(N±1)=170000±0.010625 Гц. Что нам и требовалось показать. Относительная погрешность составит 6*10^(-8). Можно добавить 10^(-8) нестабильности опоры, если требуется уточнить погрешность. Кстати, для варианта с "воротами" Fx = Fо*(М±1)/N=170000±1 Гц, как и было сказано.

5) Перейдём теперь к реализации алгоритма на микроконтроллере. В принципе, всё и так уже ясно, просто поставим точки над и чёрточки на t(. Сколько нам нужно захватов таймера, чтобы вычислить частоту? Два - один для захвата начала секундного интервала, и второй для захвата конца того же интервала. Пусть захват работает по прерыванию. При захвате, т.е. при положительном фронте импульса входной частоты, содержимое таймера перепишется в регистр ICR. Прекрасно, в этом же прерывании запомним в регистрах или в памяти два числа – количество импульсов Мнач и Nнач, запрещаем прерывание и выходим из него (замечу в скобках, схема захвата "молотит" по-прежнему, но прерывания запрещены), оно нам понадобится только через секунду, займёмся другими делами, скажем, расчетом частоты предыдущего цикла. Через примерно секунду работы (или вынужденного безделья, можно по таймеру) ОПЯТЬ разрешаем прерывания от схемы захвата. Как только оно произойдёт, опять запоминаем два числа – количество импульсов Мкон и Nкон, запрещаем прерывание по захвату и выходим из него, вычисляем М=Мкон-Мнач, N=Nкон-Nнач.

Вот так это всё и работает. Я, конечно многого не упомянул. Все переменные для расчета должны быть соответствующей разрядности, как минимум 32, умножение надо делать до деления, чтобы не потерять точность, вычисление частоты можно вести непрерывно, достаточно просто после вычисления частоты переписать переменные Мнач=Мкон, Nнач=Nкон. Обязателен учёт переполнения таймеров.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Вс сен 10, 2017 17:26:07 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Пн янв 24, 2011 01:51:48
Сообщений: 197
Откуда: Украина, Киев
Рейтинг сообщения: 0
На самом деле мой первый проект на STM32, если его можно таковым назвать, был ЛА на 20-ти ногом F030. 8 цифровых каналов, 19.2 MSPS, один аналоговый, ~4.4 MSPS, генератор(PWM) до 48MHz, частотомер до 48MHz и программатор AVR :) Частотомер конечно не такой точный, но там и кварц обычный, для большинства применений его достаточно. И все это без экрана, подключалось к компу через USB, общая стоимость деталей ~1.5$. Подарил товарищу, собрал более продвинутую модель на F303, подарил другому товарищу, хотя чистый F303 мне вернули, переписал часть кода под F4, убедился, что 130 MSPS действительно достижимы и отложил до лучших времен. А надо было собрать и где-то выложить, чтобы с кем-то конкурировать? :)
заинтересовали Ваши разработки как можно со всем этим ознакомиться?


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Вс сен 10, 2017 17:36:17 
Друг Кота
Аватар пользователя

Карма: 138
Рейтинг сообщений: 2712
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 21797
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
если, как ты предлагаешь, производить измерения за очень малый измерительный интервал, например, за 1ms, то их будет всего 4

:shock:
Числа высосаны из пальца. Ничего такого я не предлагал.
У меня (например) есть задача измерять резонансную частоту некоего контура при ударном возбуждении, когда имеем всего около 15...20 периодов измеряемой частоты. Частота около 60 кГц, значит время измерения составит примерно 300 мкс, а разрешение/точность требуется 1 Гц. Опорная частота - 40МГц (25 нс), сиречь 12000 попугаев (5 Гц)- это предел без интерполятора.
ЗЫ. К слову, измеритель является контрольным при изготовлении некоей продукции. То есть на основе его измерений происходит подстройка станка и отбраковка продукции в автоматическом режиме.
Измерение резонансной частоты контуров ударным методом - распространенная задача. И нехватка разрешения из-за ограниченного числа периодов сигнала при невысокой добротности - тоже типично.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Пн сен 11, 2017 07:41:13 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Теории частотомерной чуть подчитали, можно потихоньку переходить к практике. Некогда пока макет паять - посмотрел Протеус стал поддерживать STM32, правда пока серию F1. Попробуем посимулировать частотомер в Протеусе, неизвестно нормально симулирует ли таймеры, захваты и пр. - ну может хоть мигать светодиодом сможем. Намалевал схемку с индикатором:
Изображение
Аналоговое питание пришлось так подсоединить ибо ругалось. Далее блинкающую программку по свободе напишу, с F1 практически дела не имел - очень давно на отладочной платке запускал чужие примерчики для F1, все абсолютно забылось, будем опять учиться.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Пн сен 11, 2017 09:46:16 
Собутыльник Кота
Аватар пользователя

Карма: 55
Рейтинг сообщений: 415
Зарегистрирован: Чт мар 20, 2008 01:06:40
Сообщений: 2907
Откуда: Севастополь
Рейтинг сообщения: 0
Вот, кстати, типичнейший подход не новичка, но ламера (сорри, это не к вам лично).
Вместо того, чтобы взять теплый ламповый МК в DIP40 (ну, или модуль с распаянным крохой-STM и тем же самым DIP40 на выходе), воткнуть его в макетку и начать работать с реальным железом, вы сходу обрекаете себя на героическую возню с "ибо ругалось", "правда пока серию F1" и прочими багами/ограничениями симулятора, до которых вы пока не добралмсь.

_________________
>(*.*)<
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Пн сен 11, 2017 10:26:56 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
дык лежит передо мной такой модуль:
STM32F103C8T6 было US $1.68 / шт. сейчас недоступно - разгребли
https://ru.aliexpress.com/store/product ... 85935.html
просто интересно что новый протеус смогет, перенести в реал запросто можно
Планировалось вообще все сделать на самом дешевом STM32F030F4P6.
Заказал уже подобный модуль на STM32F030F4P6:
https://ru.aliexpress.com/item/48MHz-ST ... 21744.html
Паять на мотажках обленился - всяки дискавери и нуклео разбаловали + беспаечные макетки. 8)
з.ы. протеус, уже выяснил, могет порты настраивать, дрыгать ногой, систик тож симулируется:
Изображение
софтик мигания:
Спойлер
Код:
#include "stm32f1xx.h"

volatile uint32_t msTicks;                                 // counts 1ms timeTicks
/*----------
 * SysTick_Handler:
 *----------*/
void SysTick_Handler(void)
{
    msTicks++;
}

/*----------
 * Delay: delays a number of Systicks
 *----------*/
void Delay (uint32_t dlyTicks)
{
    uint32_t curTicks;

    curTicks = msTicks;
    while ((msTicks - curTicks) < dlyTicks)
    {
        __NOP();
    }
}

int main(void)
{
    RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
    GPIOA->CRL |=  (GPIO_CRL_MODE0_1 |
                    GPIO_CRL_MODE1_1 |
                    GPIO_CRL_MODE2_1 |
                    GPIO_CRL_MODE3_1 |
                    GPIO_CRL_MODE4_1 |
                    GPIO_CRL_MODE5_1 |
                    GPIO_CRL_MODE6_1 |
                    GPIO_CRL_MODE7_1 );
    GPIOA->CRH |=  (GPIO_CRH_MODE8_1 |
                    GPIO_CRH_MODE9_1 );
   
   SysTick_Config(8000000UL / 1000);                  // SysTick 1 msec interrupts

    while (1)
    {
        GPIOA->ODR ^=(uint16_t)(1<<0);
        Delay(500);
    }

}

пока ничего страшного, почти все как и у восьмибитников, дальше индикатор попробуем запустить


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Пн сен 11, 2017 10:41:55 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
oleg110592 писал(а):
пока ничего страшного
а я уже дрожу: неужели мир увидит любительский проект, использующий всю мощь ARM?! :shock: и это будет нечто реально полезное без блэкджека и девушек с низкой социальной ответственностью?!

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

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Пн сен 11, 2017 10:52:05 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
увы, не порадую - специально добавлю MP3 декодирование - будет частотомер проигрывать музычку в паузах между измерениями, голосом результаты измерений сообщать. Ну и конечно по интернету можно будет получать результаты и настраивать и перегружать - будет полный IoT. :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Пн сен 11, 2017 11:03:18 
Друг Кота
Аватар пользователя

Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Сообщений: 7439
Откуда: г. Москва
Рейтинг сообщения: 0
oleg110592 писал(а):
пока ничего страшного
а я уже дрожу: неужели мир увидит любительский проект, использующий всю мощь ARM?! :shock: и это будет нечто реально полезное без блэкджека и девушек с низкой социальной ответственностью?!

Гавно вопрос - смотри любой любительский опенсоурсный летный контроллер для квадрокоптера

Добавлено after 8 minutes 12 seconds:
Еще со "всей мощь", еще лет 8 назад, тогда мне не особо хватало топового AVR32, а кортексы только только выходили, а 7TDMI был очень уныл...
Вобщем, если кто помнит, когда не было считай смартфонов, а гуглмап был только в на настольниках, было такое решение для для любителей полазить с оффлайн картами вне дорого - OziExplorer. Под WinCE работал, но уж очень эти чтуки меееедленно грузились, долго GPS ловили и очень шустро батарею кушали.
Сделал я тогда на 3.5" TFT, паре батарей от айфона с ебея и, если правильно помню, AT32UC3C256 'аппаратный' Ози в корпусе тоненькой мылницы с картами на SD-card, с выносным USB GPS-mouse с хорошей антеной -))
Выключенный мог годами без зарядки валяться, старт за десятую долю секунды, хотя первичная ловля GPS была, конечно, больше минуты из холодного.

Отрисовка была нормально, но о плавном попиксельном скроле, а уж тем более о скроле с инерцией речь не шла -))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Пн сен 11, 2017 11:15:49 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Для любителей IoT пригодится (имхо)
Компания Telit выпустила новый каталог модулей IoT, который был переведен на русский язык специалистами компании.
тут: http://atoma.spb.ru/news/4162/novyj-kat ... ulej-telit


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Пн сен 11, 2017 11:23:23 
Друг Кота
Аватар пользователя

Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Сообщений: 7439
Откуда: г. Москва
Рейтинг сообщения: 0
Если без айгломура для блондинок, в этом IOTе чтото более годное чем esp8266 за последние пару лет вышло ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Пн сен 11, 2017 11:32:00 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
Числа высосаны из пальца. Ничего такого я не предлагал.
У меня (например) есть задача измерять резонансную частоту некоего контура при ударном возбуждении, когда имеем всего около 15...20 периодов измеряемой частоты. Частота около 60 кГц, значит время измерения составит примерно 300 мкс, а разрешение/точность требуется 1 Гц. Опорная частота - 40МГц (25 нс), сиречь 12000 попугаев (5 Гц)- это предел без интерполятора.
ЗЫ. К слову, измеритель является контрольным при изготовлении некоей продукции. То есть на основе его измерений происходит подстройка станка и отбраковка продукции в автоматическом режиме.
Измерение резонансной частоты контуров ударным методом - распространенная задача. И нехватка разрешения из-за ограниченного числа периодов сигнала при невысокой добротности - тоже типично.

Числа и не было, был "очень малый измерительный интервал", потому я взял 1ms, в реальном проекте оказалось 300us, ошибся всего в 3 раза выбирая наугад. И ты опять приводишь пример проекта в котором приходится проводить измерения достаточно быстро, а я сразу сказал, что именно в подобных случаях более продвинутые техники и могут быть востребованы... Реальные частотомеры, может за редким исключением, не измеряют частоту за произвольные и относительно небольшие промежутки времени, они просто для этого не предназначены, а другие задачи могут диктовать и другие решения, в том числе и более простые. У меня была хорошая точность на больших частотах, меня устраивала точность +-1Hz на малых, не нужно мне рассказывать о преимуществах reciprocal counter, я о них прекрасно осведомлен :)

заинтересовали Ваши разработки как можно со всем этим ознакомиться?

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

Теории частотомерной чуть подчитали, можно потихоньку переходить к практике. Некогда пока макет паять - посмотрел Протеус стал поддерживать STM32, правда пока серию F1.

У F1 больше частоты, в этом плане он даже предпочтительнее, тут уже нужно смотреть хватит ли четырех 16-ти битных таймеров для реализации reciprocal counting, но как минимум их хватит для одновременных прямого счета и измерения периода, с последующим выбором более подходящего метода в зависимости от полученной частоты.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Пн сен 11, 2017 11:48:24 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
более годное чем esp8266

это не совсем для IoT (для любителей хоббистов пойдет) - надо модуль чтоб от батарейки 10 лет работал и своя специфика, вот например:
https://www.u-blox.com/en/product/sara-n2-series
пока со совместимостью разных компаний плохо, но держать ухо востро и любитель - хоббист имхо должен

2 Reflector
20 ног F0 более любительский, пока можно попробовать обкатать прямой счет в протеусе - польза мож кому будет, студентам например


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Пн сен 11, 2017 11:56:47 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
20 ног F0 более любительский, пока можно попробовать обкатать прямой счет в протеусе - польза мож кому будет, студентам например

Протеус, судя по докам, даже F103C8 не понимает, только до F103С6, а там таймера даже не 4, а всего 3.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Пн сен 11, 2017 11:57:27 
Друг Кота
Аватар пользователя

Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Сообщений: 7439
Откуда: г. Москва
Рейтинг сообщения: 0
надо модуль чтоб от батарейки 10 лет работал и своя специфика, вот например:
https://www.u-blox.com/en/product/sara-n2-series

Стоит больше или меньше айфона ? :)))
ESP стоит оптом чип чуть больше бакса - хоть в каждый выключатель и розетку понавтыкай.

А эти ваши начинки смартфоны в габаритах коробки сигарет... не удивительно, что потом комлпект 'умного дома' выходит в 200-400тр


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Пн сен 11, 2017 12:13:36 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
порядок цен меньше, вроде рассматривали:
http://worldiot.ru/2017/04/umnaya-kvart ... 20000-rub/
по частотомеру:
для прямого счета и 3 хватит, а если протеус с внешней ноги считать таймером вообще не смогет - на железку перейдем, у меня еще на F051 таке лежит:
Изображение

upd:
попробовал индикатор с первой попавшей завалящей библиотекой от восьмибитников, тоже заработало
Изображение
сам проектик:
Вложение:
FC_STM32F103C4LCD.zip [755.83 KiB]
Скачиваний: 424


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Вт сен 12, 2017 12:55:22 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
и так Протеус ногодрыг нормально симулирует, индикатор жки ногодрыгом работает, пока все несложно, как и с восьмибитниками. Проверим симуляцию протеусом таймера. Таймеров в выбранном микроконтроллере действительно три да и еще все 16 битные. В первую очередь для прямого счета нам нужен секундный интервал - возьмем TIM3. Есть у таймеров STM32 удобный режим одного прохода (OPM) и еще таймера могут запускать/разрешать счет других таймеров. Все это нам очень даже пригодится для частотомера, но надо чуть напрячься и почитать матчасть. Пробуем мигать светодиодом (оказывается это очень важное занятие) с помощью TIM3 в режиме OPM, интервал секунда. Заодно разрешим тактирование всего нам нужного и настроим запускающую ногу для будущего но уже счетного таймера. Все мигает, значит таймера как то протеус тоже умеет.
программка:
Спойлер
Код:
#include "stm32f103x6.h"
#include "hd44780_driver.h"

volatile uint32_t msTicks;                                 // counts 1ms timeTicks
extern void Delay (uint32_t dlyTicks);
/*----------
 * SysTick_Handler:
 *----------*/
void SysTick_Handler(void)
{
    msTicks++;
}

/*----------
 * Delay: delays a number of Systicks
 *----------*/
void Delay (uint32_t dlyTicks)
{
    uint32_t curTicks;

    curTicks = msTicks;
    while ((msTicks - curTicks) < dlyTicks)
    {
        __NOP();
    }
}

void InitTimers()
{
    TIM3->ARR = 1000; //1000
    TIM3->PSC = 8000; //8000000/8000 = 1000
    TIM3->CR2 |= TIM_CR2_MMS_0; //Enable - the Counter enable signal, CNT_EN, is used as trigger output (TRGO). It is
//useful to start several timers at the same time or to control a window in which a slave timer is
//enabled. The Counter Enable signal is generated by a logic OR between CEN control bit
//and the trigger input when configured in gated mode.
//When the Counter Enable signal is controlled by the trigger input, there is a delay on TRGO,
//except if the master/slave mode is selected (see the MSM bit description in TIMx_SMCR register).

   //    TIM3->DIER |= TIM_DIER_UIE; // Update interrupt enabled
    TIM3->CR1 |= TIM_CR1_CEN | TIM_CR1_DIR | TIM_CR1_OPM; //Counter used as downcounter
//Counter stops counting at the next update event (clearing the bit CEN)   
//Counter enabled
}

int main(void)
{
    RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_TIM1EN;
    RCC->APB1ENR |= RCC_APB1ENR_TIM2EN | RCC_APB1ENR_TIM3EN;
   GPIOA->CRL |=  (GPIO_CRL_MODE0_1 |
                    GPIO_CRL_MODE1_1 |
                    GPIO_CRL_MODE2_1 |
                    GPIO_CRL_MODE3_1 |
                    GPIO_CRL_MODE4_1 |
                    GPIO_CRL_MODE5_1 |
                    GPIO_CRL_MODE6_1 |
                    GPIO_CRL_MODE7_1 );
    GPIOA->CRH |=  (GPIO_CRH_MODE8_1 |
                    GPIO_CRH_MODE9_1 );

    SysTick_Config(8000000UL / 1000);                  // SysTick 1 msec interrupts
   
    LCD(COM, 0x30);
    Delay(4);
    LCD(COM, 0x30);
    Delay(2);
    LCD(COM, 0x30);
    Delay(2);
    LCD(COM, 0x3C);
    Delay(2);
    LCD(COM, 0x0C);
    Delay(2);
    LCD(COM, 0x01);
    Delay(2);
    LCD(COM, 0x80);
    Delay(2);
    LCD_STRING("Hello");
    LCD(COM, 0xC0);
    LCD_STRING("Radiokot");
   
   InitTimers();

    while (1)
    {
        GPIOA->ODR ^=(uint16_t)(1<<0);
      TIM3->CR1 |= TIM_CR1_CEN;
      while ( (TIM3->CR1 & TIM_CR1_CEN) == TIM_CR1_CEN);
    }
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Вт сен 12, 2017 13:32:19 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
Есть у таймеров STM32 удобный режим одного прохода (OPM) и еще таймера могут запускать/разрешать счет других таймеров. Все это нам очень даже пригодится для частотомера, но надо чуть напрячься и почитать матчасть. Пробуем мигать светодиодом (оказывается это очень важное занятие) с помощью TIM3 в режиме OPM, интервал секунда.

Для прямого счета теперь нужно этот TIM3 сделать мастером(TIM_CR2_MMS = Enable) разрешающим счет другому таймеру, а TIM2 будет слейвом(TIM_SMCR_SMS = GatedMode, TIM_SMCR_TS = ITR2) и еще нужно разрешить считать импульсы со входа ETR(TIM_SMCR_ECE = 1). Если ничего критичного фоном выполняться не будет, то объединять два таймера для получения 32-х битного особого смысла нет, можно обойтись и прерываниями, а на третьем собрать измеритель периода.


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

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


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

Сейчас этот форум просматривают: Fajustov, Google [Bot] и гости: 49


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

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


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