Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 06.09.2011, 17:13  
<smbd>
Частый гость
 
Регистрация: 20.03.2010
Сообщений: 27
Сказал спасибо: 10
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
<smbd> на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от zheleznjakov Посмотреть сообщение
Я задал вам вопрос и хотел узнать почему вы не пошли по этому пути?
Без всяких претензий к вам. Когда у меня есть время и возможность я стараюсь всегда помочь. Да и проще помочь с один простым вопросом, чем с большой задачей. Я сам самоучка и то же много чего не понимаю.
Тогда прошу прощения. А библиотеками мне не нравится пользоваться, ибо когда от референса пишешь , то потом понятнее ( обычно) где искать возникшую проблему.
Реклама:
<smbd> вне форума  
Непрочитано 06.09.2011, 17:26  
zheleznjakov
Прописка
 
Аватар для zheleznjakov
 
Регистрация: 31.03.2010
Сообщений: 200
Сказал спасибо: 3
Сказали Спасибо 48 раз(а) в 41 сообщении(ях)
zheleznjakov на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Тогда нужно частями запускать систему.
Если я правильно понял, вам нужно оцифровать данные с двух каналов и забирать через ПДП, при синхронизации от таймера.
Я бы пошел по такому пути.
1) Настроить таймер с малой частотой например 1 Гц, для удобства вывода в ПК по УАРТ или на ЖКИ, не обратил внимание как вы дебажите. Настроить прерывания от таймера и в прерывании дергать ножкой мк (можно сразу контролировать период (частоту)).
2) Настроить АЦП с запуском от таймера. настроить прерывания по окончанию преобразования, при этом в обработчике можно дергать другой ножкой. позволит проверить правильность работы АЦП от таймера.
3) настроить ПДП для работы с АЦП с небольшим буфером, настроить прерывания и опять таки дергать ножкой (при половине и при полном буфере) что так же позволит проверить корректность работы.
Как то так...
Я все пытался выделить время и написать о различных режимах работы АЦП, но чет последнее время работа и учеба на вечерке занимает меня полностью
__________________
ziblog.ru

Последний раз редактировалось zheleznjakov; 06.09.2011 в 17:30.
zheleznjakov вне форума  
Непрочитано 06.09.2011, 17:39  
<smbd>
Частый гость
 
Регистрация: 20.03.2010
Сообщений: 27
Сказал спасибо: 10
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
<smbd> на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от zheleznjakov Посмотреть сообщение
Тогда нужно частями запускать систему.
Если я правильно понял, вам нужно оцифровать данные с двух каналов и забирать через ПДП, при синхронизации от таймера.
Я бы пошел по такому пути.
1) Настроить таймер с малой частотой например 1 Гц, для удобства вывода в ПК по УАРТ или на ЖКИ, не обратил внимание как вы дебажите. Настроить прерывания от таймера и в прерывании дергать ножкой мк (можно сразу контролировать период (частоту)).
2) Настроить АЦП с запуском от таймера. настроить прерывания по окончанию преобразования, при этом в обработчике можно дергать другой ножкой. позволит проверить правильность работы АЦП от таймера.
3) настроить ПДП для работы с АЦП с небольшим буфером, настроить прерывания и опять таки дергать ножкой (при половине и при полном буфере) что так же позволит проверить корректность работы.
Как то так...
Я все пытался выделить время и написать о различных режимах работы АЦП, но чет последнее время работа и учеба на вечерке занимает меня полностью
Ну я примерно так и делал.
Сделал АЦП от ТРГО таймера с прерыванием по окончанию преобразования. А вот дальше надо два канала , поэтому ДМА и вот тут где-то грабли.
<smbd> вне форума  
Непрочитано 07.09.2011, 08:34  
uk8amk
Вид на жительство
 
Регистрация: 05.07.2006
Адрес: Tashkent
Сообщений: 454
Сказал спасибо: 24
Сказали Спасибо 67 раз(а) в 44 сообщении(ях)
uk8amk на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Полный перевод главы 12 про TIM1 из RM0041.

ЗЫ. я не профессиональный переводчик поэтому есть моменты где "русский речь меня покинул".
Вложения:
Тип файла: pdf RM0041_12.pdf (556.0 Кб, 2202 просмотров)
uk8amk вне форума  
Эти 8 пользователя(ей) сказали Спасибо uk8amk за это сообщение:
-jonns- (07.09.2011), andries5 (07.09.2011), avs2009 (08.09.2011), Bagaj (09.09.2011), john1170 (08.09.2011), kittec (08.09.2011), kozeka (27.03.2012), zerion (29.08.2012)
Непрочитано 07.09.2011, 08:34  
serb-radio
Гражданин KAZUS.RU
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Доброго времени суток! Уважаемые знатоки! Решил тут осваивать stm32, конфигурячу ФАПЧ, но частоту получается выставлять только до 48 МГц, больше выставляю не работает основная прога (пином дрыгаю) прц STM32F103VCT6, код:
RCC-›CR|= RCC_CR_HSEON; // External High Speed clock enable
while((RCC-›CR&RCC_CR_HSERDY)!=0) // External High Speed clock ready flag

