PIC16F72-i/sp нужно собрать таймер

Здесь обсуждаем устройства на МК и программы для них
Аватара пользователя
dionisiu
Читатель
Читатель
Сообщения: 35
Зарегистрирован: 24 мар 2015, 10:40
Откуда: ЮжныйБерегКрыма

Re: PIC16F72-i/sp нужно собрать таймер

Сообщение dionisiu »

Схема с транзистором выглядит аналогично (все варианты), только вместо транзистора Q1 и реле стоИт только один транзистор (плюс все варианты обвязки с резисторами и без них).
На схеме левее реле есть обозначение RL1(NO) - это имитация внешнего питания 13 В постоянки, справа от реле обозначение RL1(COM) - это виртуальный вольтметр.
Справа вверху схемы (над разъёмом LPT) есть свич SW1 - это имитация сигналов даты, клока, Вдд и Впп. Когда я "подаю" соответствующие сигналы, на выходном разъёме J2 все сигналы появляются в соответствии с логикой (единственное что меня беспокоит - я не понимаю, как с этой схемы снять данные обратно в комп, тут то и пригодилось бы высокоимендансное состояние).
А вот коммутировать 13 В от устройства на МК только транзистором - не получается никак (кроме реле или оптопары, но у реле задержка включения, а у оптопары - выключения, если виртуальный осциллограф не врёт).
Немного непонятна фраза "на высоком уровне сигнала clock выставляем уровень, на низком контроллер его читает.". То есть, если мне нужно передать высокий бит по DATAOUT, мне придётся дважды менять состояние порта LPT: сначала выставляем на пинах 2 и 3 по единице, потом единицу и ноль? эти две операции для передачи одного значения в МК?
И, если уж на то пошло - как из контроллера считать прошивку (если там не стоИт бит защиты, конечно) - какие сигналы надо выставить? Или просто слушать 10-й пин порта на низком клоке? Но моя схема будет туда дублировать состояние 2-ого пина...
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: PIC16F72-i/sp нужно собрать таймер

Сообщение rhf-admin »

1)
Схема с транзистором выглядит аналогично
Аналогично - это как? Ты нарисуй, тогда можно будет и поглядеть почему не работает.

2) В том же AN589 +5 В тоже управляется с порта, а не напрямую подключается к контроллеру. Лучше так и сделать, потому что многим нужно сначала подать Vpp и только потом Vdd.

3)
я не понимаю, как с этой схемы снять данные обратно в комп, тут то и пригодилось бы высокоимендансное состояние.
Я ж говорю, можно на диодах сделать аналогичную развязку.
развязка.GIF
развязка.GIF (1.99 КБ) 7212 просмотров
Когда от компа установлен низкий уровень - выход инвертора в высоком уровне и блокирован диодом, а линия подтягивается к +5В через высокоомный резистор и может при необходимости управляться от контроллера. То есть тут мы можем сами линией управлять, когда нога контроллера в Z-состоянии, а может контроллер управлять, когда мы от компа ноль на DATAOUT передаём. Получается двунаправленная линия.

4)
А вот коммутировать 13 В от устройства на МК только транзистором - не получается никак
Ну не получается одним - коммутируй двумя. Как это не получается коммутировать транзистором, что ж теперь отменяем транзисторные ключи?

5) Если нужно передать любой (хоть высокий, хоть низкий уровень) по DATAOUT - нужно сделать 3 действия: а) выставить clock в высокое состояние, б) выставить на DATAOUT передаваемый уровень, в) выставить на clock низкий уровень.

6) Для того, чтобы считать прошивку - недостаточно просто выставлять какие-то сигналы, вернее достаточно, но всё несколько сложнее. Там ещё надо посылать всякие разные команды. Например, команда чтения одного байта из Flash выглядит так: посылаем 6 бит команды 0010XX, потом посылаем стартовый бит 0, потом читаем 14 бит, потом снова посылаем 0. Но это уже другая история, тут надо курить даташит по программированию. Чтоб сделать железо программатора - это не нужно.
С уважением, администрация сайта.
Аватара пользователя
dionisiu
Читатель
Читатель
Сообщения: 35
Зарегистрирован: 24 мар 2015, 10:40
Откуда: ЮжныйБерегКрыма

Re: PIC16F72-i/sp нужно собрать таймер

Сообщение dionisiu »

Ага, теперь понятнее, спасибо.
Схему нарисую ближе к вечеру - с мелкой сижу, она любит свои коррективы вносить :D , так что ещё более запутанно получается ;)
Аватара пользователя
dionisiu
Читатель
Читатель
Сообщения: 35
Зарегистрирован: 24 мар 2015, 10:40
Откуда: ЮжныйБерегКрыма

Re: PIC16F72-i/sp нужно собрать таймер

Сообщение dionisiu »

Вот схема с транзистором по ОЭ. На коллектор подаётся 13 В, с эмиттера уходит на MCLR (должно уходить почти 13 В, но управляемо попадает только 5). На схеме NPN, но и с PNP ситуация не лучше, там всегда 12,8 В, вне зависимости от напряжения на базе.
Перепробовал уже все варианты, крутил их так и этак, структуры по всякому менял - не выходит "каменный цветок"
А вот мысль свербит, что что-то я делаю не так. Ведь нагрузка должна быть в коллекторной цепи, то есть - эмиттер должен идти на землю (по крайней мере, при таком включении вышеприведённая схема с реле работает), а у меня получается нагрузка в эмиттере, что должно давить ток базы, а коллекторное напряжение через базу шурует в инвертор.
Н-да, надо было чуть более уделять времени лекциям по физике твёрдого тела :oops:
Вложения
LPTprog4.gif
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: PIC16F72-i/sp нужно собрать таймер

