Например TDA7294

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

Текущее время: Сб ноя 22, 2025 14:54:54

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


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



Начать новую тему Ответить на тему  [ Сообщений: 8919 ]     ... , , , 12, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн сен 17, 2012 19:16:48 
Поставщик валерьянки для Кота

Карма: 5
Рейтинг сообщений: 21
Зарегистрирован: Пт авг 29, 2008 16:28:19
Сообщений: 2108
Откуда: Киев
Рейтинг сообщения: 0
Сравнивать значения АЦП? :shock: Там же шум присутствует.

_________________
Giggity giggity goo!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн сен 17, 2012 19:52:15 
Вымогатель припоя

Карма: 4
Рейтинг сообщений: 15
Зарегистрирован: Вт июн 29, 2010 12:31:49
Сообщений: 670
Рейтинг сообщения: 0
Так они же одновременно снимаются, значит и шум одновременно попадает.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн сен 17, 2012 20:09:08 
Поставщик валерьянки для Кота

Карма: 5
Рейтинг сообщений: 21
Зарегистрирован: Пт авг 29, 2008 16:28:19
Сообщений: 2108
Откуда: Киев
Рейтинг сообщения: 0
Но ведь разные каналы АЦП? Я бы не был так уверен, что шум там идентичен.

_________________
Giggity giggity goo!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн сен 17, 2012 20:13:39 
Вымогатель припоя

Карма: 4
Рейтинг сообщений: 15
Зарегистрирован: Вт июн 29, 2010 12:31:49
Сообщений: 670
Рейтинг сообщения: 0
В STM32F4 три модуля АЦП, которые могут работать независимо или одновременно.
В примере используются 2 модуля.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн сен 17, 2012 20:16:44 
Модератор
Аватар пользователя

Карма: 68
Рейтинг сообщений: 424
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Сообщений: 13490
Откуда: Тамбовская обл.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
И что? У двух совершенно разных АЦП должны совпасть шумы? С чего это? Шумы АЦП имеются ввиду, а не сигнала.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн сен 17, 2012 20:22:54 
Вымогатель припоя

Карма: 4
Рейтинг сообщений: 15
Зарегистрирован: Вт июн 29, 2010 12:31:49
Сообщений: 670
Рейтинг сообщения: 0
Ой, а про них я и не подумал, каюсь.
Завтра же проверю, на сколько один от другого отстаёт. Именно разность в Watch поставлю.
Просто сами значения в дебагере отстоят друг от друга на достаточно большие значения. Не знаю, стоит ли ему верить.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн сен 17, 2012 20:43:18 
Поставщик валерьянки для Кота

Карма: 5
Рейтинг сообщений: 21
Зарегистрирован: Пт авг 29, 2008 16:28:19
Сообщений: 2108
Откуда: Киев
Рейтинг сообщения: 0
Где-то здесь уже говорили, что при большой скорости обновления значений в памяти, дебаггер жутко врёт.
Лучше снимите пару периодов в память, затем остановите DMA и смотрите через дебаггер снятые значения.

_________________
Giggity giggity goo!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вт сен 18, 2012 06:28:25 
Вымогатель припоя

Карма: 4
Рейтинг сообщений: 15
Зарегистрирован: Вт июн 29, 2010 12:31:49
Сообщений: 670
Рейтинг сообщения: 0
Разность показаний колеблется в пределах 0-2. Значит, всё нормально.
А вот сами показания в дебаггере так и различаются на 100-200.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вт сен 18, 2012 13:34:49 
Вымогатель припоя

Карма: 4
Рейтинг сообщений: 15
Зарегистрирован: Вт июн 29, 2010 12:31:49
Сообщений: 670
Рейтинг сообщения: 0
Подскажите, а как можно замутить MAC (Multiply-Accumulate) на той же F4? В CMSIS есть функции вроде arm_mult_f32, но они пробегают по массивам, а не складывают всё в одну переменную.
Т.е. есть A[i]=B[i]*C[i], а надо A+=B[i]*C[i]. Куда копать?

Спасибо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Ср сен 19, 2012 19:07:21 
Вымогатель припоя

Карма: 4
Рейтинг сообщений: 15
Зарегистрирован: Вт июн 29, 2010 12:31:49
Сообщений: 670
Рейтинг сообщения: 0
UPD: в кортексе M4 как таковом есть инструкции UMLAL, SMLAL, как раз для сложения с накоплением. Как бы заставить кейл их использовать? Или проще писать ассемблерную вставку?

UPD2: вроде разобрался. Нужно просто типы данных подобрать, компилятор додумается использовать одну инструкцию.

Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт сен 28, 2012 20:07:10 
Это не хвост, это антенна
Аватар пользователя

Карма: 6
Рейтинг сообщений: 68
Зарегистрирован: Вс апр 19, 2009 17:20:22
Сообщений: 1303
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик
Рейтинг сообщения: 0
Приобрел плату STM32 VL. Начал разбираться: помигал светодиодами, поопрашивал кнопки, запустил дисплей от NOKIA3310. В общем наигравшись решил перейти к более углубленному изучению. Первой строчкой попавшей в поле зрения оказалась

