STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
RoboC
Мудрый кот
Сообщения: 1795
Зарегистрирован: Ср апр 04, 2012 09:55:53
Откуда: Северодонецк
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение RoboC »

Держите.
У гугла надо спросить "stm32f103c8t6" , перейти на картинки и там все ясно будет.
Вложения
arduino-stm32f103c8t6-schematics.png
(214.08 КБ) 427 скачиваний
У того, кто делает — получается редко. У того, кто не делает — не получается никогда.
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

Re: STM32 новичку в ARM что к чему

Сообщение amv2000 »

[uquote="WatchCat",url="/forum/viewtopic.php?p=3309920#p3309920"]может кто-то видел уже срисованную схему этих плат?[/uquote]ИзображениеИскать отладочная плата на STM32F103C8T6
xVekx
Встал на лапы
Сообщения: 125
Зарегистрирован: Вс мар 01, 2009 20:41:19

Re: STM32 новичку в ARM что к чему

Сообщение xVekx »

Myp3ik. достаточно чтобы проработать 1-5 мин, да и выделяется от силы 5 байт.А может быть что, в основном цикле тоже есть выделение дин памяти, при прерывании просто адреса выделяемой памяти друг на друга накладываются?
Аватара пользователя
AndyBig
Грызет канифоль
Сообщения: 250
Зарегистрирован: Ср янв 17, 2018 13:09:14

Re: STM32 новичку в ARM что к чему

Сообщение AndyBig »

А что говорит стек вызовов?
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: STM32 новичку в ARM что к чему

Сообщение Myp3ik »

xVekx, можно попробовать вызовы выделения памяти обернуть как критическую секцию

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

__disable_irq();
uint8_t *txbuf = (uint8_t*)malloc(sizeof(uint8_t) * (2 + count));
__enable_irq();


А еще лучше, как Вы и поступили, просто выделить массив. Где это возможно, от динамического выделения памяти лучше отказаться, особенно там, где оно не нужно в принципе.
Иван Сусанин - первый полупроводник :solder:
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Re: STM32 новичку в ARM что к чему

Сообщение pokk »

Добрый день, подскажите, для какой цели здесь стоит пред делитель "RTC_DIV", вроде как для более точного измерения, но каким образом это происходит не понятно. Так же в даташите
http://www.st.com/content/ccc/resource/ ... to,-13,759
написано что он перезагружается из RTC_PRL, но я смотрю в отладки IAR, значение RTC_DIV скачет как хочешь и не капельки не совпадает с PRL.
Ну и ещё один вопрос, его можно считывать, но зачем?
Изображение
Вложения
RTC.png
(65.9 КБ) 265 скачиваний
Аватара пользователя
Adusik
Поставщик валерьянки для Кота
Сообщения: 2198
Зарегистрирован: Ср мар 14, 2007 01:50:10

Re: STM32 новичку в ARM что к чему

Сообщение Adusik »

STM32F105RBT6 LQFP64 port РA9 pin 42 - подскажите кто в теме, для чего на эту ногу подаётся постоянно 5В?
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: STM32 новичку в ARM что к чему

Сообщение Myp3ik »

USB OTG_FS_VBUS
Иван Сусанин - первый полупроводник :solder:
Gin87
Открыл глаза
Сообщения: 74
Зарегистрирован: Вс янв 24, 2010 21:29:07

Re: STM32 новичку в ARM что к чему

Сообщение Gin87 »

Ребята, помогите. Написал код мигания диода по кнопке, не работает. Использую CMSIS. Компилится без ошибок.

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

#include "stm32f10x.h"                  // Device header

int main(void)
{
   RCC->APB2ENR|=RCC_APB2ENR_IOPCEN; //включаем тактирование
   RCC->APB2ENR|=RCC_APB2ENR_IOPAEN; //включаем тактирование
   
   GPIOC->CRH    |=  (GPIO_CRH_MODE13_1);   // Выставляем бит MODE0. Режим MODE10 = Max Speed 2MHz
   GPIOC->CRH   &= ~(GPIO_CRH_CNF13);   // Сбрасываем биты CNF для бита 13. Режим 00 - Push-Pull
   
   GPIOA->CRL |=  GPIO_CRL_CNF0_1;
   GPIOA->CRL &= ~(GPIO_CRL_MODE0);
   
   
   GPIOA->ODR  &= ~GPIO_ODR_ODR0; //подтяжка к земле
   
   
   
   
   
   while(1)
   {
      
      
      if ((GPIOA->IDR & 0x01)==0x01) //Кнопка нажата? Соединение на плюс.
      {
         
         GPIOC->BSRR=GPIO_BSRR_BR13; //сбросили бит   
      }
       else
      {
         GPIOC->BSRR=GPIO_BSRR_BS13; //установили бит   
      }
      
   }
   



}

Аватара пользователя
baghear
Опытный кот
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

Re: STM32 новичку в ARM что к чему

Сообщение baghear »

Добрый день, подскажите пожалуйста как настроить porch для данного контроллера.
http://prntscr.com/iqv0td
Получается жестко задается только задний porch, а как выбрать длину синхроимпульса и передний?
DOTCLK 60MHz.
alair
Родился
Сообщения: 17
Зарегистрирован: Пт авг 19, 2016 10:56:59

Re: STM32 новичку в ARM что к чему

Сообщение alair »

