Мигать светодиодом. ARM или не-ARM?

Флейм в чистом виде - все что угодно...
Но - в рамках закона :)
Sergi
Мучитель микросхем
Сообщения: 412
Зарегистрирован: Ср янв 04, 2012 11:57:40
Откуда: Алчевск

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Sergi »

У меня STlink определяет f030k6 как f031, но таймеры не проверял.
Реклама
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

определяется у меня так:
Изображение
Подключил индикатор, надо библиотеку LCD 4 бит, нашел тут:
http://easystm32.ru/indication/24-library-for-hd44780
кривоватая там задержка, увеличил на порядок, заработало:
Изображение
PA5, так как там ETR (недокументированный) пришлось освободить, "RS" вывод индикатора теперь на PA6, в библиотеке он "CD"
тестовый кодик:
Спойлер

Код: Выделить всё

#include "stm32f0xx.h"
#include "hd44780_driver.h"

void SystemInit(void)
{
    RCC->CR |= RCC_CR_HSEON;
    /* Wait till HSE is ready */
    while((RCC->CR & RCC_CR_HSERDY) != (RCC_CR_HSERDY));
    RCC->CR &= ~(RCC_CR_HSION);
    // This is potentially a dangerous function as it could
    // result in a system with an invalid clock signal - result: a stuck system
    // Set the PLL up
    // First ensure PLL is disabled
    RCC->CR &= ~RCC_CR_PLLON;
    while ((RCC->CR & RCC_CR_PLLRDY));
    // wait for PLL ready to be cleared
    // set PLL multiplier to 6 (yielding 48MHz)
    // Warning here: if system clock is greater than 24MHz then wait-state(s) need to be
    // inserted into Flash memory interface
    FLASH->ACR |= FLASH_ACR_LATENCY;
    // Turn on FLASH prefetch buffer
    FLASH->ACR |= FLASH_ACR_PRFTBE;
    RCC->CFGR &= ~(RCC_CFGR_PLLMUL_3 | RCC_CFGR_PLLMUL_2 | RCC_CFGR_PLLMUL_1 | RCC_CFGR_PLLMUL_0);
    RCC->CFGR [code]|= (RCC_CFGR_SW_PLL | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMUL_2);
    // Need to limit ADC clock to below 14MHz so will change ADC prescaler to 4
    RCC->CFGR |= RCC_CFGR_ADCPRE;
    // Do the following to push HSI clock out on PA8 (MCO)
    // for measurement purposes.  Should be 8MHz or thereabouts (verified with oscilloscope)
    /*
            RCC->CFGR |= (RCC_CFGR_MCO_2 | RCC_CFGR_MCO_0);
            RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
            GPIOA->MODER |= GPIO_MODER_MODER8_1;
     */
    // and turn the PLL back on again
    RCC->CR |= RCC_CR_PLLON;
    // set PLL as system clock source
    RCC->CFGR |= RCC_CFGR_SW_1;
}

int main(void)
{
    // Power up PORTA
    RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
    GPIOA->MODER |= (GPIO_MODER_MODER0_0 |
                     GPIO_MODER_MODER1_0 |
                     GPIO_MODER_MODER2_0 |
                     GPIO_MODER_MODER3_0 |
                     GPIO_MODER_MODER4_0 |
                     GPIO_MODER_MODER6_0
                    ); 	// make bits  an output
    lcd_init(); //Инициализируем дисплей
    lcd_out("Hello"); //Выводм надпись в нулевую строку
    lcd_set_xy(0,1); //переводим курсор в первую строку
    lcd_out("Radiokot");
    for (;;)
    {
    }
}
з.ы. индикатор из старых запасов, без подсветки - когда то давно по цене мусора купил мешок чужих неактульных устройств на AT89C2051 (SOIC) с такими индикаторами, индикаторы разошлись, один оставил для экспериментов, пригодилось.
Реклама
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Ser60 »

