Jump to content

    
Sign in to follow this  
_TOXA_

ICD2 не шьет в PIC16f628A

Recommended Posts

Доброго всем времени суток. Проблема: использую 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 так там вообще выдает какие-то ошибки не понятные...

 

Вопрос: может кто подскажет, в чем может быть ошибка (если кто дочитал до конца :) )

Заранее пасиб.

P.S. там видел похожую тему, так там никто конкретно ничего и не сказал. Так я решил подробоно написать, свою тему создал.

Edited by Anty

Share this post


Link to post
Share on other sites

ICD отвалился в самом начале когда читал ID, ожидалось 83h, прочиталось 00h. Он не видет МК вообще, в соседней ветке пару дней назад была похожая проблема.

Share this post


Link to post
Share on other sites
Доброго всем времени суток. Проблема: использую PIC16f628A, в качестве программатора - ICD2. (пробовал ICD2 в режиме debugger там вообще тьма). значит, что и как я делал.

 

Вопрос: может кто подскажет, в чем может быть ошибка (если кто дочитал до конца :) )

Заранее пасиб.

P.S. там видел похожую тему, так там никто конкретно ничего и не сказал. Так я решил подробоно написать, свою тему создал.

 

1-По дебургеру отвечали - спец чип надо(628А сам по себе не дебужит)

2-Питание свое(БП для ICD2) или запитать устройство.

3-Проверте ноги MCLR, PGD,PGC - в идеале должны быть подключены только к ICD2(личный опыт) при программировании (есть исключения - посмотрите руководство пользователя кое-как резисторы разрешались). После программирования восстановить покл. к целевому устр.

4-Чип идентифицировать должен - иначе не запишет. Если нет идентификации - неверно подсоединение или питание.

Удачи!

Edited by volodya

Share this post


Link to post
Share on other sites

Я его победил. Прошивает. Подключил внешенее питание на Vdd. MCLR, PGC и PGD подсоединил только к ICD 2. Сразу при подключении нашел мой PIC и потом успешно прошивает. Только почему-то ничего не работает, но с этим уже буду разбираться. Там почему-то стабилизатор стал резко выдавать не 5В, а 4,2. Вроде по datasheet там 5 плюс минус надо.

Да, вот еще вопрос назрел. Я прошил, а потом что? отсоединяю от программатора, и оно должно работать, или сразу с подсоединенным должно.

Edited by Anty

Share this post


Link to post
Share on other sites
Да, вот еще вопрос назрел. Я прошил, а потом что? отсоединяю от программатора, и оно должно работать, или сразу с подсоединенным должно.

 

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

Если MCLR = internal то после прошивки может заработать.

 

P.S. - Если вновь собранное устройство заработало при первом включении - значит колич. ошибок в нем четное, если не заработало - нечетное (1-осталась нескомпенсированная).

:biggrin:

Share this post


Link to post
Share on other sites
Я его победил. Прошивает. Подключил внешенее питание на Vdd. MCLR, PGC и PGD подсоединил только к ICD 2. Сразу при подключении нашел мой PIC и потом успешно прошивает. Только почему-то ничего не работает, но с этим уже буду разбираться. Там почему-то стабилизатор стал резко выдавать не 5В, а 4,2. Вроде по datasheet там 5 плюс минус надо.

Это может быть, если напряжение USB 4.2. В моем клоне для этого случая диод стоит.

Share this post


Link to post
Share on other sites
Это может быть, если напряжение USB 4.2.

 

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

 

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

Share this post


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

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

 

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

Не надо прятаться от проблемы, надо решать проблему.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this