Форум » Программирование микроконтроллеров. » Аналог Pic16F84 » Ответить

Аналог Pic16F84

Kimm: Добрый день! Подскажите пожалуйста, что выбрать! Захотел я в промэлектронике заказать Pic16F84, но к сожалению их нет в наличии. Так вот просьба : напишите пожалуйста, какой аналог есть для Pic16F84!!!!! То есть программа написанная для F84 при программировании ничем не должна отличаться от предложенного вами аналога. Заранее благодарен!

Ответов - 78, стр: 1 2 All

Bigor: Прямого аналога Pic16F84 нет, разве что Pic16F84А, но и там возможны нестыковки. В своих, и не только своих, конструкциях я меняю оба эти микроконтроллера (МК) на Pic16F628А. Переход с 84 на 628 контроллер ПИК "расписан" в 24-м разделе 2-й (закрытой) части "Самоучителя" от Корабельникова Е. А. Рекомендую приобрести этот самоучитель. Он дастаточно быстро окупается, если подходить к этому вопросу с умом. Мне для этого хватило приблизительно 3 месяца. Причем, самоучитель окупился именно на заменах более дорогих и старых МК на на более дешевые, точнее на разнице цен этих МК и только. Историю одной такой замены можно проследить в теме "Устройство управления (УУ) на PIC16F84A. Программные сбои" http://www.pic.borda.ru/?1-2-0-00000134-000-0-0-1263159584 . Успехов

Илья: ничего секретного в переходе с F84 на F628 нет 1. выводы компаратора настроить как потры В/В: вставить код MOVLW 0x07 ; turn comparators off and MOVWF CMCON ; enable pins for I/O functions 2. изменены адреса РОН: Pic16f84 : с 0x0C по 0x4F (bank 0). Pic16f628: с 0x20 пo 0x7F (bank 0), с 0xA0 пo 0xEF (bank 1), с 0x120 пo 0x14F (bank 2). 3. Изменены биты конфигурации, задание генератора, MCLR и вывод LVP - проверить конфигурацию чтобы выключить низковольтное программирование Вроде все.

Kimm: Спасибо за ответы! Думаю лучше остаться на F84, хоть дороже - зато более понятнее! (не пойму, что такое POH?).


Bigor: Kimm пишет: не пойму, что такое POH? POH - это Регистры Общего Назначения

Kimm: Bigor пишет: POH - это Регистры Общего Назначения :)) ! Я думал это сокращение по английски :))!

Kimm: Хочу заказать программатор PIC-PG4! Как написано про него он предназначен для микрокконтроллеров PIC16F628 и PIC16F84! Ответьте пожалуйста на вопрос! Он подойдёт ли для PIC16F84A?

wws63: Должен подойти. Если нужен программатор может лучше начать с чего-нибудь попроще и подешевле , типа EXTRA-PICа?

DerSpiwak: Kimm пишет: Хочу заказать программатор PIC-PG4! Почему именно его? И сколько это стоит? Имхо если уж заказывать, то нормальный программатор, pickit2 например. Kimm пишет: Думаю лучше остаться на F84, хоть дороже - зато более понятнее! Вот это зря, рано или поздно придется изучать что то новое, и чем раньше вы откажетесь от 84 тем лучше.

Bigor: DerSpiwak пишет: Имхо если уж заказывать, то нормальный программатор, pickit2 например. Если я не ошибаюсь, pickit2 не поддерживает PIC16F84. Во всяком случае не поддерживает его из среды MPLAB. Проще всего и дешевле собрать какой-либо несложный программатор самостоятельно. Например, PonyProg или любой программатор из открытой части самоучителя от КЕА.

DerSpiwak: Bigor пишет: Если я не ошибаюсь, pickit2 не поддерживает PIC16F84. Отладка точно не работает. В общем причин, по которым стоит уже забыть про 84, миллион

Ewgen: В комплекте с PICkit2 идёт своя оболочка,там он поддерживается(программирование).

Evgeny Korabelnikov: Так и 628-й в отладчике тоже не поддерживается (нет бита DEBUG). Если рассуждать подобным образом, то лучше сразу начать с PIC16F87x, а еще лучше, с 18-й серии, а еще лучше с ... Можно и так, но это удел тех людей, чьи носы идейно (и еще как-то) подготовлены к неоправданно повышенному уровню вождения ими по всяческим батареям. Далеко не каждый такое выдержит, а если выдержит, да еще и не абы как, а качественно, то такие люди достойны уважения, и я "снимаю перед ним шляпу". Но вообще-то, принцип "от простого к сложному" выгодно уважать. Именно выгодно. И даже очень выгодно.

DerSpiwak: Evgeny Korabelnikov пишет: Так и 628-й в отладчике тоже не поддерживается (нет бита DEBUG). А надо с буковкой А брать и все тогда будет:) А вообще имхо лучше брать что нибудь из 20pin, 16f690 например, а если попроще то 14pin 16f630 или 676. Но речь не об этом, просто если уж человек собрался покупать программатор, то лучше взять на вырост, чем потом опять покупать или делать новый.

Kimm: http://www.promelec.ru/catalog/413/1519/1520/0/114475/#114475 - тут выбор программаторов небольшой, а по доступной цене Pickit2 - которого к сожалению нету! DerSpiwak пишет: Вот это зря, рано или поздно придется изучать что то новое, и чем раньше вы откажетесь от 84 тем лучше. Тут хотя бы начать, а там уж посмотрим. У меня уже есть (пришли по заказу) два F84A, но попытка их как-нибудь прошить оказалась безрезультатной. Прошивал программатором из самоучителя - не получилось ( писалась ошибка: устройство неисправно или отсутствует), потом собрал вот этот программатор: http://dimosus.narod.ru/prg.html (только вместо цепочки стабилизации (конденсатора и стабилитрона) поставил микросхему 7805) - то же ничего не заработало. Возможно я м-ры спалил случайно! Сейчас думаю заказать 25 штук F84A ! Отдельное спасибо Корабельникову Е.А. за самоучитель, единственное пожелание по программатору PonyProg, не могли бы вы указать где какие напряжения, относительно минуса, должны быть у рабочего экземпляра и отчего они могут меняться , то есть человек собравший программатор, смог бы сразу определить где, какая неисправность присутствует и её сразу устранить!

DerSpiwak: Kimm пишет: Возможно я м-ры спалил случайно! Сейчас думаю заказать 25 штук F84A ! Не спешите:) Сначала я бы разобрался с программатором. Понипрог все таки не такой уж сложный. Для проверки не обязательно использовать МК, можно найти где инбудь I2C память 24Cхх, если не продается в вашем городе. В старых телевизорах есть вроде. В общем найти ее можно. А 25 штук 84 это сколько стоить будет? Никогда бы не подумал, что кто то их такими партиями покупает

MAZ: Вряд ли спалили. 25 это круто. Ну хотя бы пару. Пару 628; 876А; 877А учится по ним очень удобно. Все они, как бы модернизированный 84 с наворотами. Я уже писал. Вот простейший программатор, отлично работает с icprog. Я с него начинал, когда спросить не у кого было. Все настроилось и прошилось. Вместо внутрисхемного разъема можно подключить панельку для 84. По назначению ножек. Собирается за час. Если нужны подробности, пишите.