Прежде всего, спасибо ТС Олегу за информативные сообщения о новинках электроники в этой теме. Это далеко не единственный мой источник подобной информации, но получилось так, что уже второй раз именно его сообщения подвинули меня для более подробного ознакомления с соответствующими изделиями при выборе элементной базы. В первый раз это было при упоминании здесь несколько лет назад изделий PSoC фирмы Cypress – сейчас я их вовсю использую. Теперь это ARM микроконтроллеры фирмы Infinion.

Для некоторых моих проектов представляют интерес МК в мелких корпусах QFN24/QFN16. Таковые выпускаются разными производителями, но МК XMC13xx выделяются среди других архитектуры ARM-CM0 наличием матeматического ко-процессора и возможностью тактирования некоторых периферийных модулей (в частности ко-процессора) на частоте выше, чем частота тактирования ядра (и шины APB). Ко-процессор ускоряет процесс вычисления частного и остатка при операции 32-битного целочисленного деления, а также ряда тригонометрических и других функций и вычислений связанных с ними. Так, согласно апноуту AP32307 фирмы, ускорение вычисления частного с ко-процессором по сравнению со стандартными библиотеками составляет 3 – 7 раз в зависимости от компилятора. При этом выигрыш при вычислении косинуса составляет 20 - 40 раз по числу тактов процессора.

Напомню, что в архитектуре CM0 отсутствует аппаратный делитель (есть только однотактовый умножитель). Делителем оснащены МК архитектуры CM3 и выше, но и в них отсутствует аппаратное вычисление других функций. Подчеркну, что в данном случае меня интересуют QFN корпуса с не более, чем 24 выводами. На настоящий момент мне известна лишь одна модель МК ARM-CM3 в QFN24, именно EFM32TG1xx фирмы Silicon Labs (если кто знает модели CM3 других фирм в таких корпусах, буду признателен за информацию). Однако, у них из 24 выводов корпуса целых 7 задействованы под выводы питания/блокирующих конденсаторов/ресета, в то время как у XMC13хх под это задействованы всего 2.

После предварительного знакомства с документацией я предметно поговорил с представителем фирмы на Arrow Tech Expo (про неё будет отдельный пост здесь). Он дал мне советы по среде отладки и для ускорения первого знакомства с семейством XMC и подарил отладочную платку XMC-2GO. Это, пожалуй, самая маленькая отладочная плата на рынке, также одна из самых дешёвых - всего 7 USD не в Китае, что дешевле суммарной стоимости компонентов на ней при покупке в розницу. Её длина сравнима со спичкой и выполнена она в виде брелка. На плате помимо МК установлен внутрисхемный отладчик JLink.
СпойлерИзображение
Хотя МК на плате не совсем тот, что меня интересовал, он имеет на борту 64К флеша и 16К RAM. Надо будет заказать ещё такую и перепаять на ней МК на XMC1301/1302. Пока-же я снял брелочный шнурок с платы и распаял колодки для установки платы на безпаячную монтажку (колодки к плате не прилагаются). Для сравнения рядом показана моя самодельная платка для МК Kinetis MKL03 в QFN16 с разъёмом для программирования.
СпойлерИзображение
Помимо стандартных IDE, таких как IAR или Keil, МК фирмы поддерживаются её собственным IDE DAVE, основанным на платформе Eclipse. Именно её мне и посоветовал представитель фирмы для первого знакомства. В состав DAVE входит графический конфигуратор ресурсов наподобии Cube-MX, позволяющий сконфигурировать ресурсы и выводы корпуса за несколько кликов мышкой. В придачу на вебсайте фирмы предлагается бесплатная и полноценная версия системы uC-Probe без всяких ограничений, заточенная эксклюзивно под МК фирмы. Это приложение для Windows позволяет мониторить различные процессы в МК в режиме реального времени и служит дополнением к отладчику. Разработано оно фирмой Micrium (сейчас она вошла в состав Silicon Labs) – я по ней в прошлом посетил уже дважды учения. Кто не знает что это такое – лучше попробовать свободную версию, работающую в течении минуты после каждого запуска. В общем, первое знакомство с семейством XMC состоялось и впечатление оставило положительное.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

