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

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

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

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

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

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


 
Опции темы
Непрочитано 21.08.2016, 10:49  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: SOFTPWM stm32f030f4

Регистр флагов состояния SR позволяет читать биты или записывать в них "0", сбрасывая бит. Запись "1" ничего не дает, потому как биты в регистре помечены как w0, то есть, только запись "0".
То есть, аналогично регистрам BSRR, BRR, только наоборот
Реклама:
NewWriter вне форума  
Сказали "Спасибо" NewWriter
МВА (21.08.2016)
Непрочитано 21.08.2016, 11:06  
AR_Favorit
Почётный гражданин KAZUS.RU
 
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: SOFTPWM stm32f030f4

Сообщение от miwutka Посмотреть сообщение
AR_Favorit, Как же мне тогда правильно считывать значение с двух каналов при последовательном сканировании?...
Да примерно как в вашем посте #15, только
1) выкинуть проверку ADC_IT_EOSEQ
2) не разрешать прерывание по флагу EOS
3) поместить очистку бита EOC не перед, а после получения текущего результата преобрарования
4) разрешить прерывание по overrun, поставить его обработчик и в случае попадания программы в этот обработчик останавливать сканирование и запускать его сначала (и знать при этом, что где-то косяк - программа не успевает забрать результат преобразования)

Но вообще я никогда не делал на прерываниях, всегда использовал ДМА, если надо более одного канала. Так гораздо удобнее.
AR_Favorit вне форума  
Непрочитано 21.08.2016, 11:11  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: SOFTPWM stm32f030f4

Жаль конечно, что в F030 нет группы инжектированных каналов с раздельным регистрами результатов для разных каналов.
NewWriter вне форума  
Непрочитано 21.08.2016, 12:01  
МВА
Гражданин KAZUS.RU
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
МВА на пути к лучшему
По умолчанию Re: SOFTPWM stm32f030f4

Мужики, не подскажите почему у меня на stm32f030C8 от HSI не работает PLL при умножении больше 2. Короче говоря, частоту больше 8 Мгц. получить не могу. Думал, что это я какую-то лажу пишу, но пытаюсь сгенерить проект в Кубе - эффект аналогичный. Вот мой код
PHP код:
    RCC-›CR &= ~(1‹‹24);
    while(
RCC-›CR&1‹‹25);
    
RCC-›CFGR &= ~(0x0F‹‹18);    //PLL=2
//RCC-›CFGR 1= 1‹‹18;                //PLL=3
    
RCC-›CR |= 1‹‹24;            //(after this string - no connect if PLL›2)
    
while(!(RCC-›CR&1‹‹25)); 
Если устанавливаю множитель больше двух у меня обрывается связь.
МВА вне форума  
Непрочитано 21.08.2016, 12:12  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: SOFTPWM stm32f030f4

Первая страница этой темы, сообщение #9 - рабочий код. RCC_CFGR_PLLMUL16 определяет умножитель.
А какая связь обрывается? С СТ-Линком?
...блин, циферки... опять копать распределение битов в регистре, чтобы понять что в коде написано.
NewWriter вне форума  
Непрочитано 21.08.2016, 12:17  
МВА
Гражданин KAZUS.RU
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
МВА на пути к лучшему
По умолчанию Re: SOFTPWM stm32f030f4

Сообщение от NewWriter Посмотреть сообщение
А какая связь обрывается? С СТ-Линком?
Ну, у меня ST-Linck 2 miny. А работаю из Keil.
Цитата:
...блин, циферки... опять копать распределение битов в регистре, чтобы понять что в коде написано.
Я пока не выучил что там в дефайнах, просто мне быстрее открыть регистры в даташите, чем отыскать в этих портянках определения (особенно когда даже приблизительно не знаешь какие искать).

Посидел, полистал портянку хидера. Получилось вот-что.
PHP код:
RCC-›CR &= ~(RCC_CR_PLLON);    
    while(
RCC-›CR&RCC_CR_PLLRDY);
//    RCC-›CFGR |= RCC_CFGR_PLLMUL2;    //PLL=2
    
