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

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

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

Сообщение dionisiu »

Доброго времени суток, радиохламеры!
Тут в хламе завалялась плата от блока квартирной сигнализации (её выкинули, а я подобрал - не воровано!) на МК PIC16F72-i/sp, из разъёмов на плате только клавиатурный и шлейфы, никаких разъёмов для внутрисхемного программирования не обнаружил, имеются на плате 3 переключающих реле до 7А, "пищалка".
Задача: не выпаивая МК из платы и при минимальном вмешательстве (а лучше - без него) перешить программу на миллисекундный таймер для управления контактной сваркой.
Конкретика задачи: присобачить три светодиодных семисегментных индикатора (отображение заданного времени, от 002 до 998 миллисекунд с шагом 2 в младшем разряде), шесть кнопок (на каждом индикаторе добавлять/убавлять время), кнопку пуска (запуск отсчёта времени - собственно, сварка), управление симистором (ТС122-25-6).
Задача максимум (на будущее): измерение температуры в двух точках (терморезисторы из блоков питания FSP-400PNR, параметров пока не знаю, но два сгоревших блока имеются :) ), по показаниям температуры запуск вентилятора и (вообще - задача супер-максимум) жидкостного охлаждения (моторчик стеклоомывателя от Ford - 12В, 1,25А, пусковой ток до 2,2А).

Логика работы: нажатием соответствующих кнопок выставить потребное время (которое требуется прописать в EEPROM, чтобы при повторном включении системы снова отображалось то же значение), по нажатию пусковой педали открыть симистор, отсчитать время до нуля, выключить симистор и пискнуть "пищалкой" (её "+" сидит на 18-ой ноге МК). При этом, требуется дождаться обязательного отжима педали до повторения цикла (то есть, не входить в бесконечное повторение из-за того, что я не успеваю эту педаль отпустить). Да, вот ещё, время кнопками по-разрядно должно регулироваться, то есть левый индикатор будет отвечать за сотни, средний - за десятки, правый - за единицы миллисекунд.

Ограничения задачи: оттрассировать имеющуюся плату не представляется возможным (очень сильно не хочется распаивать, а много проводников проходит под крупными деталями); доступ к радиодеталям у меня ограничен (в смысле - если чего прикупить нужно, из моего НС в Симферополь особо не наездишься, а с инет-доставкой тут у нас "своя атмосфэра"), так что приходится ориентироваться на завалявшийся хлам (а вот его - прилично, правда, в основном, старьё); язык Си и его клоны я не знаю, предполагаю кодить на Basic, благо, компиляторы его для предполагаемой "жертвы экспериментов" существуют; мне гораздо проще переизучить ASM для PIC-ов, чем изучить Си, опыт программирования КР580 есть (красный диплом СевНТУ не за "сало" и не за "красивые глаза" имеется :) ); в наличии паяльник на 25Вт без регулировок, китайский мультиметр, пол-мотка синей изоленты и початая банка WD-40 :) , больше ничего нет и не предвидится (денег тоже нет, от слова совсем) :( .

В качестве программатора предполагаю собирать JDM или RCD (пока смотрю - что из деталей найду, основная засада в стабилитроне на 13В).

Вот теперь по изложенной ситуации вопросы:
1. Возможно ли с этим МК вытворять желаемые фокусы, не вынимая его из совершенно непонятного устройства?
2. Потребуется ли делать гальваническую развязку с симистором (очень не хочется ему ещё присобачивать отдельное питание для управляющей цепи)?
3. Вероятнее всего, семисегментных индикаторов у меня не будет, но есть несколько под-убитых светодиодных фонариков, думаю - 21 штуку целых диодов я там найду.
4. И чем, :evil: , отличается "-i/sp" от "-i/so"??? уже почти неделю рою сеть - так и не понял :-?

Устройство очень нужно, так как одновременно умерли батареи на шуруповёрте и нетбуке (у последнего - ещё и блок питания навернулся), наткнулся в хламе на трансформатор от микроволновки, задумал сделать контактную сварку для батарей, да вот печалька - никак не приноровлюсь вовремя ногу отдёргивать :oops: , а без шуруповёрта на огороде работа стоит, а без огорода летом и денег не предвидится, а без денег...
В общем, как в той сказке про курочку, что взяла на себя непосильный квест петушку горлышко маслицем подлечить ;)
Так что, "спасите, помогите, люди добрые, мы сами не местные. от прогресса отстали, подайте совет дельный, покажите схемку рабочую, отсыпьте кода оптимального, да воздастся Вам сторицей" :clapping:
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

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

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