Добавлю
платку XMC 2GO, кому надо, можно прикупить поближе, например:
https://www.terraelectronica.ru/news_postup.php?ID=3736
Infineon XMC1100 еще бывают в корпусах TSSOP16 (типа XMC1100-T016F0008 8KB Flash, 16KB RAM, 2.0 - 5.5V) - можно применять в хоббийных проектах вместо ATtiny.
TSSOP-38 удобный имхо корпус (типа XMC1100-T038F0064 64KB Flash, 16KB RAM, 2.0 - 5.5V ) - можно применять вместо ATmega.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

Пробуем сделать частотомер на STM32F030F4P6. Прямой счет. В принципе в Протеусе уже было все проверено, но было проверено то на серии F1, а у нас F0 и еще реальное железо. Таймера F1 и F0 практически очень похожи. Решил упростить - обойтись вообще без прерываний - все равно выводим результаты раз в секунду. TIM3 - секундный таймер, когда в режиме OPM програмно производим его запуск - он разрешает счет TIM2, по истечении секунды TIM3 останавливается и TIM2 далее не считает - в счетчике TIM2 искомое значение частоты. TIM2 32 бит - за 1 сек имхо не переполнится. Время измерения легко переключить - например на 0,1 сек или 10 сек.
программка:
Спойлер

Код: Выделить всё

#include "stm32f0xx.h"
#include "hd44780_driver.h"

void SystemInit(void)
{
    RCC->CR |= RCC_CR_HSEON;
    /* Wait till HSE is ready */
    while((RCC->CR & RCC_CR_HSERDY) != (RCC_CR_HSERDY));
    RCC->CR &= ~(RCC_CR_HSION);
    // This is potentially a dangerous function as it could
    // result in a system with an invalid clock signal - result: a stuck system
    // Set the PLL up
    // First ensure PLL is disabled
    RCC->CR &= ~RCC_CR_PLLON;
    while ((RCC->CR & RCC_CR_PLLRDY));
    // wait for PLL ready to be cleared
    // set PLL multiplier to 6 (yielding 48MHz)
    // Warning here: if system clock is greater than 24MHz then wait-state(s) need to be
    // inserted into Flash memory interface
    FLASH->ACR |= FLASH_ACR_LATENCY;
    // Turn on FLASH prefetch buffer
    FLASH->ACR |= FLASH_ACR_PRFTBE;
    RCC->CFGR &= ~(RCC_CFGR_PLLMUL_3 | RCC_CFGR_PLLMUL_2 | RCC_CFGR_PLLMUL_1 | RCC_CFGR_PLLMUL_0);
    RCC->CFGR |= (RCC_CFGR_SW_PLL | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMUL_2);
    // Need to limit ADC clock to below 14MHz so will change ADC prescaler to 4
    RCC->CFGR |= RCC_CFGR_ADCPRE;
    // and turn the PLL back on again
    RCC->CR |= RCC_CR_PLLON;
    // set PLL as system clock source
    RCC->CFGR |= RCC_CFGR_SW_1;
}

const char* u32ToStr(uint32_t val)
{
    static char buf[12];

    for (int i = 10; i >= 0; i--)
    {
        buf[i] = '0' + val % 10;
        val /= 10;
        if (!val) return buf + i;
    }
    return 0;
}

void TIM3_Init(void)
{
    TIM3->PSC = 48000-1; //48000000/48000 = 1000Hz
    TIM3->ARR = 1000-1; //1000/1000 = 1Hz
    /*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->CR2 |= TIM_CR2_MMS_0;
    /*Counter stops counting at the next update event (clearing the bit CEN) Counter enabled*/
    TIM3->CR1 |= TIM_CR1_OPM;
}

