Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ICD2 не шьет в PIC16f628A
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
Anty
Доброго всем времени суток. Проблема: использую PIC16f628A, в качестве программатора - ICD2. (пробовал ICD2 в режиме debugger там вообще тьма). значит, что и как я делал.

1) написал простенькую прогу (чтобы просто посмотреть, как это дело работает)
LIST P=16F628a
#include <p16f628a.inc>

;__CONFIG _CP_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _MCLRE_ON & _PWRTE_OFF & _WDT_OFF & _XT_OSC


;----------------------------------------------------------------------------------------------------------------------------

TEMP EQU 21h
R0 EQU 20h
DEL EQU 25h

;------------ОБЩАЯ ИНИЦИАЛИЗВЦИЯ----------------
MAIN
bcf STATUS,RP1 ;bank0
bcf STATUS,RP0 ;ok

CLRF PORTA
BSF STATUS,RP0 ;Выбор банка 1
MOVLW 0x00
MOVWF TRISA
BCF STATUS,RP0 ;Выбор банка 0
;---------------------
;инициализация PORTB
CLRF PORTB
BSF STATUS,RP0 ;Выбор банка 1
MOVLW 0x00 ; <7:0> - выходы
MOVWF TRISB
;BSF OPTION_REG,7 ; RBPU ; включили подтягтвающие регистры

; movlw 0x06 ;ustanivka portov v zifrovoe sostoianie
; movwf ADCON ;ok

BCF STATUS,RP0 ;Выбор банка 0

BSF PORTB,3
WAIT
GOTO WAIT
END


Слово конфигурации пробовал писать через _Config так оно ругается, пишет, что ранее не было обьявлено там всякие СР и CPD. Ну да ладно, решил это слово в MPLABE сам буду вводить в настройках.
2) подключаю питание на плату. Потом загружаю MPLAB. Потом подключаю в USB ICD2. затем жму connect. Тут начинается. Пишет:
"Connecting to MPLAB ICD 2
...Connected
Setting Vdd source to target
ICDWarn0020: Invalid target device id (expected=0x83, read=0x0) ...
Reading ICD Product ID
Running ICD Self Test
...Passed " хотя че та тут прошел.... ну да ладно.
3) выбираю в качестве программера ICD2. Жму очистить память, прочитать память. Пишет
"Erasing Target Device...
...Erase Succeeded
MPLAB ICD 2 Ready
Reading...
ICDWarn0038: When using auto-calculate write range, reads cover the entire memory range. Do you wish to continue?
...EEPROM
...Program Memory (0x0 - 0x7FF) .
. Config Memory
...User ID Memory
...Read Succeeded
MPLAB ICD 2 Ready "

3) жму программить все это дело. программит и пишет:
"Programming Target...
...Erasing Part
...Programming EEPROM Memory
...Programming Program Memory (0x0 - 0x7FF)
...Programming User IDs Verifying...
...Program Memory ...EEPROM
...User ID Memory
...Verify Succeeded
Programming Configuration Bits
.. Config Memory Verifying configuration memory...
...Verify Failed (and stopped)
ICD0161: Verify failed (MemType = Config, Address = 0x2007, Expected Val = 0x2129, Val Read = 0x0) ICD0275: Programming failed.

MPLAB ICD 2 Ready "

Короче, как я понимаю, он прошивает все, а на слове конфигурации при проверке валится.

При использовании в режиме debugger так там вообще выдает какие-то ошибки не понятные...

Вопрос: может кто подскажет, в чем может быть ошибка (если кто дочитал до конца smile.gif )
Заранее пасиб.
P.S. там видел похожую тему, так там никто конкретно ничего и не сказал. Так я решил подробоно написать, свою тему создал.
Angelo
ICD отвалился в самом начале когда читал ID, ожидалось 83h, прочиталось 00h. Он не видет МК вообще, в соседней ветке пару дней назад была похожая проблема.
volodya
Цитата(Anty @ Jun 10 2008, 23:44) *
Доброго всем времени суток. Проблема: использую PIC16f628A, в качестве программатора - ICD2. (пробовал ICD2 в режиме debugger там вообще тьма). значит, что и как я делал.