1. Тот аналог JDM, который на сайте - не подойдёт, тут надо алгоритм Vdd-first, а он так не умеет. С RCD может прокатить, но не выпаивая... без схемы нельзя сказать получится или нет. Может быть всю схему придётся запитать. Однажды мне попадался девайс, который также лень было распаивать, так вот он запрограммировался только когда я всю схему целиком запитал. Там правда специальный разъём для внутрисхемного программирования был, но вот без запитки всего девайса контроллер всё равно через этот разъём не шился (но это так, к слову).

2. i/sp от i/so отличается типом корпуса sp - dip корпус, so - soic, i - температурный диапазон -40..+85. Это в доке есть (стр.133 DS39597B)

3. Как можно присобачить три семисегментника к плате без вмешательства я что-то слабо представляю. В любом случае придётся хотя бы отследить какие ноги контроллера куда идут, какие доступны через шлейфы и клавиатурный разъём. Пока я только понял что на 18-й ноге висит родная для платы пищалка.

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

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

Сообщение dionisiu »

1. По контроллеру понял, где-то я про задержку под Vdd-first уже читал, надо упорядочить свои сохранёнки :oops: ; запитать плату - не проблема, родной транс есть, и клавиатуру надо поискать. Вот разъёма там нет, это точно.

2. Спасибо, теперь понятнее. Каюсь, всю доку прочитать "ниасилил", технический английский в плане электроники мне пока малодоступен (это я программирование изучал, да свой фордец через мануалы, а вот с электроникой - теперь придётся навёрстывать упущенное).

3. Не то, чтобы я совсем не допускал вмешательства в плату - нет, мне не хочется всё выпаивать для трассировки (много SMD, а я с ними - не очень, и отверстия металлизированные - никакой оплётки не хватит олово оттуда вытащить), а вот навесным монтажом накинуть шлейф - это я могу, это я понимаю, и на отдельной платке (есть кусочек одностороннего текстолита, примерно 80*80 мм) сделать всё остальное. Тут хотелось бы быть уверенным, что иные цепи оригинальной платы не будут мешать возложенной на МК задаче.

Фотки - проблема. Фотоаппарат есть, но шнура к нему нет. А единственный ридер для карты - в нетбуке, который как раз и не работает.

ЗЫ: Тут такое дело - сейчас со стационарного компа сижу, у которого жесткий диск умер и "упал" в режим 45 кб/с, так что не ругайтесь на мои пропадания на форуме - просто своп оооооочень долго обрабатывает запросы браузера, одновременно и мануалы курю - система висит безбожно. Кстати, вопрос: при заливке прошивки скорость работы с диском может быть критичной? Ну, там, как, например, с записью DVD-болванок, типа, если буфер опустошится - болванке дорога в корзину?
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

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

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

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

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

Сообщение dionisiu »

