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

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

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

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

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

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


 
Опции темы
Непрочитано 19.10.2016, 02:33  
isavi
Частый гость
 
Регистрация: 14.03.2008
Сообщений: 21
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
isavi на пути к лучшему
По умолчанию Переключение генератора на время сна.

Приветствую!
Пытаюсь писать под PIC16F876A на CCS, но уперся в тупик.
Контроллер тактуется от внешних часов, при этом нужно отключать /включать питание схемы самим контроллером через ногу RB_0. Проблема заключается в том, что при отключении питания и переводе контроллера в sleep, отключатся и внешние часы (вход OSC1/CLKIN).
Можно ли на время сна переключать контроллер на внутренний генератор?
Реклама:
isavi вне форума  
Непрочитано 19.10.2016, 08:45  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,504
Сказал спасибо: 401
Сказали Спасибо 2,217 раз(а) в 1,315 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Переключение генератора на время сна.

В 16F876 нет внутреннего осциллятора. Сверьтесь с даташитом.
Выберите другой МК. Например, 16F886.
И кстати, режим Sleep подразумевает остановку всех осцилляторов, кроме wdt. Это дает остановку МК и низкое энергопотребление.
Для выхода из sleep используйте внешнее прерывание или wdt.
NewWriter вне форума  
Непрочитано 19.10.2016, 21:30  
isavi
Частый гость
 
Регистрация: 14.03.2008
Сообщений: 21
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
isavi на пути к лучшему
По умолчанию Re: Переключение генератора на время сна.

С внешним прерыванием вопросов нет, только что толку - когда камень проснется, клока на входе не будет из за того что внешние часы обесточены. Нужно по прерыванию подать 1 на ключ включения питания периферии.
isavi вне форума  
Непрочитано 19.10.2016, 21:41  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,504
Сказал спасибо: 401
Сказали Спасибо 2,217 раз(а) в 1,315 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Переключение генератора на время сна.

Одновременно с выходом из sleep по внешнему прерыванию запускается осциллятор ("внешние часы" - неправильное название осциллятора, если вы имеете ввиду именно кварцевый резонатор или иной тактовый генератор). Когда генерация будет запущена, начнет работать счетчик команд и продолжится исполнение кода. Далее, в вашем коде вы должны будете прописать подачу на выход 1 для включения какого-то там ключа.
Сверьтесь с даташитом.


Или же под "внешними часами" вы подразумеваете какой-то генератор тактового сигнала, запитанный от отключаемого участка питания? Так во-первых, зачем такие сложности, в подавляющем большинстве случаев они не нужны. Во-вторых, если уж хотите именно так, тогда выберите другой микроконтроллер, у которого ЕСТЬ внутренний осциллятор, например 16F886 - это близкий аналог 16F876A, с расширенными возможностями.

Последний раз редактировалось NewWriter; 19.10.2016 в 22:03.
NewWriter вне форума  
Непрочитано 19.10.2016, 22:44  
isavi
Частый гость
 
Регистрация: 14.03.2008
Сообщений: 21
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
isavi на пути к лучшему
По умолчанию Re: Переключение генератора на время сна.

Под внешними часами я имею ввиду не кварц на контроллере а отдельный самостоятельный термостатированный TXCO генератор, питание которого отключается при переходе контроллера в слип.
isavi вне форума  
Непрочитано 20.10.2016, 00:17  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,568
Сказал спасибо: 5,042
Сказали Спасибо 10,611 раз(а) в 3,604 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Переключение генератора на время сна.

Сообщение от isavi Посмотреть сообщение
ри этом нужно отключать /включать питание схемы
Что в данном случае относится к понятию "схема"?

Сообщение от isavi Посмотреть сообщение
TXCO генератор, питание которого отключается при переходе контроллера в слип.
Это питание и должно отключаться? Так и задумано?
Или так получается, что в данном устройстве это питание отключается, но вы хотите, чтобы оно не отключалось?

Просто формулировки довольно двусмысленные, можно их понимать и так, и так.
Alex9797 вне форума  
Непрочитано 20.10.2016, 08:30  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,504
Сказал спасибо: 401
Сказали Спасибо 2,217 раз(а) в 1,315 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Переключение генератора на время сна.

Интересно, для чего такая точность кварца то.
Ну нету в 16F876A внутреннего осциллятора, ну нету.
А отключать внешний ТХСО потому и приходится, что у него потребление высоковато.
Там схема вот такая:


Кстати, как вариант. Той же кнопкой, которой подается внешн.прерыв. для запуска МК, можно с нее подать на базу транз. для первоначального включения питания схемы. Надо поэкспериментировать, хватит ли времени для запуска.

Последний раз редактировалось NewWriter; 20.10.2016 в 08:56.
NewWriter вне форума  
Непрочитано 20.10.2016, 11:47  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,568
Сказал спасибо: 5,042
Сказали Спасибо 10,611 раз(а) в 3,604 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Переключение генератора на время сна.

