Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с первым проектом
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
usawal
У меня следующая проблема, буду признателен за любую помощь.
_________________________________________________________________
Сначала об аппаратной части.

PIC16F84A-04/P (аж два, но на обоих результата никакого)

программатор - МАСТЕР-32 ( http://masterra.webzone.ru )

на OSC1 - RC-цепь ( 5.6 kOm и 27 pF )
на -MCLR - RC-цепь ( 10 kOm и 1 mkF) напрямую без кнопок сброса
от PORTB - ограничивающие ток резимторы ( 510 Om) далее стандартные 6мм светодиоды
блок питания ( 5V, 600 mA )... всё.

Пока писал проверял распиновку, всё по соответствующим ножкам.
__________________________________________________________________

Программная часть.

Прогу написал в MPLAB 5.3 (прога проще некуда, там вроде как ошибки не должно быть)
Вот она:

list p=16F84A ; list directive to define processor
#include <p16F84A.inc> ; processor specific variable definitions

__CONFIG _CP_OFF & _WDT_ON & _PWRTE_ON & _RC_OSC

; '__CONFIG' directive is used to embed configuration data within .asm file.
; The lables following the directive are located in the respective .inc file.
; See respective data sheet for additional information on configuration word.




;***** VARIABLE DEFINITIONS
w_temp EQU 0x0C ; variable used for context saving
status_temp EQU 0x0D ; variable used for context saving








;**********************************************************************
ORG 0x000 ; processor reset vector
goto main ; go to beginning of program


ORG 0x004 ; interrupt vector location
movwf w_temp ; save off current W register contents
movf STATUS,w ; move status register into W register
movwf status_temp ; save off contents of STATUS register


; isr code can go here or be located as a call subroutine elsewhere


;movf status_temp,w ; retrieve copy of STATUS register
;movwf STATUS ; restore pre-isr STATUS register contents
;swapf w_temp,f
;swapf w_temp,w ; restore pre-isr W register contents
;retfie ; return from interrupt


main
BCF STATUS,RP0
CLRF PORTA
MOVLW 0x00
BSF STATUS,RP0
MOVWF TRISA

BCF STATUS,RP0
CLRF PORTB
MOVLW 0x00
BSF STATUS,RP0
MOVWF TRISB

BCF STATUS,RP0

MOVLW 0xDB
MOVWF PORTB
GOTO $

; remaining code goes here

END ; directive 'end of program'

_____________________________________________________________________

HEX файл:

:020000000728CF
:080008008C0003088D00831237
:100010008501003083168500831286010030831627
:0A00200086008312DB3086001428EE
:02400E00F73F7A
:00000001FF

______________________________________________________________________

Далее программирую прогой, которая прилагается с программатором.
Всё программируется, ППЗУ следующее:

Адресная таблица:
__| 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
--| ------------------------------------------------
00| 07 28 3F FF 3F FF 3F FF 0C 00 03 08 0D 00 03 12
10| 05 01 00 30 03 16 05 00 03 12 06 01 00 30 03 16
20| 06 00 03 12 1B 30 06 00 14 28 3F FF 3F FF 3F FF
.....
_______________________________________________________________________



Включаю и... глухо, как в танке.
Помогите, уже и не знаю с какой стороны подойти.
AndrV
ток потребляет?

вместо RC-цепи попробуйте повесить кварц
usawal
Цитата(AndrV @ Apr 21 2006, 23:22) *
ток потребляет?

вместо RC-цепи попробуйте повесить кварц


Да, ток потребляет.
Кварц будет возможен только со следующей недели.
А какая проблема может возникнуть при использовании RC-цепи ?
Old1
2 usawal
Первое, что бросается в глаза- это включенный WDT, причем он никак не конфигурируется, а самое главное, нигде не обнуляется, это скорее всего приводит к тому что у вас через короткие промежутки времени осуществляется сброс от переполнения WDT. Попробуйте отключить WDT ( он отключается путем прошивки 0 в бит WDTE в слове конфигурации), может поможет...
usawal
Цитата(Old1 @ Apr 22 2006, 13:08) *
2 usawal
Первое, что бросается в глаза- это включенный WDT, причем он никак не конфигурируется, а самое главное, нигде не обнуляется, это скорее всего приводит к тому что у вас через короткие промежутки времени осуществляется сброс от переполнения WDT. Попробуйте отключить WDT ( он отключается путем прошивки 0 в бит WDTE в слове конфигурации), может поможет...


Я попробовал отключить WDT, но это не дало никаких результатов.
AST
Судя по дампу памяти, проблема в программаторе. Например, в HEX по адресу 0x000E и 0x000F прописано 8312, а в дампе 0312. С другими байтами аналогично. Сброшены старшие 2 бита четных байтов. В PIC16 память организована словами по 14 бит, возможно программатор каким-то образом путает при программировании/чтении старший и младший байты слова.
Alich
на -MCLR - RC-цепь ( 10 kOm и 1 mkF) напрямую без кнопок сброса

А конденсатор для увеличения времени нарастания напряжения? Где вы такую схему включения взяли?

А взять и выдать меандр на порт религия не позволяет? Код нужен? Посмотрите на меандр- много чего прояснится. А Собаку выключите - зря гавакает только и вводит в заблуждение

И сходите на сайт microchip.ru в раздел конференция. И вбейте в поиск тему "проблема с программаторами". И поймете - что если уж собрались применять контроллер - купите для начала НОРМАЛЬНЫЙ программатор. Самодельное г. только создает лишние проблемы.
usawal
В программе, когда считал из файла в буфер, сделал SWAP буфера,
запрограммировал... и о чудо, просто аллилуя и чувство эфории. Всё работает.

Всем спасибо, а особенно AST, за верный ход мыслей!!!
Mishel
erty:
купите для начала НОРМАЛЬНЫЙ программатор. Самодельное г. только создает лишние проблемы.

"Нормальный программатор" (имхо) стоит совершенно ненормальных денег. Для серийных/промышленных целей - не спорю. Но _для_начала_, в радиолюбительских целях - вряд ли это можно считать разумным. Приходится делать г. и решать проблемы. А х. делать?
Alich
Цитата(Mishel @ Apr 24 2006, 20:51) *
erty:
купите для начала НОРМАЛЬНЫЙ программатор. Самодельное г. только создает лишние проблемы.

"Нормальный программатор" (имхо) стоит совершенно ненормальных денег. Для серийных/промышленных целей - не спорю. Но _для_начала_, в радиолюбительских целях - вряд ли это можно считать разумным. Приходится делать г. и решать проблемы. А х. делать?

$100 - это ненормальные цены за программатор? Тогда умываю руки. Извиняйте, если кого обидел. Колупайтесь дальше
TomaT
Так речь вроде шла о программаторе "Мастер-32", он вроде и в Ч&D продается и поддерживается производителем. На мой вгляд немного кривоват, но в целом это НОРМАЛЬНЫЙ программатор. Иногда продаются действительно чудишные поделки по очень удивительным ценам.
Alich
Цитата(TomaT @ Apr 25 2006, 17:15) *
Так речь вроде шла о программаторе "Мастер-32", он вроде и в Ч&D продается и поддерживается производителем. На мой вгляд немного кривоват, но в целом это НОРМАЛЬНЫЙ программатор. Иногда продаются действительно чудишные поделки по очень удивительным ценам.

Не - здесь я извиниться должен. Не знал, что он поддерживается производителем.
usawal
Кстати, сделать SWAP буфера мне посоветовали именно разработчики программатора,
и обещали, что в следующей версии эта проблема будет исправлена.

К их чести будет сказано, что с советами и помощью они не задерживаются и
отвечают моментально.
*Leks*
ИМХО конечно, но я считаю, что раз уж ты разрабатываешь и продаёшь контроллеры или нечто подобное, то будь добр, сделай программаторы и эмуляторы подешевле. Дешевле себестоимости деталей, а не с накруткой.
Мечты мечты.
Alich
Цитата(*Leks* @ Apr 25 2006, 22:17) *
...и эмуляторы подешевле. Дешевле себестоимости деталей, а не с накруткой.
Мечты мечты.


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