Извините, долго не был - основная машина перезагружалась, целые сутки :lol2:
Итак, добыл я оригинальный ящик с клавиатурой и трансформатором от этой сигнализации, в собранном виде система выдаёт писк при подаче питания, включает светодиоды "Питание" и "Работа", блымает сигналами "Взят" и "Зона1...4" (причём, в противофазе - при горящем "Взят" погашены "Зона..." и наоборот). На штатном клеммнике для "Зоны3" и "Зоны4" висят два резистора по 2 кОм (по одному на каждую, от единой "земли"), при размыкании резисторов начинает блымать соответствующая зона, при попытке тот же резюк накинуть на свободную "Зону" (например, 1-ю) - она перестаёт блымать. Нажатия на клавиатуру сопровождаются короткими сигналами (только # пищит чуть дольше), при этом цифровые кнопки при удержании в нажатом состоянии не повторяют сигнал (ожидают отпускания?), а * и # при удержании начинают периодически пищать.
От платы из части, отвечающей за стабилизацию питания, выходят два провода (чёрный и красный), оконеченные изолированными клеммами, при наличии сетевого питания на них 13.13 В (черный минус; здесь и далее - все показания по китайскому мультиметру). Предполагаю - это для аккумулятора. При выключении питания слышны два щелчка реле (при включении из-за писка не разобрать - одно или два включаются).

Теперь, из того, что я успел отследить.
1-ая нога МК при наличии питания имеет 4,81 В. Напряжение подано через делитель на SMD резисторах, на одном (к ноге) написано "222" (прибор показывает 2.19 кОм), на другом (к земле) написано "102" и выдаёт 9,91 кОм
2-ая нога МК никуда не подключена и выдаёт 4.05 В
3-я нога МК выдаёт 2.59 В и идёт в непонятном направлении (там группа SMD-компонентов, непонятно)
4-я нога МК выдаёт 2.61 В и идёт туда же :)
5-я ----!!!----!!!----!!!!----!!!!-----
6-я нога МК дат 0,01 В и идёт, как мне кажется, на землю, хотя и очень странно проходит под вышеупомянутым резюком "102" (см. описание 1-ой ноги)
7-я нога МК выдаёт 0,88 В и идёт к той группе SMD
8-я нога - земля
9-я нога идёт в сторону кварца и имеет 0,69 В, при этом, касание щупом останавливает блымание светодиодов = срыв генерации???
10-я нога даёт 0,62 В и генерацию не рвёт
11-я нога даёт 4,71 В и идёт к SMD, среди которых (я так думаю) резистор, через него на один из выводов трёх-выводного компонента (на нём обозначения "1G и повёрнутая 5" транзистор? симистор?) а далее (средний вывод трёхногого) нечто, похожее на Зенер (стеклянный красненький с чёрной полосой)
12-я нога имеет 0,00 В и никуда не идёт
13-я нога имеет 0,01 В; вроде, идёт на землю
14-я нога имеет 0,00 В, но я не вижу её соединения с землёй (как и у 12-ой)