Так вроде и не должно работать.
Замените GPIOC->BSRR=GPIO_BSRR_BR13; //сбросили бит
На GPIOC->BRR=GPIO_BSRR_BR13; //сбросили бит
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: STM32 новичку в ARM что к чему

Сообщение uldemir »

Подкиньте идею в каком направлении копать. Хочу к stm32F051 подключить цветовой сенсор TCS3200, который выдаёт частоту в зависимости от интенсивности света. Максимальная частота может быть 600кГц, 120кГц или 12кГц. Т.е. могу выбрать любую. Каким образом можно на этом кристале померять частоту? У меня уже заняты TIM3 и 15. А из свободных входов есть все 4 TIM1_CH1-4 и TIM1_ETR. Пока как самое простое нашел как измерять период через каналы захвата (называется PWM input в RM), но может есть еще какой способ? Смотрел режим slave trigger mode, но похоже это только запускает счет, но не останавливает.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: STM32 новичку в ARM что к чему

Сообщение Myp3ik »

Вам и нужен режим захвата PWM. По завершении захвата будет прерывание, в одном регистре будет период PWM, в другом - заполнение. А вообще там таймер можно настроить как угодно...
Иван Сусанин - первый полупроводник :solder:
Аватара пользователя
baghear
Опытный кот
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

Re: STM32 новичку в ARM что к чему

Сообщение baghear »

Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: STM32 новичку в ARM что к чему

Сообщение uldemir »

Спасибо за отзывы, но режим захвата мне не очень нужен - у него время измерения зависит от измеряемой частоты. Правда забыл написать, что минимальная частота может быть 2 Гц. В моей ситуации это не будет никогда (если только разом не перегорят все светодиоды, хотя может просто отвалиться их питание), но тем не менее.

Просто месяц назад решал аналогичную задачу для микрочипа - надо было мерять период секундных импульсов от RTC в тактовых импульсах контроллера и подгонять эту же частоту, чтобы уменьшить отклонение, чтобы UART нормально работал. И там был применен именно trigger gated mode - один фронт запускал счет, второй - останавливал. Еще и в режиме одиночного запуска: прочитал значение, сделал коррекцию, и запустил для измерения следующего периода. Но в STM32F051 этого режима не нашел, а самый похожий и был режим захвата PWM. Но здесь мне нужен всё же режим подсчета импульсов за интервал времени.

Мне уже прислали исходник в котором используется один таймер как мастер задающий счетный интервал, для слейва, который и считает импульсы за этот интервал. Причем, мастер в режиме одноразового срабатывания. Т.е. я ручками выставляю код цвета - измеряю, меняю код - снова измеряю итд. А врежиме захвата я уже начал настраиваться, чтобы захваченные значения через ПДП заносились в массив в котором я буду высчитывать средний период итп. И как удачно, что слейвом является TIM1. Правда, мастер - TIM3, который у меня уже занят другими делами, но я посмотрел, что могу использовать взамен TIM2, TIM15 или TIM17. Хм, почему эту инфу надо искать по двум даташитам? разве нельзя сразу указать там где есть таблица доступных таймеров с числом каналов захвата итп. инфой? А то трудно распланировать, когда нужно найти кто может запускать АЦП, кто ПДП, а при переходе на другой кристалл, оказывается что этого таймера нет, а "соседний" или не умеет этого делать или работает с каналом ПДП, который занят каким-то другим ресурсом.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: STM32 новичку в ARM что к чему

Сообщение oleg110592 »

[uquote="uldemir",url="/forum/viewtopic.php?p=3337575#p3337575"]режим захвата мне не очень нужен - у него время измерения зависит от измеряемой частоты[/uquote]
все равно ж нужен хоть один период для измерения - в STM32F0xx Snippet Examples есть пример - 03_InputCaptureOnTI1:
This example configures the TIM1 in order to compute the elapsed time between two rising edges occurring on its TI1 (channel 1).
Применял на практике - нужно было определять частоту 425Гц, использовал TIM14 - там как раз один канал захвата, работает четко.
Тут было еще на форуме про reciprocal frequency meter , пробовал практически на STM32F030F4P6 - тоже было в одной теме на форуме, но тему почистили.
Немного теории, правда AVR:
http://www.mshopf.de/proj/avr/freq_meter.html
на STM32F030F4P6, в случае reciprocal, задействовано было 2 таймера
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: STM32 новичку в ARM что к чему

Сообщение uldemir »

В данном случае я не делаю частотомер, а просто опрашиваю датчик цвета. Т.е. мне нужно просто оценить отношение частот на выходе. Так что имхо, наоборот, отсутствие импульсов мне явно сообщит, что для данного канала цвета - темно. И не надо будет ждать полсекунды. Т.е. если я интервал измерения сделаю по 1ms, то через 4 с небольшим, я уже буду знать цвет.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: STM32 новичку в ARM что к чему

Сообщение oleg110592 »

а в если использовать захват - то после двух положительных фронтов измеряемого сигнала
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: STM32 новичку в ARM что к чему

Сообщение Мурик »

uldemir писал(а):Правда забыл написать, что минимальная частота может быть 2 Гц.
Каким образом это мешает измерению частоты методом ШИМ захвата?
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: STM32 новичку в ARM что к чему

Сообщение Myp3ik »

Таймер будет переполняться. А 32 разрядного таймера нет... Вернее есть, но он занят.
Иван Сусанин - первый полупроводник :solder:
Ответить

Вернуться в «ARM»