Вопрос: может кто подскажет, в чем может быть ошибка (если кто дочитал до конца smile.gif )
Заранее пасиб.
P.S. там видел похожую тему, так там никто конкретно ничего и не сказал. Так я решил подробоно написать, свою тему создал.


1-По дебургеру отвечали - спец чип надо(628А сам по себе не дебужит)
2-Питание свое(БП для ICD2) или запитать устройство.
3-Проверте ноги MCLR, PGD,PGC - в идеале должны быть подключены только к ICD2(личный опыт) при программировании (есть исключения - посмотрите руководство пользователя кое-как резисторы разрешались). После программирования восстановить покл. к целевому устр.
4-Чип идентифицировать должен - иначе не запишет. Если нет идентификации - неверно подсоединение или питание.
Удачи!
Anty
Я его победил. Прошивает. Подключил внешенее питание на Vdd. MCLR, PGC и PGD подсоединил только к ICD 2. Сразу при подключении нашел мой PIC и потом успешно прошивает. Только почему-то ничего не работает, но с этим уже буду разбираться. Там почему-то стабилизатор стал резко выдавать не 5В, а 4,2. Вроде по datasheet там 5 плюс минус надо.
Да, вот еще вопрос назрел. Я прошил, а потом что? отсоединяю от программатора, и оно должно работать, или сразу с подсоединенным должно.
volodya
Цитата(Anty @ Jun 12 2008, 10:22) *
Да, вот еще вопрос назрел. Я прошил, а потом что? отсоединяю от программатора, и оно должно работать, или сразу с подсоединенным должно.


У Вас MCLR = ON - работать не будет пока не подтянуть вывод к +5В (ICD может из оболочки управлять этим выводом "Release from Reset" если две др. ноги не нужны - можно без отключения поиграться).
Если MCLR = internal то после прошивки может заработать.

P.S. - Если вновь собранное устройство заработало при первом включении - значит колич. ошибок в нем четное, если не заработало - нечетное (1-осталась нескомпенсированная).
biggrin.gif
DL36
Цитата(Anty @ Jun 12 2008, 10:22) *
Я его победил. Прошивает. Подключил внешенее питание на Vdd. MCLR, PGC и PGD подсоединил только к ICD 2. Сразу при подключении нашел мой PIC и потом успешно прошивает. Только почему-то ничего не работает, но с этим уже буду разбираться. Там почему-то стабилизатор стал резко выдавать не 5В, а 4,2. Вроде по datasheet там 5 плюс минус надо.

Это может быть, если напряжение USB 4.2. В моем клоне для этого случая диод стоит.
Anty
Цитата(DL36 @ Jun 14 2008, 13:47) *
Это может быть, если напряжение USB 4.2.


Перепаял стабилизатор на новый, думал в нем дело, так новый тож самое выдает. Хотя, если подключать без нагрузки (просто проводками подрубил к источнику и тестером проверил), выдаем на выходе заявленные +5. Мистика, да и только... А как это может быть связано с USB ? Да еще я когда отключаю ICD2 от разрабатываемого устройства, на выходе вдруг 4,6. На входе 5,5.

А вообще, у меня уже моя супер простенькая программка заработала. Поменял PIC на другой. А то тот какой-то паленый попался, что ли. Да и стабилизатор пока выкинул( 5.5В допустимо для PICа). Теперь буду двигаться к поставленной задаче, а не искать пути к ее реализации.
DL36
Цитата(Anty @ Jun 14 2008, 22:58) *
Перепаял стабилизатор на новый, думал в нем дело, так новый тож самое выдает. Хотя, если подключать без нагрузки (просто проводками подрубил к источнику и тестером проверил), выдаем на выходе заявленные +5. Мистика, да и только... А как это может быть связано с USB ? Да еще я когда отключаю ICD2 от разрабатываемого устройства, на выходе вдруг 4,6. На входе 5,5.

В Вашей схеме параллельно включаются два источника питания, естествено если USB источник меньше то он и садит второй, ищите.

Цитата
А вообще, у меня уже моя супер простенькая программка заработала. Поменял PIC на другой. А то тот какой-то паленый попался, что ли. Да и стабилизатор пока выкинул( 5.5В допустимо для PICа). Теперь буду двигаться к поставленной задаче, а не искать пути к ее реализации.

Не надо прятаться от проблемы, надо решать проблему.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.