Сообщение rhf-admin »

А-а-а. Ну так всё правильно, так оно и не будет работать. Вот смотри - ты подаёшь на базу транзистора Q1 напругу от инвертора, через переход база-эмиттер начинает течь ток, транзистор открывается. Что дальше? А дальше напряжение на эмиттре начинает расти, расти и приближаться к потенцалу базы. В итоге транзистор зависнет в каком-то полуоткрытом состоянии да и всё. Ну не может потенциал эмиттера вырасти больше потенциала базы, ну никак, иначе ток база-эмиттер (который открывает транзистор) никуда не потечёт.
Тут есть два варианта:
1) R2 перенести в цепь коллектора и с коллектора же снимать напругу, а эмиттер подключить к земле. Когда транзистор открыт - коллектор притянут к земле, когда закрыт - притянут к +13 вольтам через R2. Нагрузка в принципе низкоточная - может и прокатить (хотя нужно в даташите посмотреть, сколько контроллер жрать будет по 13-ти вольтам, может и не прокатить, поскольку на R2 тоже что-то упадёт, ну смотря какой ток будет).
2) Сделать таки на 2-х транзисторах. К вот этой связке на npn (из 1-го метода) добавить ещё pnp. Его базу подключить к коллектору npn, а R2 - к эмиттреру, ну а коллектор - выход. Хотя между базой второго и коллектором первого наверное ещё один резюк придётся поставить, чтоб ток базы второго транзистора ограничить.
С уважением, администрация сайта.
Аватара пользователя
dionisiu
Читатель
Читатель
Сообщения: 35
Зарегистрирован: 24 мар 2015, 10:40
Откуда: ЮжныйБерегКрыма

Re: PIC16F72-i/sp нужно собрать таймер

Сообщение dionisiu »

Блин, электричества жалко :cry: , на землю 13 В спускать. Зато - работает (по первому варианту).
Я тут разобрался, как в цвете и "на лету" экспортировать изображения, вот два состояния (с токами и напряжениями):
Vpp отключено
Vpp отключено
и ещё
Vpp включено
Vpp включено
В схему внесены следующие изменения - убран лишний инвертор по цепи управления транзистором, добавлен диод развязки по цепям DATAIN и DATAOUT, кнопка изображает подачу высокого уровня из МК в комп ;) - всё работает (в симуляции), спасибо за подсказку.
Осталось изучить вопрос, как софт управляет ногами LPT-порта - по прямой или инверсной логике, то есть, если ему нужно единицу передать в МК, он поднимает единицу, или опускает пин в ноль? И то же самое по Vdd и Vpp, а то я инверторы то напихаю, то вырежу, а как надо - не знаю :oops:
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: PIC16F72-i/sp нужно собрать таймер

Сообщение rhf-admin »

Софт управляет ногами порта так, как ты ему назначишь. В большинстве программ есть галочки, дающие возможность сделать инверсию по любому сигналу.
Кстати, программатор-то у тебя чуть обрезанный получается, - +5В не управляется. Для старых пиков такое не будет работать. Да и для новых не будет, там напряжением программирования можно не рулить, но пятью вольтами обязательно. А для старых надо рулить обоими линиями.
С уважением, администрация сайта.
Аватара пользователя
dionisiu
Читатель
Читатель
Сообщения: 35
Зарегистрирован: 24 мар 2015, 10:40
Откуда: ЮжныйБерегКрыма

Re: PIC16F72-i/sp нужно собрать таймер

Сообщение dionisiu »

И как мне это сделать, если МК сидит в устройстве, а все питающие напряжения я хочу взять именно с него? В спецификациях программирования говорится, что конкретно мой МК требует Vdd-first, позже ему надо Vpp, а ещё спустя два такта он сбрасывает счётчик команд на 0000 и начинает ждать такты от программатора.
Может, запилить ему линию задержки? То есть, подсоединяем устройство, включает его, после установки на шине питания +5 В отсчитываем некое время, подаём 12,75 В на MCLR и шлем в софт сигнал готовности?
Я тут у себя нашёл несколько триггеров, можно запилить небольшой счётчик на пару-тройку тактов, или на RC-цепочке.
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: PIC16F72-i/sp нужно собрать таймер

Сообщение rhf-admin »

Если линии DATA, CLOCK и VPP свободны - можно попробовать к ним прицепить линии твоей железки, запитать контроллер штатно и тестить с какой-нить бесплатной прогой, типа Pony или ICProg-а.
Если линии заняты - надо смотреть чем и разбираться со схемой (не будет ли что-то снаружи их просаживать и мешать программатору).
С уважением, администрация сайта.
Аватара пользователя
dionisiu
Читатель
Читатель
Сообщения: 35
Зарегистрирован: 24 мар 2015, 10:40
Откуда: ЮжныйБерегКрыма

Re: PIC16F72-i/sp нужно собрать таймер

Сообщение dionisiu »

DATA (PGD) и CLOCK (PGC) - идут на коннектор клавиатуры, который я могу и выдернуть (мне для дела немного усилий не жалко :) ), Vpp сидит через делитель, надо будет его прозвонить на тему - не пихнёт ли он дальше в схему 12,75 В.
Так что - можно попытаться собрать программатор по последней схеме и тестить? Насколько высок риск спалить это хозяйство (в смысле - МК)?
Ответить

Вернуться в «Устройства на микроконтроллерах»