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

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

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

Ответ
 
Опции темы Опции просмотра
Старый 20.11.2020, 12:04   #1
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 49
Сообщений: 1,885
Вес репутации: 2279/88
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
Возраст: 34
Сообщений: 2,679
Вес репутации: 4859/106
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,885
Вес репутации: 2279/88
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,376
Вес репутации: 1008/63
SergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud of
По умолчанию 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
Возраст: 34
Сообщений: 2,679
Вес репутации: 4859/106
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,376
Вес репутации: 1008/63
SergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud of
По умолчанию 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,885
Вес репутации: 2279/88
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,885
Вес репутации: 2279/88
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,376
Вес репутации: 1008/63
SergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud of
По умолчанию 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
Возраст: 34
Сообщений: 2,679
Вес репутации: 4859/106
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,885
Вес репутации: 2279/88
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,885
Вес репутации: 2279/88
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,376
Вес репутации: 1008/63
SergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud ofSergP01 has much to be proud of
По умолчанию 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
Возраст: 34
Сообщений: 2,679
Вес репутации: 4859/106
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,885
Вес репутации: 2279/88
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
Возраст: 34
Сообщений: 2,679
Вес репутации: 4859/106
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,885
Вес репутации: 2279/88
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
Возраст: 34
Сообщений: 2,679
Вес репутации: 4859/106
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,885
Вес репутации: 2279/88
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
Возраст: 34
Сообщений: 2,679
Вес репутации: 4859/106
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,885
Вес репутации: 2279/88
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,885
Вес репутации: 2279/88
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
Возраст: 34
Сообщений: 2,679
Вес репутации: 4859/106
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
Сообщений: 565
Вес репутации: 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
Возраст: 34
Сообщений: 2,679
Вес репутации: 4859/106
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 вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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, время: 07:53.


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