Форум » Программирование микроконтроллеров. » Проблема с PIC16F84A » Ответить

Проблема с PIC16F84A

yurnik: После записи программы"Multi"на PIC16F84A посредством самодельного адаптера AN589 и программы IC-Prog105d с настройками для Windows-XP реальная модель не работает,IC-Prog читает на микросхеме то,что и программировалось.Может тактовая частота компьютера 1,8ГГц влияет? Но программирование происходит как бы удачно.Генерация на OSC2 есть, а на RBO-ноль. С чего начать искать неисправность?

Ответов - 30

RW1ZK: Проблем быть не должно. Если программирование кристалла проходит без ошибок (т.е. IC-Prog не ругается), то и девайс должен работать. В этом случае тактовая частота процессора компьютера не играет никакой роли. На всякий случай выложите исходник или hex. Посмотрим.

yurnik: :020000040000FA :100000000128831600308600831220308C000610F1 :10001000000000008C0B0A281E308C000614000023 :0800200000008C0B11280128DF :02400E00F33F7E :00000001FF Использую RC-генератор

RW1ZK: Всё работает. [pre];**************************************************************** list p=16F84A #include <p16F84A.inc> __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _RC_OSC ;**************************************************************** Temp EQU 0CH ;**************************************************************** ORG 0x0000 goto INIT ;**************************************************************** INIT bsf STATUS, RP0 movlw .0 movwf TRISB bcf STATUS, RP0 movlw .32 movwf Temp bcf PORTB, 0 nop nop WR_0 decfsz Temp, f goto WR_0 movlw .30 movwf Temp bsf PORTB, 0 nop nop WR_1 decfsz Temp, f goto WR_1 goto INIT ;**************************************************************** END[/pre] 1. Подключите вывод RB0 через небольшую ёмкость ко входу УНЧ. Вы должны будете услышать звук частотой 5 кгц. 2. У Вас RC-генератор и какая получилась частота судить трудно (больше или меньше), поэтому, возможно Вы и наблюдаете на RB0 ноль. 3. Проконтролировать можно либо п.1, либо - осциллограф. Здесь - проект под Proteus.


yurnik: ;*********************************************************************************************** ; Multi.asm ; Автоколебательный мультивибратор. ; PIC16F84A RC-генерат ;=============================================================================================== LIST p=16F84A ; Установка типа микроконтроллера. __CONFIG 03FF3H ; Бит защиты выключен, WDT выключен, ; стандартный RC - генератор. ;=============================================================================================== ; Определение положения регистров специального назначения. ;=============================================================================================== Status equ 03h ; Регистр выбора банка. TrisB equ 06h ; Регистр выбора направления работы выводов порта В. PortB equ 06h ; Регистр управления защелками порта В. ;=============================================================================================== ; Определение названия и положения регистров общего назначения. ;=============================================================================================== Sec equ 0Ch ; Счетчик времени полупериода. ;=============================================================================================== ; Определение места размещения результатов операций. ;=============================================================================================== F equ 1 ; Результат направить в регистр. ;=============================================================================================== org 0 ; Начать выполнение программы с адреса 0 PC. goto Start ; Переход в ПП Start. ;*********************************************************************************************** ; Текст рабочей части программы. ;*********************************************************************************************** ; Установка направления работы RB0 - на выход. ;----------------------------------------------------------------------------------------------- Start bsf Status,5 ; Перейти в 1-й банк (установить в 1 5-й бит ; регистра Status). movlw .0 ; Записать константу 0 в аккумулятор (W). movwf TrisB ; Скопировать 0 из W в регистр TrisB. bcf Status,5 ; Перейти в 0-й банк (установить в 0 5-й бит ; регистра Status). ;----------------------------------------------------------------------------------------------- ; Определение времени полупериода (закладка константы в регистр Sec). ;----------------------------------------------------------------------------------------------- movlw .32 ; Записать в регистр W константу .32 movwf Sec ; Скопировать .32 из W в регистр Sec. ;----------------------------------------------------------------------------------------------- ; Формирование на выводе RB0 нулевого уровня. ;----------------------------------------------------------------------------------------------- bcf PortB,0 ; Установить на выходе защелки RB0 ноль. nop ; Калибровочный машинный цикл. nop ; -------------"-------------- Pause_1 decfsz Sec,F ; Декремент содержимого регистра Sec с помещением резуль- goto Pause_1 ; тата декремента в этот же регистр. ; Если этот результат не=0, то осуществляется переход ; в ПП Pause_1 ("закольцовка" в этой ПП). ; Если =0, то программа исполняется далее. ;----------------------------------------------------------------------------------------------- ; Определение времени полупериода (закладка константы в регистр Sec). ;----------------------------------------------------------------------------------------------- movlw .30 ; Записать в регистр W константу .30 movwf Sec ; Скопировать .30 из W в регистр Sec. ;----------------------------------------------------------------------------------------------- ; Формирование на выводе RB0 единичного уровня. ;----------------------------------------------------------------------------------------------- bsf PortB,0 ; Установить на выходе защелки RB0 единицу. nop ; То же самое, что и для нулевого уровня, nop ; только "закольцовка" происходит в ПП Pause_2. Pause_2 decfsz Sec,F ; ------------------"------------------- goto Pause_2 ; ------------------"------------------- goto Start ; Переход на новый полный цикл программы. ;*********************************************************************************************** end ; Директива конца программы (всегда последняя снизу). Мой исходник из самоучителя Корабельникова -Заменил __CONFIG 03FF3h В PROTEUS эта штука работает Частота у RC-ген около 3МГц Вернуться к кварцу?Можно ли быть уверенным в работе программатора? и считать контроллер исправным? Спасибо за ответы!