Kimm: DerSpiwak пишет: Не спешите:) Сначала я бы разобрался с программатором. Чтобы разобраться с программатором - надо хотя бы знать где какие напряжения.... Я уже в тихаря намекнул :)))! Kimm пишет: Отдельное спасибо Корабельникову Е.А. за самоучитель, единственное пожелание по программатору PonyProg, не могли бы вы указать где какие напряжения, относительно минуса, должны быть у рабочего экземпляра и отчего они могут меняться Дело в том, что я уже намучался с программатором. Например:пропало напряжение на одном из стабилитронов КС147А. Заменил. Напряжение опять нету. Нажал в программе PonyProg на окошке "Устройство неисправно или отсутствует" команду "игнорировать" - напряжение появилось. Или непонятна была маркировка у стабилитронов КС147А. На одном сайте писалось ( к сожалению я его первым нашёл) анод со стороны серой полоски, а на другом со стороны белой полоски. Пришлось, последовательно с резистором, подключать к регулируемому блоку питания. В результате заметил, что при одном и том же сопротивлении и напряжении от БП, вольтметр, подсоединённый параллельно к стабилитрону, показывают разное напряжение. То есть получается, одни стабилитроны сильно ограничениют амплитуду выходных импульсов, а другие послабже. Может из-за этого и неработает программатор. DerSpiwak пишет: А 25 штук 84 это сколько стоить будет? Никогда бы не подумал, что кто то их такими партиями покупает Будет стоить 1670 р. не считая доставки. Я тоже хотел меньше, но так дешевле. (меньше 25, уже за 84 р., а так за 66 р. Ну на всякий случай, вдруг спалю ещё.) MAZ пишет: Вряд ли спалили. Да! Вполне возможно, мне пришли неисправные м-ры. MAZ пишет: 25 это круто. Ну хотя бы пару. Пару 628; 876А; 877А учится по ним очень удобно. Все они, как бы модернизированный 84 с наворотами. Мне бы хотелось сначала освоиться с 84, а потом, если всё пойдёт удачно, прыгать на другие серии. Ведь я только начинаю осваивать м-ры, и , по идее, большие навороты мне не нужны, так как врятли буду делать сложные программы. Хочу начать хотя бы с мигалок. За схему спасибо! Вся проблема найти стабилитроны! В моём, Богом забытом городе, один магазин радиодеталей, и то они распродают, что есть, а новые радиодетали не завозят. В свободное время зайду, куплю, если есть.

DerSpiwak: Kimm пишет: Чтобы разобраться с программатором - надо хотя бы знать где какие напряжения.... Я уже в тихаря намекнул :)))! Поищите в темах по программаторам где то было. Kimm пишет: Богом забытом городе, один магазин радиодеталей, и то они распродают, что есть, а новые радиодетали не завозят. В свободное время зайду, куплю, если есть. Ну то что там будут зарубежные стабилитроны на нужное вам напряжение, вероятнее чем кс147

Bigor: Kimm пишет: Мне бы хотелось сначала освоиться с 84, а потом, если всё пойдёт удачно, прыгать на другие серии. Очень правильная позиция. Kimm пишет: Дело в том, что я уже намучался с программатором. Например:пропало напряжение на одном из стабилитронов КС147А. Заменил. Напряжение опять нету. Нажал в программе PonyProg на окошке "Устройство неисправно или отсутствует" команду "игнорировать" - напряжение появилось. Все это делается на уровне не научного (или около научного) тыка. Надо продумать методику проверки. Первое, что Вам необходимо - это разобраться в схеме программатора (что, где, зачем). Затем проверить монтаж визуально. Подключить программатор к ПК и источнику питания. Проверить напряжение питания. Следует помнить, что напряжение питания поступает, как правило, на МК или МС памяти только при выполнении команд "чтение", "запись" и "верификация". Для дальнейшей проверки удобно пользоваться специальными программами для проверки устройств подключенных к СОМ-порту. Одна из них (не лучшая) находится Здесь: http://slil.ru/28937455

Evgeny Korabelnikov: …единственное пожелание по программатору PonyProg, не могли бы вы указать где какие напряжения, относительно минуса, должны быть у рабочего экземпляра и отчего они могут меняться , то есть человек собравший программатор, смог бы сразу определить где, какая неисправность присутствует и её сразу устранить! Если рассуждать в общем виде (в приложении к Uпит. = 5 в), то на стабилитроне, значение единичного уровня должно гарантированно превышать значение порогового уровеня 5-вольтовой логики (но не выше 5 в). В КМДП-логике, имеется довольно-таки широкая зона неопределенности (или неустойчивой работы). Если нужно обеспечить наилучшую помехоустойчивость, то для КМДП-логики, пороговый уровень составляет 70% от Uпит.ПИКа. То есть, если Uпит.ПИКа = 5 в., то для обеспечения максимально надёжной работы, значение единичного уровня входного (по отношению к ПИКу) сигнала должно быть не менее 3,5 в. Для ТТЛ/ТТЛШ-логики, пороговый уровень ниже, но это уже другой разговор. Литература: Цифровые интегральные микросхемы. Справочник. 2-е издание. Минск "Беларусь"-"Полымя", 1996 год, стр.289,290.

MAZ: Kimm пишет: Хочу начать хотя бы с мигалок. Так из 877, какая мигалка получится. 32 вывода портов. И практически тот же 84, если ничего не включать. Зато памяти больше.

igor: Человек только начал осваивать 84. И то не получается его запрограммировать. А ему 877 предлагают. Надо же понимать человека. Как он с таким "монстром" обращаться будет? Страшно однако. Пусть сначала перейдёт на ТЫ с 84. Тем более 25 штук заказал. А когда портов будет не хватать, или чего другого, то он сам, без советов со стороны, возьмётся за 28 и 40-ногие.

MAZ: Так я на них и учился. На 876 и 877. Какие они монстры. О их "монстровых" качествах, начинающий даже не подозревает, если глубоко даташит, не читал. С битами конфигурации разобраться и вперед, тот же 84. Сразу программу написать на страницу, не реально. Ну и в чем тогда отличие? Потихоньку этих монстров начинает объезжать. Привыкая даже к их внешнему ввиду. Потом, если нужно, можно и ниже спустится к 84 и 628 или 629, 675. Это уже пройденный этап будет. Чисто советую из опыта, без претензий на истину.

Evgeny Korabelnikov: PS к предыдущему моему сообщению. Так как в данном случае, стабилитроны работают на нелинейных участках их ВАХ (см. повышенные номиналы токогасящих резисторов. Это чтобы не перегружать COM-порт), то можно перейти на стабилитроны с Uст. = 5,0…5,1 в. Это поднимет уровень единиц. Еще один способ: понижение Uпит.ПИКа до 4,5 в. (ниже не желательно) При этом, немного понизится и пороговый уровень. А можно и в комплексе. Uст. конкретного стабилитрона (намекаю на "расброс") проверяется так. "На коленке ваяется" простейший параметрический стабилизатор (резистор и стабилитрон). Номинал R подбирается так, чтобы выйти на линейный участок ВАХ стабилитрона (можно ориентироваться на минимальный ток стабилизации, указанный в справочнике, плюс пяток миллиампер). После этого, на стабилитроне, замеряется напряжение. Это и есть Uст. конкретного стабилитрона. "Таким макаром" можно "прогнать" любое количество стабилитронов, а затем продырявить бумажку и воткнуть их в эти дырки. А напротив пишется Uст. Получается удобно и полезно. Лично я, часто так делаю. Помучаешься один раз, но зато потом "всё как на ладони". А заодно и осознаётся то, что стабилитроны имеют довольно-таки приличные разбросы Uст (на счет "забугорных" врать не буду. Говорю о наших).

ОКТОГЕН: Kimm я вот начинал с 84А и не жалуюсь, выучил его и без проблем пересел на 876А, разницы то никакой в написании программы, сложность только в периферии которая по умолчанию отключена, за небольшим исключением (надо проинициализировать портА) 25 шт это ужжж много они вам надоедят быстро. они хороши только для знакомства с микроконтроллерами. А программатор я б посоветовал EXTRA-PIC и программу для программирования ICPROG105D программатор простой можно сделать за пару дней не спеша, и горя не знать с ним.