void TIM2_Init()
{
    /*External clock mode 2 enabled. The counter is clocked by any active edge on the ETRF
    002: Internal Trigger 2 (ITR2) TIM3_TRGO*/
    TIM2->SMCR |= TIM_SMCR_ECE | TIM_SMCR_TS_1;
    /*101: Gated Mode - The counter clock is enabled when the trigger input (TRGI) is high. The
    counter stops (but is not reset) as soon as the trigger becomes low. Both start and stop of
    the counter are controlled.*/
    TIM2->SMCR |= TIM_SMCR_SMS_0 | TIM_SMCR_SMS_2;
    /*010: Update - The update event is selected as trigger output (TRGO). For instance a master
    timer can then be used as a prescaler for a slave timer.*/
    TIM2->CR2 |= TIM_CR2_MMS_1;
    TIM2->CR1 |= TIM_CR1_CEN;
}

void GPIO_Init()
{
    GPIOA->MODER |= (GPIO_MODER_MODER0_0 |
                     GPIO_MODER_MODER1_0 |
                     GPIO_MODER_MODER2_0 |
                     GPIO_MODER_MODER3_0 |
                     GPIO_MODER_MODER4_0 |
                     GPIO_MODER_MODER5_1 |	/*Select alternate function mode */
                     GPIO_MODER_MODER6_0
                    ); 	/*make bits  an output*/
    /**TIM2 GPIO Configuration
    PA5   ------> TIM2_ETR
    */
    /*Configure gpio alternate function of a dedicated pin from 0 to 7 for a dedicated port.
    Possible values are from AF0 to AF7 depending on target.
    GPIOA->AFR[0] |= ((((Pin * Pin) * Pin) * Pin) * Alternate));*/
    /*PA5 Select alternate function 2*/
    GPIOA->AFR[0] |= (((((uint32_t)(1<<5) * (uint32_t)(1<<5)) * (uint32_t)(1<<5)) * (uint32_t)(1<<5)) * (uint32_t)2); //=0x00200000
}

int main(void)
{
    // Power up PORTA, TIM2, TIM3
    RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
    RCC->APB1ENR |= RCC_APB1ENR_TIM2EN | RCC_APB1ENR_TIM3EN;
    GPIO_Init();
    lcd_init(); //Инициализируем дисплей
    lcd_out("Frequency"); //Выводм надпись в нулевую строку
    TIM2_Init();
    TIM3_Init();
    for (;;)
    {
        TIM2->CNT = 0;
        TIM3->CR1 |= TIM_CR1_CEN;
        while((TIM3->CR1 & TIM_CR1_CEN) == TIM_CR1_CEN) {}
        lcd_set_xy(0,1); //переводим курсор в первую строку
        lcd_out("                "); //clear
        lcd_set_xy(0,1); //переводим курсор в первую строку
        lcd_out(u32ToStr(TIM2->CNT));
        lcd_out("Hz");
    }
}
Вроде как совсем не сложно получилось.
Главное теперь частоту теперь найти, чтоб измерять. Нашел у себя кварцевый генератор 8.00000МГц, 3В питание - для тестов пойдет. Вот что показал наш частотомер:
Изображение
Показания иногда прыгают 1 Гц. От температуры (палец на кварце отладчной платы) показания увеличиваются - можно организовать измерение температуры с помощью кварца. Для проверки возможностей железа это имхо не принципиально.
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18561
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение ARV »

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

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

мне тоже нравится, интересно как такое на AVR 8 бит организовать...
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18561
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение ARV »

oleg110592 писал(а):как такое на AVR 8 бит организовать
никак, наверное. хотя я не долго думал, но вряд ли ошибся...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