RW1ZK: Две программы одинаковы. Если Вы хотите получить то, что в программе у Корабельникова, то разумеется, нужно использовать кварц на 4 Мгц. yurnik пишет: Можно ли быть уверенным в работе программатора? и считать контроллер исправным? Если после верификации прошивки программа не выдаёт сообщение о ошибке, то контроллер исправный. На всякий случай даю Вам 2 хекса для проверки исправности контроллера. "Шедевр мысли" под №1 выдаст лог.1 на RB0, 2, 4, 6, а под №2 на RB1, 3, 5, 7.

yurnik: За хексы спасибо!Обязательно попробую.

mishandlen: Хоть я и радиолюбитель еще со школы и с компьютерами связан уже 20 лет, но никак не могу настроить программатор. Уже в пору головой об стену биться. Схема и печатная плата взята отсюда http://www.pcports.ru/articles/pic4.php. Первый вариант был на монтажной плате, не работал. Второй на печатной тоже не работал. Сейчас делаю третий тоже на печатной плате. Проблема заключается в следующем. С начала в программе PonyProg устройство не проходило тест "Тест ошибка". Но с этим разобрался, я использовал стандартный COM кабель длинной около 1,5 метров. Укоротив его до 30 сантиметров тест стал проходить. Теперь дальше при записи в устройство выдается сообщение "Устройство отсутствует или не исправно (-24)". Монтаж и детали уже проверены 100 раз. В программе выставлено все согласно инструкции. PIC16F84A менял тоже самое. Программу использую с сайта КЕА Multi.asm. Посоветуйте кто чем может.

RW1ZK: Лучше соберите этот программатор. У нас на форуме его перепахали вдоль и поперёк.

MAZ: Иван, читаем мысли. Я то предложил сходить на этот сайт.

mishandlen: RW1ZK пишет: Лучше соберите этот программатор. У нас на форуме его перепахали вдоль и поперёк. Спасибо если третий вариант работать не будет, то попробую его.

RW1ZK: Пробуйте... Мой 1-й программатор, который заработал сразу - JDM. Сейчас где-то валяется. Второй - EXTRAPIC, правда переработанный исходя из собственных убеждений. Тоже лежит без дела (нужно будет кому-нибудь задарить). Кстати, попробуйте в связке с программой IC-Prog. Может с ней пойдёт?

mishandlen: Пробовал с IC-Prog, не работает. Если что попробую и Ваш. Спасибо.

Viktor_VK: Задержку в IC-Prog поставить - 1.