RCC-›CFGR&=~RCC_CFGR_SW;
RCC-›CFGR|=RCC_CFGR_SW_HSE;

RCC-›CFGR&= ~(RCC_CFGR_PLLSRC|RCC_CFGR_PLLXTPRE|RCC_CFGR_PLLMU LL);

RCC-›CFGR|= RCC_CFGR_PLLSRC_HSE; // тактировать от внешнего кварца
RCC-›CFGR|= RCC_CFGR_PLLMULL7;

RCC-›CR|= RCC_CR_PLLON; // запуск PLL
while(!(RCC-›CR&RCC_CR_PLLRDY)){}

RCC-›CFGR&= ~RCC_CFGR_SW;
RCC-›CFGR|= RCC_CFGR_SW_PLL; // тактирование с выхода PLL
while((RCC-›CFGR&RCC_CFGR_SWS)!=0x0 {}


FLASH-›ACR|= FLASH_ACR_PRFTBE;
//FLASH-›ACR&=~FLASH_ACR_LATENCY;
FLASH-›ACR|= FLASH_ACR_LATENCY_1;


RCC-›APB2ENR |= RCC_APB2ENR_IOPEEN; // Разрешить тактирование PORTC.
GPIOE-›CRH |= GPIO_CRH_MODE15_0; // Вывод светодиода LED4 PC8 на выход.
GPIOE-›CRH |= GPIO_CRH_MODE15_1; // Вывод светодиода LED4 PC8 на выход.
GPIOE-›CRH &=~GPIO_CRH_CNF15; // Двухтактный выход на PC8.



while(1)
{


GPIOE-›BSRR|= GPIO_BSRR_BR15;
pause(100);
GPIOE-›BSRR|= GPIO_BSRR_BS15;
pause(100);

}
Подскажите, где у меня ошибка
Заранее благодарен откликнувшимся
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
Непрочитано 07.09.2011, 09:42  
аtаs_stas
Заблокирован
 
Регистрация: 23.08.2010
Сообщений: 541
Сказал спасибо: 20
Сказали Спасибо 93 раз(а) в 78 сообщении(ях)
аtаs_stas на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от serb-radio Посмотреть сообщение
FLASH-›ACR|= FLASH_ACR_LATENCY_1;
Читайте даташит.


RCC-›CFGR|= RCC_CFGR_PLLMULL9;

FLASH-›ACR|= FLASH_ACR_LATENCY_2; // !!!!!!!!!!!!!!!!!!!!!!!!!!

Последний раз редактировалось аtаs_stas; 07.09.2011 в 09:45.
аtаs_stas вне форума  
Непрочитано 07.09.2011, 10:46  
serb-radio
Гражданин KAZUS.RU
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от аtаs_stas Посмотреть сообщение
Читайте даташит.


RCC-›CFGR|= RCC_CFGR_PLLMULL9;

FLASH-›ACR|= FLASH_ACR_LATENCY_2; // !!!!!!!!!!!!!!!!!!!!!!!!!!
уже так делал - не в этом ошибка
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
Непрочитано 07.09.2011, 13:06  
аtаs_stas
Заблокирован
 
Регистрация: 23.08.2010
Сообщений: 541
Сказал спасибо: 20
Сказали Спасибо 93 раз(а) в 78 сообщении(ях)
аtаs_stas на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

А потому, что у вас всё наизнанку.
Сначала настройка флэша, потом настройка PLL, ожидание запуска PLL, переключение тактирования, ожидание переключения, "вперёд к звёздам". Гляньте внутренности system_stm32f10x.c , там это всё расписано.
аtаs_stas вне форума  
Сказали "Спасибо" аtаs_stas
serb-radio (07.09.2011)
Непрочитано 07.09.2011, 21:24  
Oleg Galizin
Частый гость
 
Регистрация: 25.03.2010
Адрес: Voronezh
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
Oleg Galizin на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от ‹smbd› Посмотреть сообщение
Ну я примерно так и делал.
Сделал АЦП от ТРГО таймера с прерыванием по окончанию преобразования. А вот дальше надо два канала , поэтому ДМА и вот тут где-то грабли.
Вот пример на 2 канала в обычной группе + 1 канал в инжектированной группе. Запуск по TIM1. В инжектированной группе аналоговый ватчдог.
Нужно следить, что бы время преобразований было меньше периода запуска.
Код:
  ADC1-›CR1 |= 
                ADC_CR1_JAWDEN|ADC_CR1_AWDIE| /* AWD on injected channels whith interrupt */
                ADC_CR1_JAUTO|ADC_CR1_SCAN; /* Scan mode + auto injection */
  ADC1-›SMPR2 = ADC_SMPR2_SMP7_0|ADC_SMPR2_SMP8_0|ADC_SMPR2_SMP9_0  ; /* 7.5 sampling time, 20 - adc time, 5,6,7 ch */
  ADC1-›SQR1 =  ADC_SQR1_L_0; /* 2 conversion */
  ADC1-›SQR3 =  ADC_SQR3_SQ1_3| /* 8 channel - voltage*/
                ADC_SQR3_SQ2_3|ADC_SQR3_SQ2_0; /* 9- channel - current */
  ADC1-›JSQR = ADC_JSQR_JSQ4_2|ADC_JSQR_JSQ4_1|ADC_JSQR_JSQ4_0; /* 1 conversion by 7-th channel in inj */
  ADC1-›CR2 |= ADC_CR2_EXTTRIG|ADC_CR2_DMA; /* External trigger by T1 CC1, DMA */

  GPIOA-›CRL &= ~(GPIO_CRL_MODE4_1|GPIO_CRL_MODE5_1|GPIO_CRL_MODE7  _1); /* Analog IN */
  GPIOB-›CRL &= ~(GPIO_CRL_MODE0_1|GPIO_CRL_MODE1_1); /* Analog IN */


  /* TIM1 is configyred to trigger the ADC */
  TIM1-›ARR = 194; /* 2MHz / 200 = 10KHz */
  TIM1-›CCMR1 |= TIM_CCMR1_OC1M; /* PWM 2 mode */
  TIM1-›CCR1 = 99;
  TIM1-›BDTR |= TIM_BDTR_MOE; /* Only for TIM1 - MAIN OUTPUT ENABLE!!! */
  TIM1-›CCER |= TIM_CCER_CC1E; /* Output enable */
  
  /* DMA configuring */
  DMA1_Channel1-›CCR |= DMA_CCR1_PL|DMA_CCR1_MSIZE_0|DMA_CCR1_PSIZE_0| /*Hight pry, 16 byte mem, 16 byte pereph */
          DMA_CCR1_MINC|DMA_CCR1_CIRC|DMA_CCR1_HTIE|DMA_CCR1  _TCIE; /*  mem inc, circular, enterrupts by Half and End of conv */
  DMA1_Channel1-›CNDTR = ADC_ARRAY_SIZE;
  DMA1_Channel1-›CPAR = (uint32_t)&ADC1-›DR;
  DMA1_Channel1-›CMAR = (uint32_t)&AdcOutArray[0];

  /* On converting */
  ADC1-›CR2 |= ADC_CR2_ADON; /* Adc ON */
  /* Additional delay to Vref on */
  Delay(10000);

  /* Calibration */
  ADC1-›CR2 |= ADC_CR2_RSTCAL;
  while ( ADC1-›CR2 & ADC_CR2_RSTCAL )
    ; /* BLANK */
  ADC1-›CR2 |= ADC_CR2_CAL;
  while ( ADC1-›CR2 & ADC_CR2_CAL )
    ; /* BLANK */

  Delay(10000);
  DMA1_Channel1-›CCR |= DMA_CCR1_EN; /* Enable DMA */
  TIM1-›CR1 |= TIM_CR1_CEN;    /* start TIM1 */
Потом нужно определить обработчик прерывания DMA (!! не ADC). Обработчик прерывания вызывается дважды во время одного периода заполнения буфера. Один раз по заполнению половины буфера (обработка первой половины данных буфера) второй по заполнению всего буфера (обработка второй половины буфера). Таким образом можно организовать непрерывную обработку данных. Нужно проверять и очищать соотв. флаги в прерывании. Полный код - на радиокоте в статье про stm32f100c4 в лабораторном источнике.
Oleg Galizin вне форума  
Сказали "Спасибо" Oleg Galizin
kozeka (27.03.2012)
Непрочитано 08.09.2011, 14:14  
kittec
Гражданин KAZUS.RU
 
Регистрация: 14.11.2008
Сообщений: 701
Сказал спасибо: 298
Сказали Спасибо 283 раз(а) в 193 сообщении(ях)
kittec на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

На одном из форумов выложили интересный, как мне кажется, перевод для STM32.
STM_DOC_RU.pdf.zip

Последний раз редактировалось kittec; 08.09.2011 в 14:20.
kittec вне форума  
Эти 4 пользователя(ей) сказали Спасибо kittec за это сообщение:
artyomugr (29.08.2014), avs2009 (08.09.2011), Bagaj (09.09.2011), kozeka (27.03.2012)
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школа АRMрестлинга Uragan90 Микроконтроллеры, АЦП, память и т.д 54 22.08.2011 16:13
ARM Cortex M3 + Linux SiMiLya Микроконтроллеры, АЦП, память и т.д 10 17.06.2011 17:20
Помогите с STM32 - очень нужно... yakuzaa Микроконтроллеры, АЦП, память и т.д 60 04.08.2010 11:04
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


Часовой пояс GMT +4, время: 02:57.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot