Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 20.11.2020, 12:04   #1
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 49
Сообщений: 1,865
Вес репутации: 2279/87
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Проблема с FSCM

Добрый день!
PIC18F26K22. Возникла непонятная проблема с работой FSCM.
В настройках конфигурации - кварц 16 МГц х 4PLL, т.е. работаем на максимуме 64 МГц. При сбое кварца переходим на внутренний генератор на те же 64МГц, но не выходит.
Суть проблемы - на внутренний генератор переходит, но частота 16 МГц. При изменении битов конфигурации МК на внутренний генератор - запускается и работает от внутреннего генератора на 64МГц.
TMR2 настроен на период 4мс при 64МГц. Смотрю осциллографом период на RA0. При срабатывании FSCM период в 4 раза больше.
Почему? Что упустил?
Код:
//#pragma config FOSC = INTIO67   // Oscillator Selection bits (Internal oscillator block)
#pragma config FOSC = HSMP
#pragma config PLLCFG = ON      // 4X PLL Enable (Oscillator multiplied by 4)
#pragma config PRICLKEN = ON    // Primary clock enable bit (Primary clock is always enabled)
#pragma config FCMEN = ON      // Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor disabled)
#pragma config IESO = ON       // Internal/External Oscillator Switchover bit (Oscillator Switchover mode disabled)
 ..............................
#include <xc.h>

void interrupt isr(void){
 
    if(TMR2IE && TMR2IF){
         TMR2IF = 0; 
         LATA0 = 1 - LATA0;
     }
} 
 
void main(){
 
  ANSELA = 0;
  TRISA = 0x00;
  PORTA = 0xFF;
  
  // настройки внутреннего генератора
  OSCCON  |= 0x70;       //  INTOSC = 16 MHz
  OSCTUNE |= 0x40; 
   
 //**************** настройки TMR2 ***********************
 PR2 = 250;
 T2CON = 0x7E; // PRE = 1:16, POST = 1:16, TMR2 = ON. Period 4 ms (@64 MHz)
 TMR2IE = 1;
 PEIE = 1;
 ei();
 
 for(;;){
      
 }
}
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 20.11.2020, 12:21   #2
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,547
Вес репутации: 4677/102
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Проблема с FSCM

petrd
В целом не полностью понятен вопрос и непонятно, что за код Вы привели.
Где у Вас FSCM обработчик?

Вот у Вас что-то. В какой-то момент отказывает кварц, у Вас что-то переключается с кварц+pll на frc и Вы попадаете в прерывание по OSCF, где разбираетесь с частотой.

У Вас в коде другое совсем.
besogon на форуме   Ответить с цитированием
Старый 20.11.2020, 12:48   #3
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 49
Сообщений: 1,865
Вес репутации: 2279/87
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: Проблема с FSCM

Цитата:
Сообщение от besogon Посмотреть сообщение
petrd
В целом не полностью понятен вопрос и непонятно, что за код Вы привели.
Где у Вас FSCM обработчик?

Вот у Вас что-то. В какой-то момент отказывает кварц, у Вас что-то переключается с кварц+pll на frc и Вы попадаете в прерывание по OSCF, где разбираетесь с частотой.

У Вас в коде другое совсем.
Методика проверки на этом коде:
1. Запускаем на кварце. Контролируем частоту на RA0. Частота соответствует расчетной.
2. Налету убираем кварц. Срабатывает FSCM. Контролируем частоту. Частота в 4 раза ниже расчетной.

Нет обработчика. Не нужен. Что он мне дает? Мне пока не надо назад возвращаться на кварц. Скажу больше, я его убрал для уменьшения кода, флаг OSCFIF выставляется. А для включения перехода на внутренний достаточно #pragma config FCMEN = ON. Настройки для внутреннего генератора заданы в коде заранее, поэтому при срабатывании FCMEN по идее МК должен на них перейти, к тому же я эти настройки вижу отладчиком, но увы, частота не соответствует ожиданиям и тому что вижу в OSCCON и OSCTUNE.

Что не ясно в коде?
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)

Последний раз редактировалось petrd; 20.11.2020 в 12:59.
petrd вне форума   Ответить с цитированием
Старый 20.11.2020, 13:08   #4
SergP01
Senior Member
 
Аватар для SergP01
 
Регистрация: 09.11.2012
Адрес: SPB
Возраст: 52
Сообщений: 2,165
Вес репутации: 909/60
SergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to behold
По умолчанию Re: Проблема с FSCM

OSCTUNE

правильно настройте...


Цитата:
The default value of the TUN<5:0> is ‘000000’. The
value is a 6-bit two’s complement number.
SergP01 на форуме   Ответить с цитированием
Старый 20.11.2020, 13:09   #5
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,547
Вес репутации: 4677/102
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Проблема с FSCM

petrd
На этом pic на кварце Вы не можете получить 64MHz. 64MHz можно получить только используя PLL.

1. Запускаем на кварце. Контролируем частоту на RA0. Частота соответствует расчетной. - как я понял, Вы запускаете на кварце 16 MHz +pll (*4). Итого 64MHz.

2. Налету убираем кварц. Срабатывает FSCM. Контролируем частоту. Частота в 4 раза ниже расчетной. - расчетная частота по Вашему коду 16MHz +-.

Нет обработчика. Не нужен. Что он мне дает? - как минимум переключиться на frc+pll.
besogon на форуме   Ответить с цитированием
Старый 20.11.2020, 13:13   #6
SergP01
Senior Member
 
Аватар для SergP01
 
Регистрация: 09.11.2012
Адрес: SPB
Возраст: 52
Сообщений: 2,165
Вес репутации: 909/60
SergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to behold
По умолчанию Re: Проблема с FSCM

Цитата:
Сообщение от besogon Посмотреть сообщение
petrd
На этом pic на кварце Вы не можете получить 64MHz. 64MHz можно получить только используя PLL.
,
всё просто....

Цитата:
OSCTUNE |= 0x40;
тут остаётся 16мгц
SergP01 на форуме   Ответить с цитированием
Старый 20.11.2020, 13:28   #7
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 49
Сообщений: 1,865
Вес репутации: 2279/87
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: Проблема с FSCM

Цитата:
На этом pic на кварце Вы не можете получить 64MHz. 64MHz можно получить только используя PLL.
Да, для PLL у меня есть #pragma config PLLCFG = ON.
Цитата:
1. Запускаем на кварце. Контролируем частоту на RA0. Частота соответствует расчетной. - как я понял, Вы запускаете на кварце 16 MHz +pll (*4). Итого 64MHz.
Да. При 64МГц и настройках TMR2 длительность импульса на RA0 должна быть 4мс, я их вижу. Проверяйте.
Цитата:
2. Налету убираем кварц. Срабатывает FSCM. Контролируем частоту. Частота в 4 раза ниже расчетной. - расчетная частота по Вашему коду 16MHz +-.
Цитата:
Да, убираю кварц и длительность импульса на RA0 становится 16мс.
Нет обработчика. Не нужен. Что он мне дает? - как минимум переключиться на frc+pll
Отлично, только как? Конкретный код можете привести?
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 20.11.2020, 13:41   #8
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 49
Сообщений: 1,865
Вес репутации: 2279/87
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: Проблема с FSCM

Цитата:
Сообщение от SergP01 Посмотреть сообщение
всё просто....

тут остаётся 16мгц
В приведенном коде всего лишь делаем мАААленькую замену:
Код:
#pragma config FOSC = INTIO67
//#pragma config FOSC = HSMP
и получаем 64 МГц.
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 20.11.2020, 13:48   #9
SergP01
Senior Member
 
Аватар для SergP01
 
Регистрация: 09.11.2012
Адрес: SPB
Возраст: 52
Сообщений: 2,165
Вес репутации: 909/60
SergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to behold
По умолчанию Re: Проблема с FSCM

Цитата:
Сообщение от petrd Посмотреть сообщение
В приведенном коде всего лишь делаем мАААленькую замену:
Код:
#pragma config FOSC = INTIO67
//#pragma config FOSC = HSMP
и получаем 64 МГц.
наверное можно и так....
но даташит- я бы всё равно почитал , чтобы не копипастить бездумно...
SergP01 на форуме   Ответить с цитированием
Старый 20.11.2020, 13:59   #10
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,547
Вес репутации: 4677/102
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Проблема с FSCM

petrd
Отлично, только как? Конкретный код можете привести? - Вы сами сохранить в стеке контекст, прожечь config, сделать reset и восстановить контекст не можете?
besogon на форуме   Ответить с цитированием
Старый 20.11.2020, 14:08   #11
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 49
Сообщений: 1,865
Вес репутации: 2279/87
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: Проблема с FSCM

Цитата:
Сообщение от besogon Посмотреть сообщение
petrd
Отлично, только как? Конкретный код можете привести? - Вы сами сохранить в стеке контекст, прожечь config, сделать reset и восстановить контекст не можете?
Вы предлагаете МК на лету перешивать себе биты конфигурации и перезапускаться? Так работает FSCM? Вы это серьезно?
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 20.11.2020, 14:10   #12
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 49
Сообщений: 1,865
Вес репутации: 2279/87
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: Проблема с FSCM

Цитата:
Сообщение от SergP01 Посмотреть сообщение
наверное можно и так....
но даташит- я бы всё равно почитал , чтобы не копипастить бездумно...
И это Вы мне говорите про чтение даташита и бездумный копипаст??? После своих перлов?
Перл 1 - http://www.microchip.su/showpost.php...98&postcount=4
Перл 2 - http://www.microchip.su/showpost.php...00&postcount=6
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 20.11.2020, 14:24   #13
SergP01
Senior Member
 
Аватар для SergP01
 
Регистрация: 09.11.2012
Адрес: SPB
Возраст: 52
Сообщений: 2,165
Вес репутации: 909/60
SergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to behold
По умолчанию Re: Проблема с FSCM

Цитата:
Сообщение от petrd Посмотреть сообщение
И это Вы мне говорите про чтение даташита и бездумный копипаст??? После своих перлов?
Перл 1 - http://www.microchip.su/showpost.php...98&postcount=4
Перл 2 - http://www.microchip.su/showpost.php...00&postcount=6
дык... просветите- что делает
#pragma config FOSC = INTIO67
на уровне регистров...
SergP01 на форуме   Ответить с цитированием
Старый 20.11.2020, 14:25   #14
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,547
Вес репутации: 4677/102
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Проблема с FSCM

petrd
Вы предлагаете МК на лету перешивать себе биты конфигурации и перезапускаться? Так работает FSCM? Вы это серьезно? - я Вам уже сказал как работает FSCM. Расскажу подробней.

Если произошел сбой выбранного осциллятора, то через короткое время происходит переход на frc и выставление флага прерывания.

В прерывании Вы можете переключиться с frc обратно на выбранный осциллятор или, если он отказал, сделать что хотите. Автоматического переключения обратно на HS+PLL не будет.

Если хотите при отвале кварца работать на 64, когда выбран в конфиге HS+PLL, то сохраните контекст, прожгите конфиг на FRC+PLL, перезагрузитесь и восстановите контекст. Других вариантов я не вижу.
besogon на форуме   Ответить с цитированием
Старый 20.11.2020, 14:36   #15
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 49
Сообщений: 1,865
Вес репутации: 2279/87
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: Проблема с FSCM

Цитата:
Сообщение от besogon Посмотреть сообщение
petrd
Автоматического переключения обратно на HS+PLL не будет.
Что Вы подразумеваете под автоматическим переключением?
Автоматическое не будет. А ручное?
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 20.11.2020, 14:43   #16
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,547
Вес репутации: 4677/102
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Проблема с FSCM

petrd
Что Вы подразумеваете под автоматическим переключением? - что само при восстановлении HS+PLL переключится.
А ручное? - в прерывании можете обратно с frc переключить обратно на FOSC. Если кварц не отвалился - переключится. поле SCS регистра OSCCON.

В целом обычно состояние системы пытаются как-то отслеживать. Потому как если часто отваливается, то нужно что-то делать другое, нежели очередной раз пытаться переключиться на HS+PLL.
besogon на форуме   Ответить с цитированием
Старый 20.11.2020, 16:01   #17
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 49
Сообщений: 1,865
Вес репутации: 2279/87
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: Проблема с FSCM