Код:
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;


После изучения различных примеров и описаний было установлено назначение данной строки, НО в этих самых предметах ни слова не было сказано почему надо тактировать выходы именно от APB2ENR. Дальнейшие поиски тоже ни к чему не привели. :cry: Вот мне и хотелось бы узнать назначение всех регистров RCC, а их там целых 10 штук:

Код:
  __IO uint32_t CR;
  __IO uint32_t CFGR;
  __IO uint32_t CIR;
  __IO uint32_t APB2RSTR;
  __IO uint32_t APB1RSTR;
  __IO uint32_t AHBENR;
  __IO uint32_t APB2ENR;
  __IO uint32_t APB1ENR;
  __IO uint32_t BDCR;
  __IO uint32_t CSR;


Заранее спасибо :)

_________________
Опыт растет прямо пропорционально выведенному из строя оборудованию...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт сен 28, 2012 20:40:53 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
Смотрите Figure 1 и Figure 2 даташита... и содержимое файла stm32f10x.h...
Код:
/******************  Bit definition for RCC_APB2ENR register  *****************/
#define  RCC_APB2ENR_AFIOEN                  ((uint32_t)0x00000001)         /*!< Alternate Function I/O clock enable */
#define  RCC_APB2ENR_IOPAEN                  ((uint32_t)0x00000004)         /*!< I/O port A clock enable */
#define  RCC_APB2ENR_IOPBEN                  ((uint32_t)0x00000008)         /*!< I/O port B clock enable */
#define  RCC_APB2ENR_IOPCEN                  ((uint32_t)0x00000010)         /*!< I/O port C clock enable */
#define  RCC_APB2ENR_IOPDEN                  ((uint32_t)0x00000020)         /*!< I/O port D clock enable */
#define  RCC_APB2ENR_ADC1EN                  ((uint32_t)0x00000200)         /*!< ADC 1 interface clock enable */

#if !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD_VL)
#define  RCC_APB2ENR_ADC2EN                  ((uint32_t)0x00000400)         /*!< ADC 2 interface clock enable */
#endif

#define  RCC_APB2ENR_TIM1EN                  ((uint32_t)0x00000800)         /*!< TIM1 Timer clock enable */
#define  RCC_APB2ENR_SPI1EN                  ((uint32_t)0x00001000)         /*!< SPI 1 clock enable */
#define  RCC_APB2ENR_USART1EN                ((uint32_t)0x00004000)         /*!< USART1 clock enable */

#if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL)
#define  RCC_APB2ENR_TIM15EN                 ((uint32_t)0x00010000)         /*!< TIM15 Timer clock enable */
#define  RCC_APB2ENR_TIM16EN                 ((uint32_t)0x00020000)         /*!< TIM16 Timer clock enable */
#define  RCC_APB2ENR_TIM17EN                 ((uint32_t)0x00040000)         /*!< TIM17 Timer clock enable */
#endif

#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL)
 #define  RCC_APB2ENR_IOPEEN                 ((uint32_t)0x00000040)         /*!< I/O port E clock enable */
#endif /* STM32F10X_LD && STM32F10X_LD_VL */

#if defined (STM32F10X_HD) || defined (STM32F10X_XL)
 #define  RCC_APB2ENR_IOPFEN                 ((uint32_t)0x00000080)         /*!< I/O port F clock enable */
 #define  RCC_APB2ENR_IOPGEN                 ((uint32_t)0x00000100)         /*!< I/O port G clock enable */
 #define  RCC_APB2ENR_TIM8EN                 ((uint32_t)0x00002000)         /*!< TIM8 Timer clock enable */
 #define  RCC_APB2ENR_ADC3EN                 ((uint32_t)0x00008000)         /*!< DMA1 clock enable */
#endif

#if defined (STM32F10X_HD_VL)
 #define  RCC_APB2ENR_IOPFEN                 ((uint32_t)0x00000080)         /*!< I/O port F clock enable */
 #define  RCC_APB2ENR_IOPGEN                 ((uint32_t)0x00000100)         /*!< I/O port G clock enable */
#endif

#ifdef STM32F10X_XL
 #define  RCC_APB2ENR_TIM9EN                 ((uint32_t)0x00080000)         /*!< TIM9 Timer clock enable  */
 #define  RCC_APB2ENR_TIM10EN                ((uint32_t)0x00100000)         /*!< TIM10 Timer clock enable  */
 #define  RCC_APB2ENR_TIM11EN                ((uint32_t)0x00200000)         /*!< TIM11 Timer clock enable */
#endif


_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пт сен 28, 2012 21:36:35 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 8
Зарегистрирован: Вт июн 03, 2008 01:39:47
Сообщений: 141
Рейтинг сообщения: 3
КАШАК писал(а):
Приобрел плату STM32 VL. Начал разбираться: помигал светодиодами, поопрашивал кнопки, запустил дисплей от NOKIA3310. В общем наигравшись решил перейти к более углубленному изучению. Первой строчкой попавшей в поле зрения оказалась