Photographer: Вы даже не представляете, как иногда (например мне) трудно пробить двойную стену непонимания. Не представляете, если не лезите в новые области знаний. С одной стороны не знаешь даже как спросить, а с другой - не знают на что ответить. Проблема может быть не в понимании (ума хватает), а в не знании простой вещи. О которой все умалчивают "по умолчанию". С этого начинается паника и ступор. Примеры, надеюсь, приводить не надо. Вспомните хотя бы детство (золотое время, когда все в первые). У вас нет проблем? У вас все получилось? На самом деле проблема не в ученике. Возможно, через несколько месяцев вы сами у него будете консультироваться. Проблема в нас, в том, что мы не можем дать однозначные рекомендации. Пусть и избыточные, ученик сам отсеит то что ему не нужно Какой смысл предлагать другие контроллеры, когда не получается "запустить" имеющийся и достаточно простой? Какой смысл предлагать другие программаторы, если начали делать один, простой, надежный, который у всех работает и даже у тех, кто не пишет программы и не знает толком электронику? Войдите в положение начинающего. Сразу замечу, любой JDM программатор по предложенным схемам работает сразу, без каких либо калибровок и настроек (если не так - поравьте). Микроконтроллер Pic16F84A оччень живуч и качество практически не зависит от партии выпуска (разве что купить быушные ). Практически у всех возникают такие проблемы: выбрали не тот COM порт (с проблемами настроек порта не сталкивался); проблема с виндовсом и конкретным компьютером т.е. под Вашу конфигурацию надо настроить программу программатора. Для icprog (я им пользуюсь, проще некуда) при первом запуске окно или Settings/Hardware или F3 - "Hardware Settings". В остальном все без проблем. Чтобы понять что у Вас не получается, опишите чтоВы сделали, что получилось и где споткнулись. Проверьте простые вещи: полярность конденсаторов, диодов и т.п.; зеркальность платы; зеркальность и порядок выводов микросхемы; зеркальность и порядок выводов разъема COM порта; работу порта предложенной Игорем Борисовичем ("Bigor") программой. Если все нормально, то программа должна увидеть и устройство и контроллер и хотя бы прочитать прошивку... если она там есть. Если прошивка защищена, то прочитаются нули. Если все стерто, то прочитается 3FFF или FF (готова к записи/прошивке).

Bigor: ОКТОГЕН пишет: А программатор я б посоветовал EXTRA-PIC и программу для программирования ICPROG105D программатор простой можно сделать за пару дней не спеша, и горя не знать с ним. Как я понял Kimm уже сделал программатор. Если я не ошибаюсь ПониПрог. Надо помочь ему довести его до ума. Ведь конструкция неоднократно проверенная. Не исключено, что при сборке очередного программатора возникнут очередные проблемы, а они возникнут. Мне думается, что метаться от одной конструкции программатора к другой похожей не стоит. Kimm, если Вы желаете запустить тот программатор, который Вы собрали, то для начала разберитесь как он работает по схеме. Мы Вам в этом можем помочь, но для этого нам надо знать по какой именно схеме он собран. И еще следует помнить, что программатор - это два в одном: "железо" (аппаратный контроллер) и программа (такой себе двуликий Янус). Не плохо было бы, если Вы проверили его работоспособность на компьютере у коллег или знакомых, где подключался и работал нормально подобный программатор. Полезно проверить также на Вашем ПК и ПО аналогичный, но рабочий на 100% программатор (взятый у коллег). Это надо для гарантии, что Ваше ПО установлено не криво.

Bigor: Photographer пишет: Сразу замечу, любой JDM программатор по предложенным схемам работает сразу, без каких либо калибровок и настроек (если не так - поравьте). Это иногда не так. Может потребоваться, хотя и не всегда, установка специального драйвера, выставление задержек, "прописка программы" в операционной системе и т.п.

Photographer: Я имел ввиду железо. А про операционку Photographer пишет: проблема с виндовсом и конкретным компьютером т.е. под Вашу конфигурацию надо настроить программу программатора. Так что в этом мы не противоречим друг другу. Вспомнил "железную" проблемку. На ноутбуках (которых я в руках не держал ) на COM порте пониженное напряжение.... говорят порядка пяти вольт?

Bigor: Photographer пишет: Я имел ввиду железо.. Я об этом догадывался. Просто уточнил для Kimm. Photographer пишет: Так что в этом мы не противоречим друг другу. Абсолютно с этим согласен.

Kimm: Evgeny Korabelnikov пишет: Еще один способ: понижение Uпит.ПИКа до 4,5 в. (ниже не желательно) При этом, немного понизится и пороговый уровень. Очень ценная информация. Думаю надо попробывать! Спасибо! ОКТОГЕН пишет: программатор простой можно сделать за пару дней не спеша, и горя не знать с ним. Если есть все детали, то наверняка "да", а иначе много затрат и хлопот. Вот например: при создании программатора PonyProg - я неделю искал детали (даже пришлось ехать в другой город - Казань), неделю где-то мучался с печатной платой ( травил медном купоросе,что очень долго, чуть передержишь дорожки разъедает. В общем только 3-я печатная плата оказалась более-менее нормальной). Photographer пишет: выбрали не тот COM порт Тест проверка - Ок! ( я читал, что специально замыкают 6 т 7 контакт сом порта для того чтобы программа знала какой порт используется). Photographer пишет: проблема с виндовсом и конкретным компьютером т.е. под Вашу конфигурацию надо настроить программу программатора. У меня два компьютера XP и '95. На обоих одна и таже ошибка: Устройство отсутствует или неисправно. Photographer пишет: Проверьте простые вещи: полярность конденсаторов, диодов и т.п.; зеркальность платы; зеркальность и порядок выводов микросхемы; зеркальность и порядок выводов разъема COM порта; работу порта предложенной Игорем Борисовичем ("Bigor") программой. Хорошо проверю. Но скорей всего дело в стабилитронах, т.е. слишком сильно ограничивают амплитуду напряжения. Самое простое ,как написал Корабельников Е.А., это понизить напряжение питания Пика до 4.5 В. Я так решил потому как, при нажатии команды "Игнорировать", напряжение на различных деталях (если так можно выразиться) начинают прыгать, но Пик не может видать отличить 0 от 1. Bigor пишет: Kimm, если Вы желаете запустить тот программатор, который Вы собрали, то для начала разберитесь как он работает по схеме. Мы Вам в этом можем помочь, но для этого нам надо знать по какой именно схеме он собран http://www.pcports.ru/articles/pic4.php собран по этой схеме. Разобраться попытаюсь. Но по идее там ничего нет сложного. Подаётся питание(ножки 5,14) и 12 в (ножка 4), чтобы пик перешёл в режим программирования ( у меня на стабилитроне Д814 Д - 12.2 В), а затем подаются импульсы низкого (0) и высокого напряжения (1) на ножки 12.13. (ну или типа того). Bigor пишет: Не плохо было бы, если Вы проверили его работоспособность на компьютере у коллег или знакомых, где подключался и работал нормально подобный программатор. Полезно проверить также на Вашем ПК и ПО аналогичный, но рабочий на 100% программатор (взятый у коллег). Это надо для гарантии, что Ваше ПО установлено не криво. Я с вами согласен, было бы не плохо. Но к сожалению ни одного знакомого, который бы занимался микроконтроллерами нету.(ну и соответственно программатора тоже нету). Но, по идее (как я уже писал) у меня два компьютера, и у обоих одинаковая ошибка. Наверняка (опять склоняюсь к этому) виноваты стабилитроны :).

igor: Я не знаю какой программатор обсуждается сейчас. Но если речь идёт о PONY-PROG из самоучителя, то надо бы увеличить напряжение на выходе стабилизатора до 5,4 - 5,6 вольт. Сделать это можно включением в разрыв средней ноги пяти вольтового стабилизатора и земли, резистора 30 - 60 Ом. Резистор подбирается до получения нужного напряжения.

Evgeny Korabelnikov: неделю где-то мучался с печатной платой ( травил медном купоросе,что очень долго, чуть передержишь дорожки разъедает. В общем только 3-я печатная плата оказалась более-менее нормальной). Навесной монтаж и все дела. Я сделал именно так ("дёшево и сердито"). Лет шесть работает без проблем. Шутка: "Всё гениальное просто, сказала амёба".

Bigor: Kimm пишет: Но к сожалению ни одного знакомого, который бы занимался микроконтроллерами нету.(ну и соответственно программатора тоже нету). ПониПрог работает также с микросхемами памяти, а значит его можно поискать у радиомехаников в радиотелевизионных ателье и в сервисных центрах. Думаю даже в маленьких городках можно найти несколько радиомехаников с ПониПрогом. Kimm пишет: у меня на стабилитроне Д814 Д - 12.2 В В моей практике был случай, когда Пони не писал ПИК при 12.3 В. Включил последовательно со стабилитроном кремневый диод, напряжение поднялось где-то до 12.8 В и все пошло как по маслу, но до этого надо запустить Пони в режиме чтения. Кстати, в Пони лучше использовать стабилитроны не на 4,7 В, а на 5,1 В. Схему по Вашей ссылке посмотрел. Ключи VT1 и VT2 открываться по команде "Запись" (высокий уровень на 3/Х1), а VT3 - только в паузу. При выполнении любой из команд "Чтение", "Запись" и "Верификация" он должен быть заперт (на 4Х1 низкий потенциал). Кстати, не напутали Вы случайно что-либо с разъемами? В позиции Х1 должен стоять разъем DB9 (мама), т.е. с гнездами.

