Например TDA7294

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





Текущее время: Чт апр 18, 2024 21:45:33

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


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



Начать новую тему Ответить на тему  [ Сообщений: 3623 ]     ... , , , 82, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Чт сен 21, 2017 16:46:01 
Друг Кота

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 0
Где там что-либо беспроводное ? Правильно, аж нигде. Ибо чревато.

1) IoT != wireless

2) беспроводные железки там существуют. Идем на первую страницу гугла:
http://www.advantech.ru/products/iot-wi ... 875680a53c
http://www.lm-technologies.com/industri ... -solution/
http://w3.siemens.com/mcms/automation/e ... ation.aspx
https://www.omega.com/kwbld/wirelessind ... edProducts


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

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
и вебинары по беспроводным IoT бывают для хоббистов любителей, вопросы безопасности рассматриваются
FREE PSoC 6 Webinar: Building Next-Gen BLE Solutions for the IoT
Building Next-Gen, Low-Power Bluetooth Low Energy (BLE) Solutions for the IoT: Part 1

Event Date: Thursday, September 28, 2017
Event Time: 11:00 AM ET | 8:00 AM PT
Hosted by: Electronic Design
Sponsored by: Mouser Electronics & Cypress

Summary
Get solutions to your embedded system design challenges for firmware/embedded software development, power enhancement, (stretching battery life, optimizing power for performance, etc.), security and more with new BLE technology.
Alan Hawse (@iotexpert) and Michi Yoneda have teamed up to walk you through a technical discussion and a series of hands-on lessons focused on enabling you to create next generation, low-power BLE solutions for the IoT.

Join us for this two-part series to learn about:
* The architectural trade-offs between application processors and traditional microcontrollers for IoT applications
* Best practices and needs in today’s and tomorrow’s IoT applications
* Developing next-generation IoT applications with Cypress’ PSoC 6 MCUs with BLE connectivity
* Adding CapSense capacitive-sensing to your next IoT application
* And more…

Register today!
http://www.electronicdesign.com/webcast ... cf24b1c70f


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

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

arkhnchul писал(а):
в промышленности для датчиков и исполнительных устройств вполне широко используются
в промышленности что только не используется, но неужели любитель обязан брести по этому пути, как баран на мясокомбинат?!

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

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


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Чт сен 21, 2017 18:44:57 
Друг Кота

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 0
неужели любитель обязан брести по этому пути, как баран на мясокомбинат?!

нельзя ли цитатку из этого треда, что-де любитель чего-то такое "обязан", а не "имеет возможность"?


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Чт сен 21, 2017 19:07:05 
Ум, честь и совесть. И скромность.
Аватар пользователя

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

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

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


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Мигать светодиодом. ARM или не-ARM?
СообщениеДобавлено: Чт сен 21, 2017 20:17:13 
Друг Кота

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 3
я тему читал примерно всю. И если сначала она тихо-мирно была списком новостей "производитель имярек выкатил эвона чего, ухитрившись упихать в чип кучу фарша", то потом набежали Опытные Люди Знающие Как Надо Ибо Они Героически Преодолевали Трудности с "это все никому не нужная блажь, восьмибитников хватит всем и на все".


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

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

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

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


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

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Пробуем дальше делать частотомер на STM32F030F4P6. Reciprocal страшный. Страшный почему - надо парочку 32 бит таймеров и по формуле присутствует умножение двух чисел 32 бит, а это, если не ошибаюсь, уже 64 бит математика.
Вспомним слова посетителя нашей темы:
Цитата:
Это я к тому, что доказывать на этой основе что АРМ лучше Атмела просто смешно. Никаких принципиальных отличий там нет. Реализуемо примерно одинаково на обеих платформах. Дело вкуса.

Нам нужен второй 32 бит таймер, а у нас остались только 16 битные - сделаем, как и для Атмела, программное расширение 16 битного таймера до 32 битного. Т.е. при переполнении таймера происходит прерывание и инкрементируется программный счетчик. Посмотрим реализацию на Tiny2313 - в прерываниях сплошной ассемблер. Наш то микроконтроллер не намного лучше тини, "принципиальных отличий там нет"(с), но тактовая частота повыше, может обойдется.
Теперь формула - у компилятора Си есть 64 бит переменные, да и флэша у нас поболее - может не придется, как на тини, ассемблерную математику использовать.
попишем:
Спойлер
Код:
#include "stm32f0xx.h"
#include "hd44780_driver.h"