RCC-›CFGR |= RCC_CFGR_PLLMUL3;                //PLL=3
    
RCC-›CR |= RCC_CR_PLLON;            //(after this string - no connect if PLL›2)
    
while(!(RCC-›CR&RCC_CR_PLLRDY)); 
Эффект тот-же. Правда, может не связь теряется, а ругается, что нет доступа к цели.
При RCC_CFGR_PLLMUL2 такого нет, все работает нормально.
Миниатюры:
Нажмите на изображение для увеличения
Название: Рисунок1.jpg
Просмотров: 0
Размер:	7.4 Кб
ID:	99721  

Последний раз редактировалось МВА; 21.08.2016 в 13:08.
МВА вне форума  
Непрочитано 21.08.2016, 14:56  
МВА
Гражданин KAZUS.RU
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
МВА на пути к лучшему
По умолчанию Re: SOFTPWM stm32f030f4

Попробовал два варианта программы залить через ST-LINK Utility. При PLL›2 МК тупо не хочет работать, я в главный цикл забросил простую мигалку. Может от HSI больше 8 Мгц не получается? Я уже и не знаю, в каком направлении думать.
МВА вне форума  
Непрочитано 21.08.2016, 15:33  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: SOFTPWM stm32f030f4

А другие не знают, как у вас не работает то, что у других всегда работает.
Ноги питания все подключены? Ёмкостя на ногах питания присутствуют? Бут правильно подтянут?
STM32F0 вне форума  
Непрочитано 21.08.2016, 15:40  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: SOFTPWM stm32f030f4

Сообщение от МВА Посмотреть сообщение
Может от HSI больше 8 Мгц не получается?
Да нет, почему же.
Я на первой странице же выложил код, самолично протестированный с оверклоком на частоте аж до 64 МГц, с источником PLL именно от HSI, умножитель до 16.
Когда берется от HSI, тогда частота HSI предварительно делится на 2, а потом умножается на значение умножителя.

И перед выключением PLL нужно битами SW регистра CFGR переключить источник системной частоты с PLL на HSI или HSE.
Код намертво зависает в строчке
while(RCC-›CR&RCC_CR_PLLRDY);
потому что перенастройка и выключение PLL блокированы до тех пор, пока PLL является источником системной частоты МК. А выхода из while не предусмотрено
Первоначальная настройка системной частоты производится в файле system_stm32f0xx.c. Он запускается раньше функции main(), поэтому при отладке не виден, первая остановка идет на входе в main()
NewWriter вне форума  
Непрочитано 21.08.2016, 15:49  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: SOFTPWM stm32f030f4

Сообщение от NewWriter Посмотреть сообщение
Я на первой странице же выложил код, самолично протестированный с оверклоком на частоте аж до 64 МГц, с источником PLL именно от HSI, умножитель до 16.
И как же никто раньше до этого не додумался?
Сообщение от NewWriter Посмотреть сообщение
Когда берется от HSI, тогда частота HSI предварительно делится на 2, а потом умножается на значение умножителя.
В референсе всё есть.
Сообщение от NewWriter Посмотреть сообщение
И перед выключением PLL нужно битами SW регистра CFGR переключить источник системной частоты с PLL на HSI или HSE.
Код намертво зависает в строчке
while(RCC-›CR&RCC_CR_PLLRDY);
потому что перенастройка и выключение PLL блокированы до тех пор, пока PLL является источником системной частоты МК. А выхода из while не предусмотрено
И кто виноват?
Сообщение от NewWriter Посмотреть сообщение
Первоначальная настройка системной частоты производится в файле system_stm32f0xx.c. Он запускается раньше функции main(), поэтому при отладке не виден, первая остановка идет на входе в main()
Ну и что? Сброс в отладке закидывает в стартовый файл, где сначала можно пошагать по системному файлу перед попаданием в майн. Один проводок на РЕСЕТ пожалели, ну и кто же снова виноват?
STM32F0 вне форума  
 

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

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

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

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


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


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