MAZ: Kimm пишет: травил медном купоросе,что очень долго, чуть передержишь дорожки разъедает Почти всю жизнь травлю медным купоросом. Раньше хлорное железа было дефицит. Потом не понравилось, много условий, а качество одинаковое. Могу вытравить за 15 минут, могу за сутки. Все зависит от задачи. Если дорожки разъедает, значит не проутюжили. Я травлю "по быстрому" температура раствора 80 градусов, с перемешиванием, нормально. Еще надо уточнить, а как приготовлен раствор?

Kimm: igor пишет: Я не знаю какой программатор обсуждается сейчас. Но если речь идёт о PONY-PROG из самоучителя, то надо бы увеличить напряжение на выходе стабилизатора до 5,4 - 5,6 вольт. Сделать это можно включением в разрыв средней ноги пяти вольтового стабилизатора и земли, резистора 30 - 60 Ом. Резистор подбирается до получения нужного напряжения. А для чего эта операция? Evgeny Korabelnikov пишет: Навесной монтаж и все дела. Я сделал именно так ("дёшево и сердито"). Лет шесть работает без проблем. Шутка: "Всё гениальное просто, сказала амёба". Я тоже думал о навесном монтаже, но смутило то, что много деталей и проводов. Печатная плата намного привлекательнее. Bigor пишет: В моей практике был случай, когда Пони не писал ПИК при 12.3 В. Включил последовательно со стабилитроном кремневый диод, напряжение поднялось где-то до 12.8 В и все пошло как по маслу, но до этого надо запустить Пони в режиме чтения. Интересно Bigor, как вы догадались, что необходимо поднять напряжение до 12.8 ! Bigor пишет: Кстати, не напутали Вы случайно что-либо с разъемами? В позиции Х1 должен стоять разъем DB9 (мама), т.е. с гнездами. Да нет! На разъёме прямо пронумерованы контакты. Транзисторные ключи постараюсь проверить. MAZ пишет: Еще надо уточнить, а как приготовлен раствор? Раствор приготовлен 1:3 (Купорос/Соль). MAZ ! Я нашёл все детали программатора, схему которого ты дал, кроме стабилитрона на 5.1 В.

MAZ: Раствор 2:4 (столовая ложка) не более 0,5л, стабилитрон КС133А, у меня нормально работал.

igor: Kimm пишет: А для чего эта операция? Это как вариант. У меня по началу, были такие же как и у Вас проблемы. Поднял напряжение и всё заработало. Изготовление и настройка данного программатора очень хорошо расписаны в "Самоучителе" в папке "Obsluga".

Kimm: MAZ пишет: стабилитрон КС133А, у меня нормально работал. MAZ! Посмотрел! Напряжение стабилизации КС133А - 3,3 В. Как вы считаете, можно ли поставить КС147А, с напряжением стабилизации 4,7 В?

Bigor: Kimm пишет: Интересно Bigor, как вы догадались, что необходимо поднять напряжение до 12.8 ! У меня с сотоварищами было ООО под названием "Легион" и среди прочего мы изготавливали ПониПроги "заточенные" под МС памяти для предприятий "Бытрадиотехники" Украины и им подобным. Эти программаторы для уменьшения цены массово делались без адаптеров для МК, но штук 15 из них по просьбам заказчиков изготавливались с полным набором адаптеров. Вот тогда в одном из программаторов возникла эта проблема. Тогда мы и выяснили, что Пони устойчиво записывает пики при 12.5 В и выше. Больше 13,3 В подавать не пробовал. Kimm пишет: Раствор приготовлен 1:3 (Купорос/Соль). MAZ дал Вам проверенный совет: отношение Купорос/Соль оптимально 1:2 (или что тоже самое 2:4), а не 1:3. Правда, я стараюсь делать концентрированный раствор, для этого добавляю воду (горячую 80 град.) постепенно, стараясь растворить всю смесь соль-купорос в минимальном количестве воды.

MAZ: Kimm пишет: можно ли поставить КС147А, с напряжением стабилизации 4,7 В? Конечно можно. Насчет купороса, добавлю. Грею чайник до кипения. 2/4 перемешиваю в металлической эмалированной миски. Заливаю водой, чтобы плата была накрыта водой, перемешиваю. Цвет раствора, темно зеленный. Потом кладу плату в миску. Подождал пять минут, вытащил плату, промыл, миску на слабый огонь, плату в раствор. Покачивая плату травим, пошел пар на раствором, выключаем. Через 10 минут с покачиванием плата готова. Если очень тонкие дорожки, по меньше качания и температуры. Вот результат по этой "технологии" Вот уже собранно. На мой взгляд, нормально.

Kimm: MAZ пишет: Вот уже собранно. На мой взгляд, нормально. Да уж! Неплохо! ( я бы так не смог сделать). MAZ! Напишите пожалуйста! Конденсаторы на схеме С1 и С2 - одинаковой ёмкости 100 нанофарад, или нет?

igor: MAZ пишет: На мой взгляд, нормально. Настоятельно рекомендую исключить из процесса производства зачистку платы наждачкой. Для обезжиривания, я применяю нашатырный спирт. После него, тонер прилипает намертво. После травления тонер снимаю ацетоном. Если нужно зачистить дорожки, то - стирательная резинка(ластик).

MAZ: Нет, верхний 0,1 -0,01. Нижний в районе 100мкф. Разброс большой. Что под рукой. Я уже давно не зачищаю платы. Нашел универсальное средство. Ура современной химии. Доместос. Капнул, протел им плату. Потом смыл водой, руками не трогать. Легкое травление и обезжиривание, все в одном флаконе. Если вдруг тонер, где то не прилип, маленький брачок. Очень удобно подкрасить фломастером для маркировки СD дисков. Очень тоненькое перо. Температуру держит. Смывается легко растворителем. Kimm пишет: я бы так не смог сделать Это Вы зря. Тут главное практика и опыт, немного аккуратности и терпения. Кстати эти платы делались для тестирования, сильно не старался.

Kimm: igor пишет: Для обезжиривания, я применяю нашатырный спирт. После него, тонер прилипает намертво. igor! Спасибо большое! Это такая же ценная информация (а то я намучался по 10 раз прижигать утюгом тонер к плате), как и эта: после травления и зачистки дорожек, плату надо обработать глицерином (из аптеки). Тогда припой с легкостью прилипает к дорожкам.