uint32_t rezult;
uint16_t counterTIM1Hi;

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;
    // 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;
}

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 = 1000
    TIM3->ARR = 1000-1; //1000
    /*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 TIM1_Init(void)
{
    TIM1->SMCR |= 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.*/
    TIM1->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.*/
    TIM1->CR2 |= TIM_CR2_MMS_1;
    TIM1->DIER |= TIM_DIER_UIE; //Interrupt enable
    TIM1->CR1 |= TIM_CR1_CEN;
    NVIC_EnableIRQ(TIM1_BRK_UP_TRG_COM_IRQn);
    NVIC_SetPriority(TIM1_BRK_UP_TRG_COM_IRQn, 0);
}

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, TIM1
    RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
    RCC->APB1ENR |= RCC_APB1ENR_TIM2EN | RCC_APB1ENR_TIM3EN;
    RCC->APB2ENR |= RCC_APB2ENR_TIM1EN;
    GPIO_Init();
    lcd_init(); //Инициализируем дисплей
    lcd_out("Frequency"); //Выводм надпись в нулевую строку
    TIM2_Init();
    TIM3_Init();
    TIM1_Init();
    for (;;)
    {
        TIM2->CNT = 0;
        TIM1->CNT = 0;
        counterTIM1Hi = 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); //переводим курсор в первую строку
        //F = F_CPU * n_EVT / n_CLK
        rezult = ((__int64)48000000UL*(__int64)TIM2->CNT)/(__int64)((uint32_t)TIM1->CNT | (uint32_t)counterTIM1Hi << 16);
        lcd_out(u32ToStr(rezult));
        lcd_out("Hz");
    }
}

void TIM1_BRK_UP_TRG_COM_IRQHandler(void)
{
    TIM1->SR &= ~TIM_SR_UIF;
    counterTIM1Hi++;
}

Вроде опять не сложно, принципиальных отличий от Атмела тоже не наблюдаю.
Скомпилируем, а вдруг не вложимся в 16(32)КБ:
Program Size: Code=1368 RO-data=208 RW-data=8 ZI-data=1040
Чет подозрительно мало.
Проверяем в работе:
Изображение
работает, и весьма шустро - фомулу считает моментально, ах у нас же ядро то 32 бит, говорят никому не нужное, вот и пригодилось, но "принципиальных отличий там нет"(c). Так же несомненно работает и на Атмеле, но на Атмеле видим реализовать несколько труднее, да и не интересно уже (мне). Кому трудности важнее, а мне удобнее, познавательнее, перспективнее и приятнее на STM32 хоббировать, поскольку и в работе использую Армы. Раньше не приходилось связывать таймера, разрешать счет другим таймером, использовать 64 бит математику - теперь в работе это умение вполне пригодится. Вот вам и "реальное применение этой куче золота с пользой".
з.ы. Ну а кому нравятся трудности, имхо, лучше делать частотомер на 155 серии типа:
http://dr-spear.com/page.php?id=113
Вполне возможно на 155 сделать reciprocal, наверное. Ждем реализации, на страницах темы, от любителей скудной базы...
А может успеете на конкурс reciprocal на 155? Победа несомненно обеспечена. Не благодарите за подсказку.
з.ы.з.ы. тональность этого поста, да и прочих тоже, НЕ может быть выражена такими словами: "ARM надо изучать всем, а старье - удел либо тупых, либо упоротых", автор всего лишь высказывает свои размышления по поводу построения частотомера на микроконтроллере стм32 с АРМ ядром.
:)


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

Карма: 138
Рейтинг сообщений: 2712
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 21806
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Стесняюсь спросить, зачем нужна 64-битная математика в обсуждаемой задаче (немного математических выкладок)?
Стесняюсь спросить, сколько нужно ОЗУ для 64-битного деления (даже если себе представить потребность в ней по первому пункту).
Олег, прежде чем реализовывать 100500 разрядов разрешения, стоит задуматься о том, сколько разрядов будут иметь хоть какой то физический смысл....


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

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
поверил этому, на слово:
Цитата:
In order to get sub-Hz resolution, this has to be calculated in fixpoint arithmetics. This easily exceeds the range of 32bit arithmetics, thus 64 bit arithmetics are required, which need special handling to fit into the tiny flash of the ATtinys.

http://www.mshopf.de/proj/avr/freq_meter.html
привык доверять знающим людям в частотомеростроении. А что нагло обманул?


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

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 2
попишем:

counterTIM1Hi должен быть volatile, AF задается не кучей умножений, а как 2 << 5*4, стабилизации PLL нужно дожидаться так же как и его отключения, вместо
Код:
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);