Видимо проблема связана с тем, что PLL работает c INTOSC только, если INTOSC прописан в битах конфигурации. Но явно об этом в даташите нигде не сказано, или плохо смотрел. Тут тоже такой вывод сделан - https://www.microchip.com/forums/m81...spx?high=FSCM+
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 20.11.2020, 16:24   #18
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,547
Вес репутации: 4677/102
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Проблема с FSCM

petrd
Но явно об этом в даташите нигде не сказано, или плохо смотрел. - в даташите не сказано, что как-то иначе. Кроме прочего я Вам про это говорил.
Вы почему-то считаете, что не надо сохранить контекст, переписать биты конфигурации, перезапустить контроллер и восстановить контекст.

Видимо проблема связана с тем - проблема связана с тем, что Вы упорно отказываетесь смириться с возможностями контроллера.

Вы случайно не ругались со мной какое-то время назад?
besogon на форуме   Ответить с цитированием
Старый 20.11.2020, 16:56   #19
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 49
Сообщений: 1,865
Вес репутации: 2279/87
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: Проблема с FSCM

Цитата:
Сообщение от besogon Посмотреть сообщение
petrd
Но явно об этом в даташите нигде не сказано, или плохо смотрел. - в даташите не сказано, что как-то иначе. Кроме прочего я Вам про это говорил.
Вы почему-то считаете, что не надо сохранить контекст, переписать биты конфигурации, перезапустить контроллер и восстановить контекст.

Видимо проблема связана с тем - проблема связана с тем, что Вы упорно отказываетесь смириться с возможностями контроллера.

Вы случайно не ругались со мной какое-то время назад?
Прежде чем начинать разговор в том русле, что Вы начали надо быть на 100% уверенным. Мы с Вами ранее не ругались и впредь не намерен. Давайте на равных начинать разговор.

По теме.
1. Вашими же словами - а где в даташите сказано, что так нельзя. Покажете? Есть PLL, есть бит PLLEN, он может работать c INTOSC, но почему-то не всегда. Об этом как понять?
2. Про FSCM. Если работать от кварца без PLL на 16МГц и перейти на INTOSC, то МК продолжит работать на той же частоте 16МГц. Что и требовалось. И никаких костылей с переписыванием битов не надо. Это не нормально использовать возможности МК, а растрата ресурсов для создания костылей.
3. Команды Reset(); будет достаточно после перепрошивки битов средствами МК?
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 20.11.2020, 19:02   #20
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,547
Вес репутации: 4677/102
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Проблема с FSCM

petrd
1. Вашими же словами - а где в даташите сказано, что так нельзя. - что Вы хотите сейчас услышать? из документации на контроллер следует, что можно так, как можно. Что можно только в конфигурационных битах выставить. Выяснять от ума ли так сделано не буду.


И никаких костылей с переписыванием битов не надо. Это не нормально использовать возможности МК, а растрата ресурсов для создания костылей. - младшие пики зло. На странице pic18f26k22 предлогают взять pic18f26q10 - бегло посмотрел, вроде бы q10 сильно меньшее говно чем pic18f26k22.


3. Команды Reset() - думаю что да. Я не знаю, что делает эта команда, но надеюсь что это просто обертка для соответствующей инструкции.
besogon на форуме   Ответить с цитированием
Старый 20.11.2020, 20:26   #21
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 49
Сообщений: 1,865
Вес репутации: 2279/87
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: Проблема с FSCM

Цитата:
Сообщение от petrd Посмотреть сообщение
Видимо проблема связана с тем, что PLL работает c INTOSC только, если INTOSC прописан в битах конфигурации. Но явно об этом в даташите нигде не сказано, или плохо смотрел. Тут тоже такой вывод сделан - https://www.microchip.com/forums/m81...spx?high=FSCM+
Еще в подтверждение - https://www.microchip.com/forums/m97...+Clock+Monitor
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 23.11.2020, 22:35   #22
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 49
Сообщений: 1,865
Вес репутации: 2279/87
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: Проблема с FSCM