Rimsky: Kimm пишет: после травления и зачистки дорожек, плату надо обработать глицерином (из аптеки после травления и зачистки дорожек, плату надо обработать спиртово-канифольным флюсом из магазина "радиотовары" или собственного производства (в место спирта можно использовать ацетон) Тогда припой с легкостью прилипает к дорожкам.

MAZ: Rimsky пишет: в место спирта можно использовать ацетон Правильно, спирт для других целей, лечебных.

Rimsky: MAZ пишет: Правильно, спирт для других целей, лечебных. Если после глицерина и флюса не прилипает.....

Kimm: Ура! Заработало! Спасибо MAZ ! Схема твоего программатора заработала! Сначала пытался записать через ICprog! Не получилось! Выдавалась ошибка по адресу 0000h! Потом попробовал через Понипрог! И всё записалось ! Так же хочу поблагодарить всех кто помогал мне в этой теме! Без вас я бы копил деньги на Пикит 2!

Kimm: Rimsky пишет: плату надо обработать спиртово-канифольным флюсом из магазина "радиотовары" Наверняка глицерин дешевле! В районе 10-15 рублей!

MAZ: Kimm пишет: Выдавалась ошибка по адресу 0000h! Задержку можно увеличить, если все правильно настроенно. Мое субъективное мнение, ICprog, намного удобней. Даже декомпиляция есть для среднего семейства. А деньги все равно копи на пиккит. С ним еще проще и быстрее + отладчик.

Kimm: Будьте добры! Проверьте эту программу! Зашил в пик! Подключил питание к Пику с кварцем и конденсаторами! Подсоединил вольтметр к минусу и RB4 (ножка 10)! Напряжение 1.7! А по идее должно быть близко к нулю, а при включении светодиода пррыгнуть до 5 вольт! ; Y.asm ; Бегунок с регулятором времени свечения светодиодов. ; PIC16F84A Кварц 4 МГц. ;================================================================================================= LIST p=16F84A ; Установка типа микроконтроллера. __CONFIG 03FF1H ; Бит защиты выключен, WDT выключен, стандартный XT-генератор. ;================================================================================================= ; Определение положения регистров специального назначения. ;================================================================================================= status equ 03h ; Регистр выбора банка. trisB equ 06h ; Регистр выбора направления работы выводов порта B. portB equ 06h ; Pегистр управления защёлками порта B. intcon equ 0bh ; Регистр прерываний. optionR equ 81h ; Регистр подтягивающих резисторов. trisA equ 85h ; Регистр выбора направления работы выводов порта А. portA equ 05h ; Регистр управления защёлками порта А. ;================================================================================================= ; Определение названия и положения регистров общего назначения. ;================================================================================================= Y equ 10h A1 equ 11h A2 equ 12h A3 equ 13h A4 equ 14h B1 equ 21h B2 equ 22h B3 equ 23h B4 equ 24h ; Определения места размещения результатов операций. F equ 1 ; Результат направить в регистр ;================================================================================================= org 0 ; Начать выполнение программы с адреса 0 PC. goto Start ; Переход в подпрограмму Start. ; Текст рабочей части программы ;Установка направления работы RB0 - на выход Start bcf intcon,7 ; Запретить все прерывания. bsf status,5 ; Перейти в 1-й банк (установить в 1 5-й бит регистр Status). movlw .0 ; Записать в аккумулятор W константу 0. movwf trisA ; Записать константу "0" в регистра trisA ( все выводы регистра trisA работают на выход). bcf optionR,7 ; Включить подтягивающие резисторы порта Б. movlw .3 ; Записать в аккумулятор константу - 3. movwf trisB ; Скопировать константу 3 из аккумулятора в регистр TrisB. bcf status,5 ; Перейти в 0-й банк (установить в 0 5-й бит регистра status. ;------------------------------------------------------------------------------------------------- ; Записи констант в регистры общего назначения. movlw .25 ; Записать константу .2 в аккумулятор W movwf A4 ; Скопировать из W в регистр А1 константу .2 movlw .25 ; Записать константу .2 в аккумулятор W movwf A3 ; Скопировать из W в регистр А2 константу .2 movlw .25 ; Записать константу .2 в аккумулятор W movwf A2 ; Скопировать из W в регистр А3 константу .2 movlw .25 ; Записать константу .2 в аккумулятор W movwf A1 ; Скопировать из W в регистр А4 константу .2 ; Проверка флага нулевого результата. ; bcf status,2 ; Установить второй бит регистра Status в "0". (Сбросить флаг нулевого результата). ; sublw .2 ; Вычесть из аккумулятора W константу .2 ; Включение и выключение светодиодов. V bsf portB,2 ; установить 1 во второй бит регистра порта Б (зажечь первый светодиод на выводе RB2). call X1 ; условный переход в подпрограмму Х. bcf portB,2 ; установить 0 во второй бит регистра порта Б (потушить первый светодиод (RB2)). bsf portB,3 ; установить 1 в третий бит регистра порта Б (зажечь второй светодиод(RB3)). call X1 ; Условный переход в подпрограмму X bcf portB,3 ; Установить 0 в третий бит регистра Порт Б (потущить второй светодиод(RB3)). bsf portB,4 ; уст-ть 1 на RB4 (зажечь третий светодиод(RB4)). call X1 ; условный переход в подпрограмму Х1 с записью адреса возврата в стек. bcf portB,4 ; потушить третий светодиод. bsf portB,5 ; установить 1 на 5-ом выводе(RB5)- Зажечь 4-ый светодиод. call X1 ; условный переход в подпрограмму Х1 bcf portB,5 ; тушим 4-ый светодиод bsf portB,6 ; установить 1 на выводе RB6 (зажечь пятый светодиод) call X1 ; условный переход в подпрограмму Х1 bcf portB,6 ; потушить пятый светодиод. bsf portB,7 ; установить 1 на выводе RB7 (зажечь шестой светодиод) call X1 ; условный переход в подпрограмму Х1 bcf portB,7 ; потушить шестой светодиод. bsf portA,0 ; Зажечь седьмой светодиод. ( подать напряжение на вывод RA0) - установить нулевой бит регистра портаА в "1". call X1 ; условный переход в подпрограмму Х1. bcf portA,0 ; установить в "0" RA0. Потушить седьмой светодиод. Установить в "0" RA0. bsf portA,1 ; Зажечь восьмой светодиод. ( подать напряжение на вывод RA1) - установить первый бит регистра портаА в "1". call X1 ; условный переход в подпрограмму Х1. bcf portA,1 ; установить в "0" RA1. Потушить восьмой светодиод. Установить в "0" RA1. bsf portA,2 ; Зажечь девятый светодиод. ( подать напряжение на вывод RA2) - установить второй бит регистра портаА в "1". call X1 ; условный переход в подпрограмму Х1. bcf portA,2 ; установить в "0" RA2. Потушить девятый светодиод. Установить в "0" RA2. bsf portA,3 ; Зажечь десятый светодиод. ( подать напряжение на вывод RA3) - установить третий бит регистра портаА в "1". call X1 ; условный переход в подпрограмму Х1. bcf portA,3 ; установить в "0" RA3. Потушить девятый светодиод. Установить в "0" RA3. bsf portA,4 ; Зажечь одиннадцатый светодиод. ( подать напряжение на вывод RA4) - установить четвёртый бит регистра портаА в "1". call X1 ; условный переход в подпрограмму Х1. bcf portA,4 ; установить в "0" RA4. Потушить одиннадцатый светодиод. Установить в "0" RA4. goto V ; Безусловный переход в подпрограмму V. goto Start ; Безусловный переход в подпрограмму Start. X1 movwf A4 ; Скопировать из W в регистр А1 константу .2 K4 movwf A3 ; Скопировать из W в регистр А2 константу .2 K3 movwf A2 ; Скопировать из W в регистр А3 константу .2 K2 movwf A1 ; Скопировать из W в регистр А4 константу .2 nop ; Пустой машинный цикл. ; Декрементовый 4-х разрядный счётчик. K1 decfsz A1,F ; (Команда ветвления). Декремент (-1) содержимого регистра А1, с сохранением результата в этом же регистре. goto K1 ; Переход в подпрограмму К1. btfss portB,0 ; (команда ветвления). Если нулевой бит регистра ПортБ равен "0" , то выполняется следующая команда, а если равен "1" , то следующая комнада не выполняется,(вместо неё nop), и выполняется последующая команда. goto E ; Безусловный переход в подпрограмму Е. call W ; Условный переход в подпрограмму W. btfsc portB,1 ; Если первый бит регистра Порта Б равен "1", то выполняется следующая команда, а если равен "0" , то следующая команда не выполняется, а выполняется последующая команда. call W1 ; Условный переход в подпрограмму W1. (с записью адреса в стек) E decfsz A2,F ; (Команда ветвления). Декремент (-1) содержимого регистра А2, с сохранением результата в этом же регистре. goto K2 ; Переход в подпрограмму К2. decfsz A3,F ; (Команда ветвления). Декремент (-1) содержимого регистра А3, с сохранением результата в этом же регистре. goto K3 ; Переход в подпрограмму К3. decfsz A4,F ; (Команда ветвления). Декремент (-1) содержимого регистра А4, с сохранением резульатата в этом же регистре. goto K4 ; Переход в подпрограмму К4. Return ; Команда возвращения (адрес берётся из стека). W addlw .1 ; Сложить содержимое аккумулятора W и константы .10 Return ; Команда возвращения (адрес берётся из стека). W1 sublw .1 ; Вычесть из аккумулятора W константу .1 Return ; Команда возвращения (адрес берётся из стека) end ; Директива конца программы. (Всегда последняя снизу).

Kimm: ХМ! Почему-то в скрытом тексте не соблюдаются пробелы!

MAZ: PORTB у Вас работает на вход. Вы его не настроили на выход.

Rimsky: Kimm пишет: Наверняка глицерин дешевле! В районе 10-15 рублей!

Kimm: MAZ пишет: PORTB у Вас работает на вход. Вы его не настроили на выход. Вроде же настроил: movlw .3 ; Записать в аккумулятор константу - 3. movwf trisB ; Скопировать константу 3 из аккумулятора в регистр TrisB. То есть в trisB записалось число 0000 0011, что определило Rb0 и Rb1 работать на вход (там стоят 1), а Rb2 по Rb7 (там стоят 0) должны работать на выход! По самоучителю так!!! (если нетрудно растолкуйте как правильно надо)!

MAZ: Да, извиняюсь, проглядел. Все очень непривычно. Особенно " Декрементовый 4-х разрядный счётчик." Не догнал. Еще есть такая неточность, Вы назвали метку W. А еще впрограмме есть W - аккумулятор. Будет некорректность, хотя ошибки как таковой нет. Компилятор знает W. Покопаюсь вечерком. А что хотели получить от этой программы?

MAZ: Нет сил. Я понимаю, что Вы учитесь, поэтому и тяжело мне. Понять не могу, что хотите. И методы очень неоптимальные, если не сказать странные. Подправил немного в привычный вид. Подключил файл стандартный для 84. Мне надо понять что Вы хотите получить. Думаю что все можно сделать намного проще. ; Y.asm ; Бегунок с регулятором времени свечения светодиодов. ; PIC16F84A Кварц 4 МГц. ;================================================================================================= LIST p=16F84A ; Установка типа микроконтроллера. include "P16F84a.inc" __CONFIG 03FF1H ; Бит защиты выключен, WDT выключен, стандартный XT-генератор. ;================================================================================================= ; Определение названия и положения регистров общего назначения. ;================================================================================================= Y equ 10h A1 equ 11h A2 equ 12h A3 equ 13h A4 equ 14h B1 equ 21h B2 equ 22h B3 equ 23h B4 equ 24h ;================================================================================================= org 0 ; Начать выполнение программы с адреса 0 PC. goto Start ; Переход в подпрограмму Start. ; Текст рабочей части программы ;Установка направления работы RB0 - на выход Start clrf PORTB clrf PORTA bsf STATUS,RP0 ; Перейти в 1-й банк (установить в 1 5-й бит регистр Status). clrf TRISA ; Записать константу "0" в регистра trisA ( все выводы регистра trisA работают на выход). clrf OPTION_REG ; Включить подтягивающие резисторы порта Б. movlw b'00000011' ; Записать в аккумулятор константу - 3. movwf TRISB ; Скопировать константу 3 из аккумулятора в регистр TrisB. bcf STATUS,RP0 ; Перейти в 0-й банк (установить в 0 5-й бит регистра status. ;------------------------------------------------------------------------------------------------- ; Записи констант в регистры общего назначения. movlw .25 ; Записать константу .2 в аккумулятор W movwf A4 ; Скопировать из W в регистр А1 константу .2 movwf A3 ; Скопировать из W в регистр А2 константу .2 movwf A2 ; Скопировать из W в регистр А3 константу .2 movwf A1 ; Скопировать из W в регистр А4 константу .2 ; Проверка флага нулевого результата. ; bcf status,2 ; Установить второй бит регистра Status в "0". (Сбросить флаг нулевого результата). ; sublw .2 ; Вычесть из аккумулятора W константу .2 ; Включение и выключение светодиодов. V bsf PORTB,2 ; установить 1 во второй бит регистра порта Б (зажечь первый светодиод на выводе RB2). call X1 ; условный переход в подпрограмму Х. bcf PORTB,2 ; установить 0 во второй бит регистра порта Б (потушить первый светодиод (RB2)). bsf PORTB,3 ; установить 1 в третий бит регистра порта Б (зажечь второй светодиод(RB3)). call X1 ; Условный переход в подпрограмму X bcf PORTB,3 ; Установить 0 в третий бит регистра Порт Б (потущить второй светодиод(RB3)). bsf PORTB,4 ; уст-ть 1 на RB4 (зажечь третий светодиод(RB4)). call X1 ; условный переход в подпрограмму Х1 с записью адреса возврата в стек. bcf PORTB,4 ; потушить третий светодиод. bsf PORTB,5 ; установить 1 на 5-ом выводе(RB5)- Зажечь 4-ый светодиод. call X1 ; условный переход в подпрограмму Х1 bcf PORTB,5 ; тушим 4-ый светодиод bsf PORTB,6 ; установить 1 на выводе RB6 (зажечь пятый светодиод) call X1 ; условный переход в подпрограмму Х1 bcf PORTB,6 ; потушить пятый светодиод. bsf PORTB,7 ; установить 1 на выводе RB7 (зажечь шестой светодиод) call X1 ; условный переход в подпрограмму Х1 bcf PORTB,7 ; потушить шестой светодиод. bsf PORTA,0 ; Зажечь седьмой светодиод. ( подать напряжение на вывод RA0) - установить нулевой бит регистра портаА в "1". call X1 ; условный переход в подпрограмму Х1. bcf PORTA,0 ; установить в "0" RA0. Потушить седьмой светодиод. Установить в "0" RA0. bsf PORTA,1 ; Зажечь восьмой светодиод. ( подать напряжение на вывод RA1) - установить первый бит регистра портаА в "1". call X1 ; условный переход в подпрограмму Х1. bcf PORTA,1 ; установить в "0" RA1. Потушить восьмой светодиод. Установить в "0" RA1. bsf PORTA,2 ; Зажечь девятый светодиод. ( подать напряжение на вывод RA2) - установить второй бит регистра портаА в "1". call X1 ; условный переход в подпрограмму Х1. bcf PORTA,2 ; установить в "0" RA2. Потушить девятый светодиод. Установить в "0" RA2. bsf PORTA,3 ; Зажечь десятый светодиод. ( подать напряжение на вывод RA3) - установить третий бит регистра портаА в "1". call X1 ; условный переход в подпрограмму Х1. bcf PORTA,3 ; установить в "0" RA3. Потушить девятый светодиод. Установить в "0" RA3. bsf PORTA,4 ; Зажечь одиннадцатый светодиод. ( подать напряжение на вывод RA4) - установить четвёртый бит регистра портаА в "1". call X1 ; условный переход в подпрограмму Х1. bcf PORTA,4 ; установить в "0" RA4. Потушить одиннадцатый светодиод. Установить в "0" RA4. goto V ; Безусловный переход в подпрограмму V. goto Start ; Безусловный переход в подпрограмму Start. X1 movwf A4 ; Скопировать из W в регистр А1 константу .2 K4 movwf A3 ; Скопировать из W в регистр А2 константу .2 K3 movwf A2 ; Скопировать из W в регистр А3 константу .2 K2 movwf A1 ; Скопировать из W в регистр А4 константу .2 nop ; Пустой машинный цикл. ; Декрементовый 4-х разрядный счётчик. K1 decfsz A1 ; (Команда ветвления). Декремент (-1) содержимого регистра А1, с сохранением результата в этом же регистре. goto K1 ; Переход в подпрограмму К1. btfss PORTB,0 ; (команда ветвления). Если нулевой бит регистра ПортБ равен "0" , то выполняется следующая команда, а если равен "1" , то следующая комнада не выполняется,(вместо неё nop), и выполняется последующая команда. goto E ; Безусловный переход в подпрограмму Е. call JJ ; Условный переход в подпрограмму W. btfsc PORTB,1 ; Если первый бит регистра Порта Б равен "1", то выполняется следующая команда, а если равен "0" , то следующая команда не выполняется, а выполняется последующая команда. call W1 ; Условный переход в подпрограмму W1. (с записью адреса в стек) E decfsz A2 ; (Команда ветвления). Декремент (-1) содержимого регистра А2, с сохранением результата в этом же регистре. goto K2 ; Переход в подпрограмму К2. decfsz A3 ; (Команда ветвления). Декремент (-1) содержимого регистра А3, с сохранением результата в этом же регистре. goto K3 ; Переход в подпрограмму К3. decfsz A4 ; (Команда ветвления). Декремент (-1) содержимого регистра А4, с сохранением резульатата в этом же регистре. goto K4 ; Переход в подпрограмму К4. Return ; Команда возвращения (адрес берётся из стека). JJ addlw .1 ; Сложить содержимое аккумулятора W и константы .10 Return ; Команда возвращения (адрес берётся из стека). W1 sublw .1 ; Вычесть из аккумулятора W константу .1 Return ; Команда возвращения (адрес берётся из стека) end ; Директива конца программы. (Всегда последняя снизу).

Kimm: MAZ пишет: Нет сил. Я понимаю, что Вы учитесь, поэтому и тяжело мне. Понять не могу, что хотите. Я хотел сделать бегущие огни с возможностью регулировки скорости вкл/выкл светодиодов. MAZ ответьте пожалуйста на пару вопросов: 1) Посмотрел программу multi из самоучителя. В тексте программы нет команды "clr". Работу порта Б сделана через запись в W числа, а из W в регистр trisB. (я тоже так сделал)! Почему же не работает? Ведь по теории (т.е. по самоучителю) всё верно! 2) Обязательна ли команда include ? (Ведь в той же программе multi её нет). 3) С схеме автоколебательного мультивибратора ( на стр. 44 самоучителя) с +5 вольт идёт резистор R1 на вывод 4 (MCLR)! Он обязателен? И для чего он нужен? Понимаю! Программа сложновата! Но, так как я её делал на основе программы multi, то думал проблем с ней не возникнет! Ан нет! Думаю надо попробовать написать программки ещё проще, типа светодиод засветился, через секунду потух....