лучше писать так, причем во всех подобный случаях
Код:
RCC->CFGR = RCC->CFGR & ~RCC_CFGR_PLLMUL | RCC_CFGR_PLLMUL6 | RCC_CFGR_SW_PLL | RCC_CFGR_PLLSRC;

Это эффективнее, т.к. будет только одно чтение и запись в регистр, вместо двух, и это потенциально безопаснее, т.к. тут нет промежуточных состояний. Часто, даже в обучающих статьях, можно встретить такой код переключения на PLL:
Код:
RCC->CFGR &= ~RCC_CFGR_SW;
RCC->CFGR |= RCC_CFGR_SW_PLL;

Но очистка в первой строке равносильна переключению на HSI, который может быть выключен и теоретически можно тут отловить эксепшн.


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

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

Нет, просто надо читать не выборочно.
Речь идет лишь о разрешении, точность нужно реализовывать аппаратно, параметрами опорного генератора.
Нужно что то делать с фазовыми шумами, если применен ПЛЛ...
Но это лишь один из поставленных вопросов.
Математика деления достаточно примитивна и потому легко реализуема ручками без стандартных библиотек и с любой вменяемой разрядностью.
Будет использовано 2 или 22 регистра ОЗУ в общем не имеет значения. Тем более, что это все локальные переменные.
Ну и простой пример. 32 разряда фикспойнта дают значение больше, чем 4000000000. Сиречь разрешение в 1 Гц на фоне 4 ГГц.
Отсюда и вопрос по 64 разрядам...
Для деления 32 разрядов на 32 разряда совсем не обязательно иметь в результате 64, есличо... При делении любой разрядности на любую разрядность результат может иметь так же любую разрядность. То есть РЕАЛЬНОЕ выходное разрешение в конце концов определяется исключительно входящей разрядностью.


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

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

у нас же вроде вначале умножение, а потом деление, на калькуляторе прикидывал:
48000000*48000000=2304000000000000=0x82F79CD900000=0b1000001011110111100111001101100100000000000000000000
51 разряд, вроде как
а зачем ручками, если компилятор умеет 64 бит и микроконтроллеру оказалось не напряжно.

2 Reflector
Спасибо, учту замечания
с volatile тож работает :) , там после всех измерений прерываний не должно быть уже - подумал не страшно.
Такое конфигурирование AF увидел в индусском коде от ST в недрах LL, которое вместо SPL - решил попробовать.


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

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
oleg110592 писал(а):
48000000*48000000=2304000000000000
собственно, это ожидаемо... :facepalm: наличие безразмерных ресурсов вредит мыслительному процессу.

Добавлено after 53 seconds:
oleg110592 писал(а):
а зачем ручками, если компилятор умеет 64 бит и микроконтроллеру оказалось не напряжно

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

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


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

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
ну и чиста калькулятор так насчитал 48000000*48000000=2.304E15, калькуляторам верить что ли нельзя теперь


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

Карма: 74
Рейтинг сообщений: 607
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3715
Рейтинг сообщения: 7
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Краткая информация с двух семинаров, которые я посетил в августе-сентябре.
Silicon Labs: семинар был посвящён новой технологии BLE-5. Не буду описывать здесь отличия от BLE-4 – они значительны и касаются изменения как самого протокола, так и аппаратной части радио. Все профильные фирмы уже как минимум год занимаются разработкой своей продукции под новые спецификации, особенно после предварительной/окончательной их публикации группой Bluetooth SIG в конце 2016. Каждая фирма старается выдти как можно ранее на рынок со своими новинками и зачастую рекламирует изделия не полностью реализующие все спецификации BLE-5 честно, однако, об этом предупреждая и анансируя свои планы по доведению продукции до ума. Не является в этом смысле исключением и названная фирма. У нее имеется на настоящий момент 3 семейства микроконтроллеров EFR32 с ядром ARM-CM4, содержащих радио модуль на кристалле: это Mightly Gecko, Blue Gecko, и Flex Gecko. Из них помимо проприетарных протоколов BLE поддерживают, собственно, первые два, причём первое семейство также поддерживает протоколы Thread и Zigbee. Семинар был основан на демо-плате для FER32BG13. Она разработана для установки на отладочную Mainboard, о которой я уже писал здесь. На конец лета 2017 аппаратная часть и стек протоколов поддерживает изменения в BLE-5 advertisement, 2М PHY, и опцию LE Long Range. Замечательно, что фирма также делает законченные модули с антенной и прочей обвязкой для своих радио-чипов, не предоставляя это (порой сомнительным) третим фирмам. Выпуск законченных модулей на чипах хBG13 - BGM13P/BGM13S - планируется на конец 2017.