15-я нога идёт к 6-ой ноге микросхемы 24LC028 (это дополнительная память I2C??? круто, у меня ещё одна микросхема полезная :D )
16-я нога идёт к 5-ой ноге упомянутой микрухи
===== на обоих ногах напруга скачет ======
17-я нога напруга скачет и уходит к группе SMD-компонентов, которые связаны с ногами 2, 3, 5, 7
18-я нога идёт на пищалку (к обозначению "+")
19-я нога имеет 0,00 В; похоже - земля
20-я нога имеет 4,82 В и идёт к микрухе памяти на 8-ую ногу.
21-я нога имеет 4,63 В и скрывается под клавиатурным разъёмом (не видно - куда. средний верхний даёт 4,24 В)
Здесь и далее клавиатурный разъём рассматривается со стороны монтажа деталей, располагаясь ключом вверх; имеет 10 пин по 5 шт в два ряда: левый, менее левый, центр, менее правый, правый с указанием ряда - нижний или верхний Извините, на разъёмах обозначений типа "1" нет, так что нумерую так :oops:
22-я нога имеет 0,17 В и идёт к клаве на правый верхний пин и менее правый верхний пин, а также (через SMD-резистор с надписью "102" на микрик контроля открытия дверцы - можно будет его под педаль использовать ;) )
23-я нога напруга скачет и идёт на клаву правый нижний пин
24-я нога имеет 0,19 В и идёт на менее правый нижний пин
25-я нога напруга скачет, идёт на клаву нижний центральный пин
26-я нога напруга скачет, идёт на клаву менее левый нижний пин и на микрик дверцы (т.е. микрик на землю не замыкается? только между портами?
27-я нога напруга скачет, идёт на клаву нижний левый пин
28-я нога напруга скачет, идёт на верхний левый пин и на верхний менее левый пин

Вроде, ничего не перепутал

Теперь, о клавиатуре. Она плёночная, при этом находится в углублении дверцы и не-съёмная (вероятно, вклеена???), состоит из 12-ти кнопок (4 ряда по 3 столбца, цифры и символы * и #), к ней идёт 8-ми проводной гибкий плоский прозрачный лавсановый шлейф от маленькой платы, а на платке распаяны светодиоды, шлейф к основной плате и, как мне кажется, несколько SMD-компонентов, но тут засада - платка к дверце привинчена тремя винтами, которые я никак не могу свинтить :( , а разводка и SMD снизу (реально - не могу свинтить; вероятно, винты вклеены).
У шлейфа от основной платы (лапша) в районе входа в плату клавиатуры откушен провод в верхнему левому пину основной платы
Насколько я могу судить, светодиоды объединены плюсом питания (звонится на верхний средний пин, где постоянно сидит 4,24 В)
Светодиоды мультиметром не звонятся, ни в прямом, ни в обратном направлении, ни в положении проверки диодов, ни в других пределах, вплоть до 2 МОм. Однако :shock:

Далее, от обозначений пинов на разъёме клавиатуры основной платы прозваниваю плату клавиатуры (сам шлейф клавиатуры имеет вертикальное расположение и я буду давать нумерацию сверху вниз):
Правый верхний пин (от 22-й ноги) идёт на светодиод (далее - СД) "работа" (светодиоды подключены через резисторы порядка 354-362 Ом), на клавиатуру идёт на 3-й вывод)
Правый нижний пин идёт на СД "Взят" и на клавиатуру на 2-й вывод
Менее правый верхний дублирует правый верхний (они и на основной плате соединены, и на клавиатурной)
Менее правый нижний пин идёт на СД "Питание", а на клавиатуру идёт на 1-й и 4-й выводы (замкнуто на плате?)
Центральный верхний идёт только на диоды, на клавиатуру не идёт.
Центральный нижний идёт на СД "Зона1" и на клавиатуру на 5-й вывод.
Менее левый верхний идёт на СД "Зона2" и на клавиатуру на 6-й вывод.
Менее левый нижний идёт на СД "Зона3" и на клавиатуру на 7-й вывод.
Левый верхний откушен возле входа в плату
Левый нижний идёт на СД "Зона4" и на клавиатуру на 8-й вывод.
Все подходы к клавиатуре развязаны резисторами порядка 970 Ом

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

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

Сообщение dionisiu »

Да, ещё забыл про кварц. На нём выбито H4000/c, в сети информации обнаружить не удалось, предполагаю его частоту 4 МГц (поправьте, если ошибаюсь).
Кстати, сразу вопрос - какой из типов тактового генератора выбирать в мастере проектов: RC, HS, XT или LP??? Не пинайте, пожалуйста, я обязательно дочитаю даташит, когда-нибудь, немного позже ;) , просто сейчас уж очень надо определиться с верным ответом
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

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

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

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

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

Сообщение dionisiu »