DerSpiwak: Я не MAZ, но позволю себе высказаться Kimm пишет: Работу порта Б сделана через запись в W числа, а из W в регистр trisB. (я тоже так сделал)! Почему же не работает? Ведь по теории (т.е. по самоучителю) всё верно! А вы уверены, что проблема в этом? Kimm пишет: Обязательна ли команда include ? (Ведь в той же программе multi её нет). Нет не обязательна, просто с ней намного удобнее. Kimm пишет: с +5 вольт идёт резистор R1 на вывод 4 (MCLR)! Он обязателен? И для чего он нужен? MCLR это сброс микроконтроллера, если не подтянуть его к +5В. то программа МК не будет выполняться. Kimm пишет: Думаю надо попробовать написать программки ещё проще, типа светодиод засветился, через секунду потух.... Думаю, это хорошая мысль.

MAZ: Вы напишите, что хотите. Я просто не понимаю алгоритм. Если возможность регулировки, вижу через входы, но надо как-то и "дребезг" кнопки погасить хотя бы. Насчет MCLR, DerSpiwak правильно сказал, это главное, вы же схему не дали. Поморгайте пока просто светодиодами, а потом уже кнопку подключайте с не большой задержкой. include (подключить) подключать файл в котором прописаны производителем все регистры специального назначения и биты. Т.е. что Вы прописали в начале: STATUS: TRISB.... не надо делать, уже все сделано. Что удобно. КЕА писал для начинающих, поэтому все максимально упростил. Хотя наверно и наоборот получилось, если разобраться. Совет, делайте как можно проще и наглядней, пусть много повторений. -Включить 1 светодиод -подождать 0,5 сек -выключть 1 светодиод -включить 2 светодиод -подождать 0,5 сек -выключить 2 светодиод -включить 3 светодиод и т.д. Чем не бегущие огни? Проще вот так сначала расписать, потом уже программа. Как кнопка опрашивается: -проверить вход -есть "единица" не нажата , выполняем этот вариант -есть "ноль" (нажата) -подождать 20мс проверить вход -есть "ноль" (нажата) да кнопка нажата, выполняем задачу кнопки. -есть "единица" не нажата просто помеха.