Лично для меня сюрпризом было то, что фирма отказалась от концепции среды BGScript, которую она унаследовала при поглощении BlueGiga и перешла полностью на разработку BLE приложений на С. Вообще-то туда этому скрипту и дорога, т.к. большинство функций чипов были ранее недоступны чере BGScript. Сейчас он поддерживается только для чипов EFR32BG1 и старых версий стека. Разработку приложений полностью на С можно было делать и ранее, однако на момент написания моей тогдашней статьи это можно было делать только после установки полноценной версии IAR из-за специфики библиотек. Сейчас фирма поддерживает свои библиотеки как для IAR, так и для GCC компиляторов. На семинаре мы использовали бесплатную систему Simplicity Studio фирмы с GCC – мне, в общем, она понравилась. Однако, на сегодня разработка приложений под BLE-5 затрудняется в ограниченной поддержке этого протокола промышленными беспроводными устройствами (смартфоны, планшеты...) на рынке, так что для разработки следует иметь 2 отладочные BLE-5 платы. Коммуникация при BLE-5 может начинаться в режиме совместимом с BLE-4 и если оба устройства поддерживают BLE-5, то может совершиться обоими переход на него. Фирма принесла на семинар свой BLE-5 сервер, с которым мы и устанавливали связь при выполнении лабов. Картина кардинально поменяется в недалёком будущем. Уже сегодня hot topic – это разработка многими фирмами приложений под BLE-Mesh (одна из опций BLE-5) и у Silicon Labs имеется её программная реализация. Многим видится постепенное отмирание Bluetooth Classic в пользу BLE-5 и может быть даже Zigbee в пользу Thread/BLE-5. Последнее, однако, спорно – война протоколов продолжается.

Про второй семинар напишу в следующем сообщении.

Добавлено after 3 hours 30 minutes 11 seconds:
Продолжаю... Второе событие, которое я хотел отметить – это не отдельный семинар, а грандиозный event под названием Arrow Tech Expo, организуемый вот уже который год подряд дистрибъютором электронных компонентов Arrow, имеющим отделения во многих странах мира. В прошлом году (см. мой пост ранее в этой теме) они превзошли себя и арендовали под Expo целый недавно перестроенный крытый стадион в Миннеаполисе, рассчитанный на 70000 зрителей, так что около 1000 участников Expo и киоски практически затерялись на его футбольном поле. В этом году всё было несколько скромнее в здании огромного отеля Double Tree Plaza, куда я и ранее неоднократно ездил на другие семинары. Однако, в этот раз фирма решила нас развлечь под конец, пригласив группу Hairball выступить с концертом. Честное слово – лучше-бы они этого не делали. Я об этой группе ранее не слышал, так что меня удивило и насторожило, что перед концертом всем выдали затычки в уши. Я ожидал что-то типа классической музыки (это не по поводу затычек), однако после начала хотелось вставить в уши вторую пару затычек, т.к. от музыки у меня тряслось пиво в стакане и одежда на теле. После 10 минут концерта я сдался и позорно ретировался, всю дорогу домой не переставая думать почему моя машина вдруг стала абсолютно безшумной. Однако, многие участники слушали выступление группы вообще без затычек. Старею я что-ли?

Короче, по делу. Полуторочасовые презентации были даны 19 фирмами, каждая представившая новинки своей продукции. Организованы они были в 4 параллельные секции, так что я посетил только 4 наиболее меня интересовавшие презентации, см. ниже. Однако, всем участникам дали PDF-ки слайдов со всех презентаций. Помимо этого, на Expo было порядка 100 киосков представленных фирм и фирм, работающих с представленной тематикой. Так что в перерывах между презентациями можно было обсудить интересующие вопросы с представителями фирм. Конкретнее по презентациям.

