letter, макет - отлично.
В общем, для такой схемы:
во вложении вот такие прошивки:
1) PIC12F675.hex
2) PIC12F675_BOD.hex
При подаче питания и после любой активности МК следит за состоянием кнопки
в течение ~7 секунд (потребляя пол-миллиампера), затем уходит в режим сна.
В файле 2) включен детектор порогового напряжения питания (brown-out detector),
поэтому в режиме сна МК будет кушать около 100мкА.
В файле 1) он отключен, в режиме сна МК будет кушать пару микроампер.
При 'дребезге' питания МК будет сбрасываться.
После сброса на всех каналах и линии Power_switch - уровень лог 0.
Однако
в состоянии сброса выводы МК находятся в высокоимпедансном состоянии.
Поэтому необходимо обеспечить гарантированный уровень лог. 0 на входе 'shutdown'
основного устройства, например, установить pull-down резистор, который, однако,
будет зря рассеивать тепло ) при лог 1. на этом входе.
'Модуль' А2 в схеме нужен лишь при макетировании.
P.S. Во вложении в архиве имеется такая же пара файлов для PIC12F683, они по
выводам полностью совместимы для данной схемы.
Сообщение от letter
|
- no capacitors on PGC/PGD/MCLR
- no pull-ups on PGC/PGD
|
1) такая маленькая емкость на выводе MCLR не будет мешать.
2) на выводах PGC/PGD висят светодиоды, которые также не будут мешать
процессу.
Я проводил эксперименты в железе с PIC12F683, Pickit3 был постоянно подключен.
В процессе программирования нельзя нажимать кнопку управления переключателем SW1.
И, как я уже упоминал, в разрыв цепей PGC/PGD/MCLR от программатора к МК я включаю
резисторы порядка 330 Ом для перестраховки.
UPD.
После окончания процедуры программирования МК сразу начинает выполнять программу и будет манипулировать линиями порта, на которых 'висит' программатор, и программатор (по идее
и здравому смыслу) должен переводить свои линии в третье состояние.
Чтобы не добавлять дополнительный обвес (как это приведено в руководстве к программатору) в такую компактную схему, я просто этот обвес держу вне целевого устройства - в разрыве цепей PGC/PGD/MCLR, шлейф с 3-мя резисторами.