Kimm: DerSpiwak пишет: MCLR это сброс микроконтроллера, если не подтянуть его к +5В. то программа МК не будет выполняться. Спасибо! Но почему (к сожалению) в самоучителе нет предупреждения об этом? Наверное этот вопрос Корабельникову Е.А. (вернее не вопрос , а просьба добавить эту ценную информацию в самоучитель!так сказать для будущих путешественников по самоучителю! )

Kimm: MAZ пишет: КЕА писал для начинающих, поэтому все максимально упростил. Хотя наверно и наоборот получилось, если разобраться. Согласен с вами :)!

MAZ: насчет MCLR, у КЕА есть. Наверно не внимательно читали.

DerSpiwak: Kimm пишет: Спасибо! Но почему (к сожалению) в самоучителе нет предупреждения об этом? Да есть где то, поищите. А вообще самоучитель самоучителем, но даташит все же надо пробовать читать, иначе как вы собираетесь изучать новый материал? Любая книга это мнение автора, чем автор опытнее, тем меньше в книге ошибок и заблуждений, но они все равно иногда встречаются, так что как говорится доверяй, но проверяй

Evgeny Korabelnikov: Понимаю! Программа сложновата! Но, так как я её делал на основе программы multi, то думал проблем с ней не возникнет! Ан нет! Ильдар, сравнение с multi не корректно. В ней все нормально и по делу. Ищите "бяку" в ПП Вашей фиксированной задержки, которая именно Ваша. Проверил ее работу в симуляторе. Ждал до 2-х секунд (MPLAB v5.70.40, использовал его очень тормозной секундомер. Точка остановки - команда return), а потом надоело (извините, но со временем напряжёнка). Короче, рабочая точка программы, попав в ПП X1, "зависает" в ней. Полагаю, что это связано с нарушением принципа фиксированной задержки: предустановка времязадающих констант должна производится не в ее внутреннем цикле, а непосредственно на "влёте" в него, (но можно и ранее), а иначе возможно "бесконечное" (условно) возобновление ("перезапуск") задержки. В результате нарушения этого принципа, вполне может "родиться" циклически возобновляемая (во внутреннем цикле. За счет "паразитной" предустановки времязадающих констант) задержка, которая никогда (условно) не закончится (глюк). Полагаю, что в данном случае происходит именно это. При этом, "железяка мертвеет" ("Гитлер капут") Дальше "не рыл" (это "на вскидку").

Kimm: Постараюсь найти эту инфу! Просто в самоучителе на стр. 16 дан рисунок как подключать ПИК и кварц с конденсаторами, а резистора почему-то нету.!!!

Kimm: Evgeny Korabelnikov пишет: Ищите "бяку" в ПП Вашей фиксированной задержки, которая именно Ваша. По-моему там всё нормально! Я тоже замерял время, но только не от начало до конца, а от зажигания первого светодиода: "V bsf portB,2" до его погашения: "bcf portB,2". Получилось при константе .23 - время задержки самое близкое к секунде!(где-то 0,98). В ручном режиме я проверял заменив константы .23 (или 25) на константу .2! В MPlab всё прекрасно работает! Почему такой странный счётчик.? Потому что декремент РОН , равных нулю является .255! Что не даёт точно (по-моему) выставлять время ! Пришлось додуматься до такого варианта, при котором любой регистр общего назначения(учавствующий в счётчике) , обнулившись, декрементирует вышестоящий РОН, и при этом становится равным общей константе, заложенной в счётчик. Evgeny Korabelnikov пишет: Полагаю, что это связано с нарушением принципа фиксированной задержки: предустановка времязадающих констант должна производится не в ее внутреннем цикле, а непосредственно на "влёте" в него, (но можно и ранее), а иначе возможно "бесконечное" (условно) возобновление ("перезапуск") задержки Возможно! Но я специально изменил программу убрав из неё команды опроса клавиатуры и настроив все выводы порта Б на выход! Результат такой же! Думаю всё же не хватает резистора!