Cypress: всё посвящено было их новой линейке PSoC-6. Система помимо кучи периферии содержит двойное ядро CM4/CM0+, тактируемые на 150 и 100 мгц, соответственно. PSoC выполнена по 40-нм технологии и имеет рекордное потребление в 22 мкА/мгц (ядро М4) и 15 мкА/мгц (ядро М0+) и до 1М флеша + 288М RAM. Некоторые модели семейства содержат лишь одно ядро и/или радио-модуль на борту. Олег отметил выше предстоящий вебинар по ним – советую посмотреть. Радио-тракт поддерживает BLE-5 с максимальной выходной мощностью +4dBm. К сожалению, не были даны никакие hands-on сессии, чтобы поработать живьём с изделиями, однако, демо-паты доступны уже сегодня, а к концу года ожидается выпуск фирмой BLE радио-модулей на PSoC-6. Все PSoC поддерживаются системой Keil или PSoC Creator, однако несмотря на внутреннюю связь ядер через шину AHB, отладку 2-ядерных приложений можно пока производить лишь поядерно с использованием внешних средств, таких как логический анализатор. Любое из ядер можно, например, отрядить под работу с BLE стеком, оставив другое целиком под приложение, или просто отключив его. Этим достигается ощутимое упрощение разработки приложений, особенно работающих в реальном времени. Те, кто занимался вопросами синхронизации своего приложения и стека протокола связи на одно-ядерной архитектуре, надеюсь, понимают о чём я здесь пишу в смысле простоты. Отмечу попутно, что в прошлом году на форуме NXP FTF была представлена их аж 3-ядерная ARM-CMx архитектура, однако на мой вопрос под какие IoT приложения она разработана лектор конкретного ответа не дал (может он посчитал что дал, но у меня такое впечатление не сложилось).

Semtech: эта фирма знаменита своей продукцией в области LoRa/LoRaWAN и презентация была посвящена их чипам SX127x и модулям на их основе, а также Gateway. В общем, продукция их недешевая, однако, имеются модули LoRa с Arduino-совместимым форм-фактором отладочных плат. Интересен также их новый отладочный Кит SX1272DVK, а также mbed-платформа NAMote72.

Microchip дал презентацию, посвящённую вопросам безопасности и шифрования. Были приведены многочисленные примеры атак, включая power analysis, hardware security и passwоrd cracking. Были кратко представлены основы криптографии и работы систем типа AES и ECC (я сам читаю подобный курс в универе и мне было интересно посмотреть как это делают в промышленности). Касательно новых security чипов – было представлено 3: ATSHA204 (secure authemtication/validation device), ARAES132 (high security 32Kbit EEPROM для хранения паролей и/или биометрических данных, защищённое от вскрытия), и ATECC508A (high-speed PKI crypto engine) с примерами кода обращения к ним через API на С.

NXP: их презентация была посвящена программному продукту NXP Modular IoT Framework и Киту SLN-IOT-GPI из модулей, поддерживаемому ей. Кит включает около 10 разнообразных RF-сертифицированных модулей для работы с разнообразными протоколами, а также IoT Gateway с несколькими проводными и безпроводными интерфейсами, управляемый процессором ARM-CA7. Стоит система около $500, на вебсайте фирмы открыта регистрация для работы с ней и форум поддержки. Было продемонстрирована работа системы при управлении освещения через BLE и одновременно другого модуля, подключенного к Gateway через Thread. В общем, система скорее ориентирована на профессиональные разработки, нежели чем на любительские.

В беседе у киосков я узнал, что этой осенью у нас тут будет семинар Nordic по BLE-5 и опять семинар ST по IoT – напишу про них позже. Кстати, Nordic выпустила замечательную плату NRF6707 Power Profiler Kit для измерения потребляемого изделиями тока то 70мА с разрешением до 0.2мкА и частотой выборок 77 кгц с усреднением показаний до 20 сек. Я для этих целей сейчас использую Atmel Power Debugger в режиме измерения тока и их приложение для визуализации (см. пример в статье). Прелесть платы Nordic в том, что она может быть установлена на любую Arduino-совместимую по выводам отладочную плату, что исключает клубок проводов на столе. Уже заказал её – как освою дам знать.

Интересными мне показались относительно новые чипы памяти серий RM24/25C от Adesto. Они основаны на технологии CBRAM и отличаются мизерным токопотреблением и большой скоростью записи/считывания по сравнению с теxнологией FLASH. Для записи одного байта не требуется считывать всю страницу с этим байтом в RAM, изменять в ней байт и записывать страницу обратно. Каждый байт может быть записан непосредственно без этого цикла. Подобное поведение имеют также чипы памяти по технологии FRAM, но они раз в 5-10 более дорогие. Максимальный объём памяти CBRAM невелик – на настоящее время 512 Кбит. Максимальное число перезаписей байта такое-же как у FLASH – порядка 100К, что на несколько порядков ниже чем у FRAM. На снимке выше их стенд с демонстрацией числа обращений к этой памяти (счетчик слева) и стандартной FLASH (справа).