нашел на AVR частотомер, метод измерения несколько отличается, но не суть
http://chipenable.ru/index.php/programm ... llere.html
ну что сказать - труднее было раньше делать хоббийный частотомер, все таймера (3) похоже пришлось задействовать прерывания, переполнения, unsigned long, unsigned long long...
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Reflector »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3186470#p3186470"]нашел на AVR частотомер, метод измерения несколько отличается, но не суть
http://chipenable.ru/index.php/programm ... llere.html
ну что сказать - труднее было раньше делать хоббийный частотомер, все таймера (3) похоже пришлось задействовать прерывания, переполнения, unsigned long, unsigned long long...[/uquote]
И максимально измеряемая частота на AVR меньше примерно в 3.5 раза относительно F0 и раз в 5 относительно F1.

ps. Код наглядно демонстрирует насколько сложны таймеры STM32, аж 4 регистра пришлось задействовать, а в простейшем случае хватило бы и трех. Это к тому, что некоторые рассказывают будто одни эти таймеры сложнее AVR в целом :) Конечно есть в них и более сложные режимы, но никто их использовать не заставляет...
Последний раз редактировалось aen Вт сен 19, 2017 10:08:19, всего редактировалось 1 раз.
Причина: Нарушение Правил форума п. 2.7
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25266
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение КРАМ »

Откуда эта непобедимая любовь к частотомерам?
Стесняюсь спросить о сфере их применения...
Когда занимался сантиметровым и верхним дециметровым диапазонами, частотомер доставал с полки раза 2 в год, когда сдавал тему представителю заказчика.
А радиолюбителю..., ну разве часы откалибровать быстро, ну еще цифровую шкалу приемнику сбацать.
В первом случае частота совсем низкая, а во втором не нужно высокое разрешение и единственный корпус за 5...10 рублей на входе дополнительно к МК (все равно формирователь на россыпи делать) решает вопросы верхней частоты радикально.
Это я к тому, что доказывать на этой основе что АРМ лучше Атмела просто смешно. Никаких принципиальных отличий там нет. Реализуемо примерно одинаково на обеих платформах. Дело вкуса.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

Откуда эта непобедимая любовь к частотомерам?
чукча не читатель - тут начало:
http://radiokot.ru/forum/viewtopic.php? ... 6#p3179216
Отвлечемся немного - интересный семинар (имхо) от ST.
STM32 hands-on workshop: Connect your long-range network to the cloud
Полный день практического семинара
Этот 1-дневный семинар включает в себя 3 различных практические тренинга эксперта STM32 о том , как подключить приложение IoT к облаку с помощью маломощного глобальной сети (LPWAN).
Вы будете работать на платформе разработки STM32, полностью LoRa® и Sigfox совместимыми и узнаете , как создать свою собственную рабочую область на облачных вычислений службы Microsoft Azure.

Целевая аудитория
Аппаратные и программные инженеры работающие над приложениями IoT иследующие возможности соединения облака через LPWAN.

Программа
* Как настроить среду разработки STM32
* Технология указания для подключения STM32 на основе приложения к LPWAN
* Основы LoRa® и Sigfox технологий
* Практический опыт и примеры для репликации в Ваших помещениях
* Прямой контакт с инженерно-техническим персоналом STM32
Бесплатно. Где, когда, подробнее, регистрация тут:
http://www.st.com/content/st_com/en/abo ... cloud.html
главное 12:00–13:00 Lunch не пропустить. :)
видео "STM32L0 LoRa discovery kit Getting started" тут:
https://www.youtube.com/watch?v=MgbTraRq0K8
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25266
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение КРАМ »

Ссылка не объясняет мотивацию фанатов частотомеростроения. Эта любовь иррациональна, как любовь к почтовым маркам или значкам...
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18561
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение ARV »

КРАМ писал(а):Эта любовь иррациональна, как любовь к почтовым маркам или значкам...
нет, не совсем так. филателист редко когда хвалится количеством своих марок, а тут налицо чисто количественные характеристики, подтверждающие ЧСВ: частоту можно мерить с точностью до 1Гц в диапазоне до 10МГц! это ж как круто! с точностью в 0,5% такую частоту пусть лошары меряют (50 кГц)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