Код:
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;


После изучения различных примеров и описаний было установлено назначение данной строки, НО в этих самых предметах ни слова не было сказано почему надо тактировать выходы именно от APB2ENR. Дальнейшие поиски тоже ни к чему не привели. :cry: Вот мне и хотелось бы узнать назначение всех регистров RCC, а их там целых 10 штук:
...

В Reference Manual написано какая периферия к какой шине тактирования подключена. Вы посмотрите бегло этот документ и поймете. Регистры RCC преимущественно для настройки частот тактирования разных шин и выбор источника тактирования для МК (внутренний или внешний кварц).
КАШАК писал(а):
почему надо тактировать выходы именно от APB2ENR.
...

Потому что IOPBEN намертво прикреплен к шине APB2, и тактировать его можно только от нее. Вы не сможете затактировать этот модуль от другой шины, короче.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вс сен 30, 2012 13:36:09 
Это не хвост, это антенна
Аватар пользователя

Карма: 6
Рейтинг сообщений: 68
Зарегистрирован: Вс апр 19, 2009 17:20:22
Сообщений: 1303
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик
Рейтинг сообщения: 0
Спасибо :))

_________________
Опыт растет прямо пропорционально выведенному из строя оборудованию...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вс сен 30, 2012 13:49:04 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 8
Зарегистрирован: Вт июн 03, 2008 01:39:47
Сообщений: 141
Рейтинг сообщения: 0
КАШАК писал(а):
Спасибо :))

Ставьте плюсик к сообщению, чтобы не засорять тему сообщениями благодарностей :music:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вс сен 30, 2012 21:16:10 
Это не хвост, это антенна
Аватар пользователя

Карма: 6
Рейтинг сообщений: 68
Зарегистрирован: Вс апр 19, 2009 17:20:22
Сообщений: 1303
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик
Рейтинг сообщения: 0
Пытаюсь разобраться с таймерами STM32 VL. Вроде все просто, но при этом ничего не работает :)))

Итак, я пишу:

Код:
#include "src/stm32f10x.h"

#define LED_ON  GPIOB->BSRR = 0x00000100
#define LED_OFF GPIOB->BSRR = 0x01000000

void TIM6_DAC_IRQHandler(void)
{
 //убедиться, что причина прерывания - событие от TIM6
 if(TIM6->SR & TIM_SR_UIF)
 {
   TIM6->SR &= ~TIM_SR_UIF;     //сбросить флаг
   LED_ON;
 }
}

int main(){

   RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;

   GPIOB->CRH &=~ ( GPIO_CRH_CNF8 | GPIO_CRH_MODE8);
   GPIOB->CRH |= ( GPIO_CRH_MODE8_1);

   //настройка таймера TIM6
   RCC->APB1ENR |= RCC_APB1ENR_TIM6EN;     //подаем тактирование на TIM6
   TIM6->PSC = 24000-1;                    //настроить делитель для формирования миллисекунд
   TIM6->ARR = 500;                        //500 миллисекунд
   TIM6->DIER = TIM_DIER_UIE;              //разрешить событие от таймера
   TIM6->CR1 = TIM_CR1_CEN | TIM_CR1_ARPE; //разрешить перезагрузку и включить таймер
   NVIC_EnableIRQ (TIM6_DAC_IRQn);         //разрешить прерывания от таймера

   __enable_irq();                    //разрешить "глобальные" прерывания

   while(1){

   }

   return 0;
}


Вот этот самый код и не работает, прерывания не срабатывают, светодиод не светится. Что я делаю не так?

P.S.
Код пишу в Eclipse.

_________________
Опыт растет прямо пропорционально выведенному из строя оборудованию...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вс сен 30, 2012 21:31:16 
Друг Кота
Аватар пользователя

Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Сообщений: 7439
Откуда: г. Москва
Рейтинг сообщения: 0
В таблицу прерываний то TIM6_DAC_IRQHandler попадает ? :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Вс сен 30, 2012 21:32:18 
Это не хвост, это антенна
Аватар пользователя

Карма: 6
Рейтинг сообщений: 68
Зарегистрирован: Вс апр 19, 2009 17:20:22
Сообщений: 1303
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик
Рейтинг сообщения: 0
А как это проверить? Пример брал из инета...

Ха. Если этот код скомпилировать в CooCox, то все работает. Вопрос, что за Х...???

_________________
Опыт растет прямо пропорционально выведенному из строя оборудованию...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн окт 01, 2012 09:32:26 
Поставщик валерьянки для Кота

Карма: 16
Рейтинг сообщений: 329
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Сообщений: 2222
Откуда: Tashkent
Рейтинг сообщения: 0
Сравнить название обработчика с тем что прописано в стартапе. У меня бывало тоже не работали примеры скопипастенные с разных мест из за различий в названиях функций.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 новичку в ARM что к чему
СообщениеДобавлено: Пн окт 01, 2012 09:44:19 
Друг Кота
Аватар пользователя

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


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20


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

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


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