Многочисленные новые модули для безпроводки были представлены несколькими фирмами, в их числе Panasonic, Toshiba, и Murata. BLE модули от Toshiba дешевые, однако основаны на проприетарном процессоре фирмы – как их программировать ещё следует разбираться. Murata основывает свои модули на чипах сторонних производителей, например, NXP, Cypress, TI. В частности, очень меня заинтересовали их WiFi модули на основе CC3200 (TI модули не изготавливает, только сами чипы). В заключении отмечу замечательную еду на завтрак/обед/ужин и море разливанное выпивки в виде пива и вина вечером. И это всё при том, что само событие совершенно бесплатное для участников. Ниже несколько фоток с выставки и концерта (кликабельно). Также жду с нетерпением Дня Технологии ТИ, проводимого в нескольких городах (а ранее даже странах, не знаю как сейчас). Ниже их красивый анонс местного события.
СпойлерИзображение Изображение Изображение
СпойлерИзображение Изображение Изображение


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

Карма: 38
Рейтинг сообщений: 618
Зарегистрирован: Пн апр 06, 2015 11:01:53
Сообщений: 3092
Откуда: москва, уфа
Рейтинг сообщения: 0
наличие безразмерных ресурсов вредит мыслительному процессу

Да наличие компиляторов С вообще вредит мыслительному процессу. То ли дело ассемблер - там эдак просто не развернешься, там думать надо.
И вообще нефиг с ассемблером работать, игрушки это все, есть стандартная логика - на ней можно все что угодно сделать, всего-то расписать все состояния и переходы.
И к чертям стандартную логику, на транзисторах можно любой триггер нарисовать, вот это - путь настоящих джедаев.


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

Зарегистрирован: Пн янв 24, 2011 01:51:48
Сообщений: 197
Откуда: Украина, Киев
Рейтинг сообщения: 0
на транзисторах можно любой триггер нарисовать...
СТОПЭ! салага. настоящие профессионалы на электромагнитных реле все собирают


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

Карма: 55
Рейтинг сообщений: 415
Зарегистрирован: Чт мар 20, 2008 01:06:40
Сообщений: 2912
Откуда: Севастополь
Рейтинг сообщения: 0
.... с другой стороны, уж лучше ассемблер, по которому есть огромная база наработок, в т.ч. и вылизанных до байта ( напр., http://www.piclist.com/techref/microchip/routines.htm ), чем код на Си, который даже в исполнении профессионального разработчика (или я ошибаюсь ?) сразу же огреб пару-тройку оплеух от более продвинутых разрабов :).

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


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

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 1
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
abc писал(а):
чем код на Си
Си тут ни при чем.
лично я, как обычно, недоволен подходом "а чо, если ресурсов много - зачем думать? делаем самый тупой алгоритм, и он успеет отработать за нужное нам время, да еще и быстрее, чем на ####". что мы имеем в итоге?
в итоге мы имеем винду, которая спустя почти 20 лет существования наконец-то стала загружаться быстро
в итоге мы имеем текстовый редактор уровня notepad, но занимающий почти гигабайт в инсталляторе
в итоге мы имеем бухгалтерскую программу, которая сортирует список из 300 работников больше 4 минут...

понимаете? привычка надеяться на то, что производительность вытянет любую лабуду, губительна. в вышеупомянутом примере производятся умножения чисел, в которых младшие N разрядов обнулены, в итоге получается результат вдвое большей разрядности, в котором уже 2N младших разрядов обнулены... хотя козе понятно, что умножать на 0 - бессмысленно... более того, в полученном результате совершенно бесполезная точность, никому, абсолютно никому!!! не нужная. грубо говоря, результат измерения частоты 800023345.098784900388 Гц никому не требуется!!!! но раз есть ресурсы - почему бы не потратить их на вычисление не нужных знаков после запятой? а еще можно, наконец, вывести это в интернет, в облако, а еще вывести на дисплей 4К в 64-битном цвете...

понимаете, о чем я?

Добавлено after 3 minutes 3 seconds:
вспомнилось, что мне это все напоминает: нашу полицию/милицию. помните, как все начиналось? форма новая, а то эта старая - УГ... потом переименовали... сразу лучше стало, правда? так и здесь. новые МК - круто! у них теперь в 16 раз больше пуговиц на форме, и блестят они в 24 раза ярче...

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

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


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

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


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

Сейчас этот форум просматривают: dremuchij, K.Vladimir, ручнойтигр, Мухнун и гости: 37


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

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


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