Решение есть, по подсказке besogonа, оно работает, но мне не очень нравится, оно работает в одну сторону, чтобы вернуться назад на кварц надо снова изголяться. Это костыль! А как бы все было просто с работающим во всех режимах PLL.
Код:
// CONFIG1H
#pragma config FOSC = HSMP
#pragma config PLLCFG = ON      // 4X PLL Enable (Oscillator multiplied by 4)
#pragma config PRICLKEN = ON    // Primary clock enable bit (Primary clock is always enabled)
#pragma config FCMEN = ON      // Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor disabled)
#pragma config IESO = OFF       // Internal/External Oscillator Switchover bit (Oscillator Switchover mode disabled)
....................
#include <xc.h>
#include <stdint.h>

uint8_t config_byte;
uint16_t config_word;

void interrupt isr(void){
 
    if(TMR2IE && TMR2IF){
         TMR2IF = 0; 
         LATA0 = 1 - LATA0;
     }
    
    if(OSCFIE && OSCFIF){
         OSCFIF = 0;
         FLASH_Write_Config_Byte(0x300001,0x78);
         config_byte = FLASH_ReadByte(0x300001);
         if(config_byte == 0x78){
              Reset(); 
            }
  
        } 
} 

void main(){
 
  ANSELA = 0;
  TRISA = 0x00;
  PORTA = 0xFF;
  
  OSCCON  |= 0x70;       //  INTOSC = 16 MHz
  OSCTUNE |= 0x40;       //  PLL
  
  OSCFIE = 1;   
 
 //****************  TMR2 ************************************
 PR2 = 250;
 T2CON = 0x7E; // PRE = 1:16, POST = 1:16, TMR2 = ON. Period 4 ms (@64 MHz)
 TMR2IE = 1;
 PEIE = 1;
 ei();
 
 for(;;){
      
 }
}
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 24.11.2020, 08:38   #23
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,547
Вес репутации: 4677/102
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Проблема с FSCM

petrd
чтобы вернуться назад на кварц надо снова изголяться - где Вы видите изголение? "Плохо сделано" это полностью нормальная ситуация для pic16 и то, что Вы называете костылем есть обычный способ.

В Вашем коде нет сохранения/восстановления. У Вас после ресета код не продолжит исполняться из того состояния, в котором было. Он начнет работать сначала.
besogon на форуме   Ответить с цитированием
Старый 24.11.2020, 09:07   #24
ATAMAN
Senior Member
 
Аватар для ATAMAN
 
Регистрация: 09.01.2012
Возраст: 37
Сообщений: 506
Вес репутации: 373/41
ATAMAN is just really niceATAMAN is just really niceATAMAN is just really niceATAMAN is just really nice
По умолчанию Re: Проблема с FSCM

Для чего используют битовую операцию OR | при записии значений в регистры?
OSCCON |= 0x70; // INTOSC = 16 MHz
OSCTUNE |= 0x40;
ATAMAN вне форума   Ответить с цитированием
Старый 24.11.2020, 09:13   #25
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,547
Вес репутации: 4677/102
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Проблема с FSCM

ATAMAN
Если не вдаваться в подробности, то для модификации определенных битовых полей.

Программист гарантирует(что в целом видно из кода), что в данный момент времени эти поля будут модифицироваться из одного места, так что так можно делать.
besogon на форуме   Ответить с цитированием
Ответ


Здесь присутствуют: 6 (пользователей: 5 , гостей: 1)
SergP01, Марк, besogon, bvg33, HHIMERA
Опции темы
Опции просмотра

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с RTL8201BL Рак Cетевые протоколы и технологии 13 30.01.2017 10:01
проблема с обновлением pickit2 ctef Продукция MICROCHIP 13 25.08.2008 18:16
Проблема с PIC18F452 MaxPIC Продукция MICROCHIP 4 09.02.2008 21:47
Проблема с кнопками в MPLAB RexeR Продукция MICROCHIP 0 14.11.2007 18:18
PIC16F689 проблемы с FSCM 3682_iop Продукция MICROCHIP 17 02.11.2007 12:50


Часовой пояс GMT +3, время: 19:31.


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