И снова здравствуйте!!!
Проблемы продолжаются :) , теперь у ИБП исдох аккумулятор (они сговорились :idea: ), из-за чего я уже третий день не могу заниматься изучением MATLAB-a и Протеуса (идёт очередная попытка поднять жёсткий диск, я тут как некромант какой-то :-? ). Сейчас у старшей дочки экспроприировал планшет, каникулы закончились :clapping: , но как же бесит отсутствие нормальной клавиатуры :evil:
Однако, время даром не теряю, продолжаю колупать плату, и вот что обнаружил. В части, где стабилизаторы питания, есть напряжение 13 В!!! Отсюда вывод - можно не заморачиваться с распайкой питающих цепей в программаторе, взять только линии Data и Clc, или я не прав???
И ещё вопрос по программатору - ни у кого из знакомых и ни в одном магазине не нашлось шнура или хоть разъема СОМ-порта, даже в моём хламушнике исчезла мышка СОМовская (хотя я точно помню, как приволок её с одной из прошлых работ именно из-за шнура), вероятно, жена с мамой слегка помогли мне с уборкой :cry2:
Заодно и щуп осциллографа исчез (в поисках мыши я нашёл осциллографа :lol: ), пришлось ваять из стоматологического шпателя, футляра от пипетки, соединителей от коаксиальных кабелей, пищевой алюминиевой фольги и провода от наушников. А, скотч забыл, это важно ;)
Да, о шнурках и разъёмах, нашёл только от LTP, возможно ли прошивать через принтерный порт? С учётом того, что нужны только информационные линии, так как питание есть на плате?

И ещё о самой плате, точнее - о клавиатуре, я её прозвонил, это не совсем та схема, которая считается классической для 12 кнопок в 4 ряда по 3 столбца. При 8-ми входящих линиях можно отслеживать до 28-ми клавиш без мультитача, а для 12-ти кнопок с головой хватило бы и 6 линий, а 7 линий дают простую, как кирпич, схему 3*4, где, выставив на строке единицу, ищем единицу на столбце в элементарной паре циклов. Тут же разрабы наворотили наворотов, я никак не пойму их логику. Хотя, надо бы ещё и СД учесть, тоже ведь на этой плате сидят. Вот таблица соединений клавиш с линиями шлейфа (нумерация линий по вертикали)
1 - линии 2-5
2 - линии 2-3
3 - линии 1-2
4 - линии 2-6
5 - линии 3-5
6 - линии 4-5
7 - линии 6-8
8 - линии 5-6
9 - линии 6-7
* - линии 7-8
0 - линии 2-8
# - линии 1-8
Для разминки, нарисуйте себе такую схемку, "и мы вместе похохочем" (с) старый анекдот

Даже без рисунка видно, что по линии 1 отслеживается только 2 клавиши, по линии 2 - 5 клавиш, по линии 3 - 2, по 4 - всего одна!!!, по 5 - 4, по 6 - 4, по 7 - 2, по 8 - 4 клавиши. Вот я и думаю - как организовать опрос этой клавиатуры? Делать табличную выборку? Или последовательные проверки персональных сочетаний?

Про кварц: точно HS? Не ХТ? Я дошёл в мануале до этих строк, но не понял по пределам частот - ХТ для стандартных частот, а HS - для низких. Я-то подумал, что низкие это меньше 1 МГц, а у меня похоже на 4 МГц.
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

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

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

HS - это high speed, то есть как раз высокие. А граница между высокими и низкими для них, насколько я понимаю, как раз 4 МГц (таблица 11-2 на 62-й странице доки), но они перекрываются, так что может и на 5 МГц будет в режиме XT работать, и на 3 МГц в режиме HS. Ещё на HS можно подключать внешний источник тактовой частоты.
С уважением, администрация сайта.
Аватара пользователя
dionisiu
Читатель
Читатель
Сообщения: 35
Зарегистрирован: 24 мар 2015, 10:40
Откуда: ЮжныйБерегКрыма

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

Сообщение dionisiu »

Спасибо за разъяснение, поставлю HS, когда и если загрузится это "чудо враждебной техники".
Осталось разобраться с возможностью прошивать через LTP и с клавиатурой - а то захотелось мне выставление времени устроить прямо кнопками, перемещаясь между разрядами только с помощью * и #
Ответить

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