[uquote="КРАМ",url="/forum/viewtopic.php?p=3186533#p3186533"]не объясняет мотивацию фанатов частотомеростроения[/uquote]
мотивация проста - разминка для мозга (хобби и такое бывает) 8)

По теме - PSoC 6 подробное учебное пособие мигания светодиодом:
https://www.rs-online.com/designspark/p ... =407972548
PSoC 6
* Dual-Core ARM Cortex-M
* Ultra-Low-Power
* High-Performance
* Human Machine Interface (HMI)
* Wired and Wireless Connectivity
* Hardware Based Security
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Reflector »

[uquote="КРАМ",url="/forum/viewtopic.php?p=3186520#p3186520"]Откуда эта непобедимая любовь к частотомерам?
Стесняюсь спросить о сфере их применения...
Когда занимался сантиметровым и верхним дециметровым диапазонами, частотомер доставал с полки раза 2 в год, когда сдавал тему представителю заказчика.
А радиолюбителю..., ну разве часы откалибровать быстро, ну еще цифровую шкалу приемнику сбацать.[/uquote]
Только недавно была тема, просили помочь настроить для AVR ШИМ на 30КГц, вот там бы частотомер точно не помешал :) Еще можно время выполнения кода косвенно измерять, даже я так иногда делаю, например, когда оптимизировал эмулятор спектрума, то отключал синхронизацию, периодически генерил на ножке импульс и измерял частоту кадров. Можно сделать небольшое изменение и получить +30 фпс :) А в целом согласен, потому и говорил, что частотомер как самостоятельное устройство для меня достаточно уныл...
В первом случае частота совсем низкая, а во втором не нужно высокое разрешение и единственный корпус за 5...10 рублей на входе дополнительно к МК (все равно формирователь на россыпи делать) решает вопросы верхней частоты радикально.
Это я к тому, что доказывать на этой основе что АРМ лучше Атмела просто смешно. Никаких принципиальных отличий там нет. Реализуемо примерно одинаково на обеих платформах. Дело вкуса.
Думаю многим любителям 8-ми ногих тинек будет очень сложно доказать, что добавление единственного корпуса будет означать отсутствие принципиальных отличий :) Еще и точность после делителя упадет...
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25266
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение КРАМ »

Не точность, милостивый государь, а разрешение. Да и то при определенных условиях. Если измерять захватом с включенным предделителем, то никуда разрешение не упадет... Как Вы уже знаете. ;)
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Reflector »

[uquote="КРАМ",url="/forum/viewtopic.php?p=3186594#p3186594"]Не точность, милостивый государь, а разрешение. Да и то при определенных условиях. Если измерять захватом с включенным предделителем, то никуда разрешение не упадет... Как Вы уже знаете. ;)[/uquote]
Допустим у мк предел измерений частоты 10MHz, а хочется измерять в 4 раза больше, тогда ставим делитель на 4, подаем 7 импульсов на частоте близкой к максимальной, ведь ради этого делитель и ставили, сколько насчитает мк?
Последний раз редактировалось aen Вт сен 19, 2017 11:59:34, всего редактировалось 1 раз.
Причина: Нарушение Правил форума п. 2.7
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25266
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение КРАМ »

Зачем допускать, если можно посмотреть в даташит. Опять же 10/4=2500000 гц, сиречь за 0,25 сек получим разрешение в 6 полных десятичных разрядов. Вы полагаете, что точность будет выше? :)))
И что Вы будкте применять в качестве эталона? Гиацинт?
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

Ну теперь можно опробовать и другие методы измерения частоты. Прямой счет, как мы убедились, оказалось легко реализовать.
Вот еще нашел частотомер на ATtiny2313:
http://www.mshopf.de/proj/avr/freq_meter.html
утверждается что это reciprocal метод - надо разбираться, изучать матчасть. Так как ресурсов ATtiny2313 маловато - автор похоже применил самописную 64 бит математику на ассемблере. Про точность и проблемы реализации в железе по ссылке README.
Ответить

Вернуться в «МЯЯЯУ!»