Evgeny Korabelnikov: Что удобно. КЕА писал для начинающих, поэтому все максимально упростил. Хотя наверно и наоборот получилось, если разобраться. "Системные подходы к тому-сему" испокон века были (и будут) очень "скользкими". Прекрасно это понимаю. Если кто-то сделает лучше, то я буду этому только рад, но пока очереди не вижу. Я не утверждаю, что моё "творение" совершенно, но в отличие от даташитов (и т.п.), в нём есть душа и мозги русского мужика, а заодно и какая-никакая, а система. Взгляд, из высшей математики, в арифметику (условно), почти всегда вызывает снисходительную улыбку, но она должна быть доброй. Это мой принцип. Спасибо! Но почему (к сожалению) в самоучителе нет предупреждения об этом? Наверное этот вопрос Корабельникову Е.А. (вернее не вопрос , а просьба добавить эту ценную информацию в самоучитель!так сказать для будущих путешественников по самоучителю! ) Эта и многая другая информация есть (а если нет, то будет), просто Вы не в курсе. Добавить-то можно (если уж добавлять, так полномасштабно), но после этого я "ноги протяну". В смысле дензнаков (и того, что с ними связано). К сожалению, так устроен мир. Открытая часть "Самоучителя…" - введение в курс дела, и не более того. Что-то типа моей версии "МК-азбуки" (мама мыла раму и т.п.). Далее - широчайший простор для деятельности. Заниматься этим или нет - личное дело. Кстати, Ильдар, почему, в профиле участника, Вы не указали своей фамилии? Просто чисто по-человечески интересно.

Evgeny Korabelnikov: Ильдар, сейчас еще раз проверю. С пристрастием.

Evgeny Korabelnikov: Программными средствами (без использования стимулов. У нас, это называется "уловками"), в симуляторе, проверил работу задержки, в приложении ко всем возможным управляющим комбинациям (имеются ввиду две кнопки. Кн. нажата – 0, отжата – 1). Получилось это: 1. Обе кнопки отжаты. В этом случае, раб. точка зависает в ПП задержки. В принципе, это нормально ("режим ожидания"). 2. Кн1 (RB0) нажата. В этом случае, опрос кнопки Кн.2 обходится, и выход из задержки происходит через 1,28 сек. (а точнее, через 1283221 мкс., считая от начала программы. Кварц 4 Мгц.). Это тоже нормально, так как возврат из задержки происходит. 3. Кн.1 отжата, КН2 (RB1) нажата. В этом случае, рабочая точка зависает в ПП задержки по ранее упомянутой мной причине, что совсем не нормально (свыше 2,5 сек. не отслеживал. "Терпелки" не хватило). Короче, толка от Кн.2 маловато. 4. Если одновременно нажаты Кн.1 и Кн.2, то см. пункт 2 (ориентация на Кн.1). Кроме этого, дело усугубляет отсутствие противодребезговых задержек (как по факту нажатия, так и по факту отжатия кнопок). С учетом довольно-таки "резвого" (по отношению к продолжительности "пачек дребезга") времени отработки внутренних циклов задержки, в которые "врезаны" проверки состояний кнопок, в данном случае, это может привести к работе программы, если так можно выразиться, по случайному "дребезг-закону" ("через пень колоду"). Рабочее действие, осуществляемое по факту нажатия кнопки, лучше заменить на рабочее действие, осуществляемое по факту отжатия кнопки. Это предполагает "плавающее пережидание" нажатия кнопки (всего 2 команды), ограниченное, с обеих сторон, противодребезговыми задержками (миллисекунд эдак по 50…100). Это в общем виде. Без учёта конкретных деталей. "Кнопочные дела" это совсем не "хухры-мухры", а посерьёзнее. "Шапками не закидаешь". Тот, кто в них "въедет" ("гибрид" безошибочного ветвления, "на фоне мерзопакостного дребезга"), поймёт многое. На первых порах, можно использовать классические, аппаратные, противодребезговые кнопки, собранные на логике И-НЕ или ИЛИ-НЕ, ну а далее, необходимо программно подсуетиться. Ильдар, на мой взгляд, примененная Вами стратегия "врезки", во внутренний цикл ПП задержки, "кнопочных проверок", неэффективна (особенно с учетом закольцовки на предустановку времязадающих констант), хотя, чем чёрт не шутит? А вдруг получится ("крылья не обрезаю" Упаси Бог)? Я первый "сниму шляпу". На мой взгляд, подобного рода "врезки" эффективны только в случаях "принудительного" выхода из "кнопочных" проверок, если кнопки не нажимаются, а на длительное время "зависать в кнопочных проверках" нельзя. Если нажимаются, то выход происходит до конца отработки задержки. Если не нажимаются, то выход происходит по факту окончания отработки задержки ("принудиловка"). Лично я, применяю такой "прибамбас" достаточно часто. Советую прислушаться к мнению Александра (MAZ). "Котлеты нужно отделить от мух" (это проявление моего уважения к "батяне-комбату" Лукашенко). Постараюсь найти эту инфу! Просто в самоучителе на стр. 16 дан рисунок как подключать ПИК и кварц с конденсаторами, а резистора почему-то нету.!!! Так это же только подключение кварца. Смотрите не на стр.16, а на стр.44. Думаю всё же не хватает резистора! Полагаю, что речь идет о подтяжке кнопок. Так подтяжка же порта В включена. Зачем еще внешний резистор параллелить? И направления работы выводов портов в норме. Полагаю, что причина ненормальности в другом. PS: на моем сайте можно скачать программы рассчета классических задержек Николая Марова или Петра Высочанского (на выбор). Задаёте время, жмёте на кнопку и получаете готовую ПП задержки.

Kimm: Evgeny Korabelnikov пишет: Кстати, Ильдар, почему, в профиле участника, Вы не указали своей фамилии? Просто чисто по-человечески интересно. Наверное насмотрелся криминала по телеку. Особенно после того случая, как бандит нашёл в соцсетях человека похожего на себя человека, потом его убил, и стал себя выдавать за того человека. А всего этого не было бы если бы человек не разместил своей информации в соцсети. Ну и на всякий случай! Evgeny Korabelnikov пишет: Полагаю, что речь идет о подтяжке кнопок. Так подтяжка же порта В включена. Зачем еще внешний резистор параллелить? И направления работы выводов портов в норме. Полагаю, что причина ненормальности в другом. Не! Я имею ввиду резистор от +5 В. к MCLR. Но только опять возникает вопрос - каков его номинал? В одном случае он 1- 10 кОм. во втором его вообще нету (в случае частотомера)! Насчёт опроса кнопок - я изменил программу. Теперь дребезг контактов не должен влиять на работу м-ра!

DerSpiwak: Kimm пишет: Не! Я имею ввиду резистор от +5 В. к MCLR. Но только опять возникает вопрос - каков его номинал? В одном случае он 1- 10 кОм. во втором его вообще нету (в случае частотомера)! Входной ток у вывода MCLR порядка 10мкА, поэтому не рекомендуется увеличивать номинал больше 50КОм. А меньше пожалуйста.

Bigor: Kimm пишет: Наверное насмотрелся криминала по телеку. Особенно после того случая, как бандит нашёл в соцсетях человека похожего на себя человека, потом его убил, и стал себя выдавать за того человека. А всего этого не было бы если бы человек не разместил своей информации в соцсети. Ну и на всякий случай! Это "клинка". С этим надо бороться самому и в телеящик смотреть поменьше, а к просмотренному относиться критичнее и не забивать себе голову ерундой.

Kimm: Второй раз "ура" в этой теме! Поставил резистор! И все зароботало! (По крайней мере вольтметр показывает на секунду +5 В.) DerSpiwak пишет: Входной ток у вывода MCLR порядка 10мкА, поэтому не рекомендуется увеличивать номинал больше 50КОм. А меньше пожалуйста. Поставил 4к3! Подсчитал ток: 0,0011 А! Многовато! Надо другой резистор поставить бы! Если поставить 10 кОМ! То получится ток: 0,0005 А! То же много! Посмотрел другие схемы! Там в пределах 5-10 кОм споротивление резистора! Может можно оставить 4к3?

Kimm: Bigor пишет: Это "клинка". С этим надо бороться самому и в телеящик смотреть поменьше, а к просмотренному относиться критичнее и не забивать себе голову ерундой. Наверное так! Но я думаю, что в нашей жизни надо быть осторожным! Хотя с другой стороны думаю если мне (например) суждено погибнуть от электричества, то так оно и случится! Как говорится чему быть, того не миновать!

DerSpiwak: Kimm пишет: Поставил 4к3! Подсчитал ток: 0,0011 А! Многовато! Надо другой резистор поставить бы! Нормально, ставьте любой до 10Ком и не заморачивайтесь.

Kimm: DerSpiwak пишет: Нормально, ставьте любой до 10Ком и не заморачивайтесь. Ок! Ещё раз спасибо всем кто помог мне справиться с трудностями программирования и подключения микроконтроллеров!



полная версия страницы