Решение этой проблемы я пока вижу только в том, что надо применить логический элемент с тремя состояниями на выходе. К процессору подключить обычный кварц. Это даст возможность работать процессору при отключенном генераторе, или пока генератор выйдет на режим после включения питания.

На вход OSC1 подключить выход логического элемента. На вход логического элемента подключить выход внешнего генератора, а вход логического элемента, который управляет состоянием выхода - подключить к ножке процессора.

Например, в исходном состоянии проц не спит. И его надо тактировать от внешнего генератора. Для этого проц подает на логический элемент уровень, переводящий его выход в активное состояние. При этом тактовые импульсы генератора поступают на вход встроенного генератора. И тот не сможет сопротивляться такому натиску, и будет тактировать проц с навязанной частотой.

Когда придет пора впадать в спячку, проц переводит выход логики в третье состояние. При этом внутренний генератор получает свободу, и начинает генерить сам, на частоте кварца. Что даст возможность процу спокойно отключить питание генератора, и после этого спокойно самому впасть в спячку.

Пробуждение из спячки ничем не будет отличаться от обычного. В первый момент пробуждения проц будет тактироваться от своего кварца. При этом он спокойно может сделать все свои дела, спокойно подать питание на внешний генератор, подождать, пока тот выйдет на режим, и после этого может переключить выход логики в активное состояние. И с этого момента начнет тактироваться от внешнего генератора.

Вроде ничего не упустил.
Alex9797 вне форума  
Непрочитано 20.10.2016, 18:42  
isavi
Частый гость
 
Регистрация: 14.03.2008
Сообщений: 21
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
isavi на пути к лучшему
По умолчанию Re: Переключение генератора на время сна.

NewWriter, вы абсолютно правы со схемой, только вместо транзистора будет стоять MAX890.
Точность нужна для подсчета частоты.

По поводу того что при подаче внешнего клока внутренний генератор отключится есть сомнения. Есть риск того что возникнут проблемы с синхронизацией - фазы клоков по любому не совпадут, и как камень отреагирует на такой спектр неизвесно.
Но вот идея с переключением часов и кварца мне нравится, спасибо за совет. Попробую переключать вход OSC1/CLKIN перед уходом в спячку на кварц, а после выхода из спячки на внешник клок. Думаю SA630D подойдет для этих целей - время переключения 20ns, надеюсь что за этот период не сорвется синхронизация.
не хотелось бы еще один корпус лепить, но видимо без этого не обойтись.

И еще один момент.
Если внешние часы имеют одну частоту, скажем 13Мгц, и в заголовке прописана эта же частота, а кварц будет на 10мгц, не возникнет ли проблем с генерацией? По идее контроллеру все равно какой кварц на входе, понятно что будет сильно не совпадать длительность тактов, но в sleep-е это не принципиально.

Последний раз редактировалось isavi; 20.10.2016 в 18:53.
isavi вне форума  
Непрочитано 20.10.2016, 18:52  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,568
Сказал спасибо: 5,042
Сказали Спасибо 10,611 раз(а) в 3,604 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Переключение генератора на время сна.

Сообщение от isavi Посмотреть сообщение
По поводу того что при подаче внешнего клока внутренний генератор отключится есть сомнения.
А никто и не обещал, что он отключится. Просто он не сможет генерить на частоте своего кварца. А будет просто работать в роли буферного усилителя входного сигнала. А входной сигнал в нормальном режиме - это слабенький дохленький импульсик, поступающий с выхода этого усилителя через емкость кварца. Куда ему тягаться с выходным сигналом логического элемента! Как муравей против слона. Поэтому выход логического элемента победит, и никакие фазы его не смогут сбить с дороги.

А вот когда логику перевести в третье состояние - я не стал уже дописывать сообщение, а сейчас добавлю - придется учитывать, что у ее выхода есть некоторая собственная емкость. Поэтому не надо впаивать керамическую емкость на вход кварца, достаточно будет и этой паразитной, на выходе логики.
Alex9797 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти схему генератора "Розового шума" Dizartius Поиск схем. Делимся схемами 25 24.10.2009 01:13
Как реализовать точное время в сети из AVR? Don_Ambrosio Микроконтроллеры, АЦП, память и т.д 44 15.08.2008 14:02
не обрабатывается прерывание от таймера во время АЦП rusakov_a Микроконтроллеры, АЦП, память и т.д 0 03.07.2008 01:33
Вопрос про изменение UBRR и время начала приёма Don_Ambrosio Микроконтроллеры, АЦП, память и т.д 56 25.04.2008 11:31
Часовая микросхема DS12887. Зимнее/летнее время shurco Микроконтроллеры, АЦП, память и т.д 7 11.05.2007 21:50


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


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