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

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

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

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

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

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


 
Опции темы

SOFTPWM stm32f030f4

Непрочитано 21.08.2016, 10:49  
NewWriter
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: SOFTPWM stm32f030f4

Регистр флагов состояния SR позволяет читать биты или записывать в них "0", сбрасывая бит. Запись "1" ничего не дает, потому как биты в регистре помечены как w0, то есть, только запись "0".
То есть, аналогично регистрам BSRR, BRR, только наоборот
Реклама:
NewWriter вне форума  
Сказали "Спасибо" NewWriter
МВА (21.08.2016)
Непрочитано 21.08.2016, 11:06  
AR_Favorit
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.03.2010
Сообщений: 2,896
Сказал спасибо: 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
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: SOFTPWM stm32f030f4

Жаль конечно, что в F030 нет группы инжектированных каналов с раздельным регистрами результатов для разных каналов.
NewWriter вне форума  
Непрочитано 21.08.2016, 12:01  
МВА
Гражданин KAZUS.RUN
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 841
Сказал спасибо: 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
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: SOFTPWM stm32f030f4

Первая страница этой темы, сообщение #9 - рабочий код. RCC_CFGR_PLLMUL16 определяет умножитель.
А какая связь обрывается? С СТ-Линком?
...блин, циферки... опять копать распределение битов в регистре, чтобы понять что в коде написано.
NewWriter вне форума  
Непрочитано 21.08.2016, 12:17  
МВА
Гражданин KAZUS.RUN
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 841
Сказал спасибо: 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.RUN
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 841
Сказал спасибо: 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
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
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, время: 21:01.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.