Photographer: Всё так сложно. Большинство (начинающие) прошивают на JDM программаторе (к слову сказать, ни батареек, ни питания не надо). И даже знать не знают, что такое ассемблер и т.п. Я свой сунул в термоусадочную трубку (он мелкий), только панелька торчит и разъём. Работает "зараза", лишь бы порт был на компе. Программа IC-Prog version 1.05C меню/Settings/Hardware/JDM Programmer, Com1, Windows API, I/O Delay от1-до40 (только что проверил на PIC16F628А) XP Pro SP3 v.2002 Athlon(tm) XP 2200+ 1.80 ГГц 512 Мб ОЗУ

mishandlen: Viktor_VK Задержку поставил не работает. При попытке проверить стирание выдается сообщение "Устройство не стерто по адресу 0000h.

mishandlen: Собрал третий вариант по схеме отсюда http://www.pcports.ru/articles/pic4.php опять не работает ...АААААААААААААА...... Может быть кто нибудь посмотрит его схему все ли там правильно.

Bigor: mishandlen пишет: Собрал третий вариант по схеме отсюда http://www.pcports.ru/articles/pic4.php опять не работает ...АААААААААААААА...... Может быть кто нибудь посмотрит его схему все ли там правильно. Подозреваю, что все дело в кабеле <СОМ порт - программатор>. Проверьте. Распайка должна быть 1-1, 2-2, 3-3,.., 9-9.

Photographer: mishandlen пишет: Может быть кто нибудь посмотрит его схему все ли там правильно. Я подобный не собирал. На всякий случай. Radio 02-2004 На странице 51 JDM программатор который у меня, да и у многих работает годами. Bigor пишет: Подозреваю, что все дело в кабеле <СОМ порт - программатор>. Точно, они разные бвают. Можно попробовать, если получится/если есть доступ, воткнуть программатор без кабеля прямо в комп. Мой втыкается легко.

mishandlen: Кабель проверил один в один. Журнал Радио сейчас посмотрю. Спасибо.

Bigor: Photographer пишет: Точно, они разные бвают. Можно попробовать, если получится/если есть доступ, воткнуть программатор без кабеля прямо в комп. Мой втыкается легко. mishandlen пишет: Кабель проверил один в один. Журнал Радио сейчас посмотрю. Photographer прав на 100%. Более того, по-моему в Радио в статьях Долгого в ПониПроге применен кабель с обратной распайкой 1-9, 2-8, 3-7,.., 9-1. Если программатор рассчитанный на работу с таким кабелем включать непосредственно в СОМ-порт ПК, он также работать не будет. Следует проверить, как установлен разъем на программаторе. Проверьте все это внимательно. Чудес быть не должно.

Viktor_VK: mishandlen пишет: Собрал третий вариант Коль такие дела. Может собрать программатор по схеме из ж. Радио 2004 №2 по приведеной выше ссылке? У меня он тоже работает, и нет там никаких соединительных кабелей. Воткнул в порт и вперед. Эту операцию проделывал без выключения компа. В журнале есть печатка, описание... Вариант проверенный.

mishandlen: Viktor_VK Хорошо попробую из Радио. Всем спасибо.

Dmitry Dubrovenko: mishandlen пишет: Хорошо попробую из РадиоПробуйте лучше Extra-PIC, только не по в/у ссылке, а тот, который здесь, на форуме, описан (кстати, он и в "Радио" был). Тогда, если Вам вдруг подарят 20 AVR'ов, Вы не будете ломать голову, чем их программировать. А с Поней у Вас постоянно проблемы будут. Это - плата за простоту.

mishandlen: Ура моя схема заработала. Оказывается надо было подобрать стабилитрон д814д, что бы было напряжение 13 вольт, у меня было 12. Работает на 100% без проблем и в пони и в айсе.

MAZ: С первой победой

mishandlen: Да, теперь можно спокойно заняться самоучителем.

MAZ: Ага, покой будет только снится.

mishandlen: Может быть, пока мало чего понятно.

Bigor: mishandlen пишет: Ура моя схема заработала. Оказывается надо было подобрать стабилитрон д814д, что бы было напряжение 13 вольт, у меня было 12. Работает на 100% без проблем и в пони и в айсе. Ну, слава Богу! Мы же Вам говорили, что чудес не бывает. Если это первая конструкция, то это дорого стоит. Успехов.

mishandlen: Bigor Спасибо.



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