Problem med att få livstecken ur en PIC12F675

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
dechaine
Inlägg: 521
Blev medlem: 7 september 2006, 21:29:51
Ort: Skene

Re: Problem med att få livstecken ur en PIC12F675

Inlägg av dechaine »

Hä hä... Installerade MPLAB IDE på denna datorn. Nu har jag kopierat MPLAB's "Template"-kod som jag helt har utgått ifrån...

Här är koden UTAN någon som helst ändringar, förutom att jag lagt till en "låda" där jag antar att egen kod skall vara.. Det är alltså den rena template-koden från mplab...

Kod: Markera allt

;**********************************************************************
;   This file is a basic code template for assembly code generation   *
;   on the PIC12F675. This file contains the basic code               *
;   building blocks to build upon.                                    *
;                                                                     *
;   Refer to the MPASM User's Guide for additional information on     *
;   features of the assembler (Document DS33014).                     *
;                                                                     *
;   Refer to the respective PIC data sheet for additional             *
;   information on the instruction set.                               *
;                                                                     *
;**********************************************************************
;                                                                     *
;    Filename:	    xxx.asm                                           *
;    Date:                                                            *
;    File Version:                                                    *
;                                                                     *
;    Author:                                                          *
;    Company:                                                         *
;                                                                     *
;                                                                     *
;**********************************************************************
;                                                                     *
;    Files Required: P12F675.INC                                      *
;                                                                     *
;**********************************************************************
;                                                                     *
;    Notes:                                                           *
;                                                                     *
;**********************************************************************

	list      p=12f675           ; list directive to define processor
	#include <p12f675.inc>        ; processor specific variable definitions

	errorlevel  -302              ; suppress message 302 from list file

	__CONFIG   _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT 

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




;***** VARIABLE DEFINITIONS
w_temp        EQU     0x20        ; variable used for context saving 
status_temp   EQU     0x21        ; 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


; these first 4 instructions are not required if the internal oscillator is not used
main
		call    0x3FF             ; retrieve factory calibration value
		bsf     STATUS,RP0        ; set file register bank to 1 
		movwf   OSCCAL            ; update register with factory cal value 
		bcf     STATUS,RP0        ; set file register bank to 0


; remaining code goes here

;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;

; initialize eeprom locations

		ORG	0x2100
		DE	0x00, 0x01, 0x02, 0x03


		END                       ; directive 'end of program'

Koden jag skrev i första inlägget haffsade jag bara ner direkt här... TAB fungerar inte här vad jag märkt..


Är det något i templatekoden man bör ändra / ta bort??
Användarvisningsbild
dechaine
Inlägg: 521
Blev medlem: 7 september 2006, 21:29:51
Ort: Skene

Re: Problem med att få livstecken ur en PIC12F675

Inlägg av dechaine »

Hittade kod till ett "led-program" på webben som fungerade att kompilera till hex, men när jag skall skicka det till PIC'en står det:


D:\PIC>xwisp2w fromtheweb
xwisp2 version..... bla...
Could not open input file fromtheweb.hex
xwisp2 failed after 0,06 seconds, rc 23


Vad kan det bero på att den inte kan öppna filen?
Har gjort som jag brukar...
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Problem med att få livstecken ur en PIC12F675

Inlägg av bearing »

Vår "WISP-expert" sodjan är ju tyvärr på semester.

Finns fromtheweb.hex i D:\PIC ?
Användarvisningsbild
E85
Inlägg: 1274
Blev medlem: 29 maj 2007, 16:24:19
Ort: Övik

Re: Problem med att få livstecken ur en PIC12F675

Inlägg av E85 »

Ska det inte vara "xwisp2w go fromtheweb"? Annars kanske det är att filnamnet är för långt.
Användarvisningsbild
dechaine
Inlägg: 521
Blev medlem: 7 september 2006, 21:29:51
Ort: Skene

Re: Problem med att få livstecken ur en PIC12F675

Inlägg av dechaine »

@ bearing: Ja, den ligger där den ska.. Jag fick samma meddelande en gång innan när jag skulle testa ett annat program, även då kollade jag att jag inte missat att kopiera över filen till PIC-mappen i D:\

@ E85: Det går utan "go" oxå. Kör utan "go" när jag fått över programmen alla andra gånger. Ska testa att korta ner namnet i eftermiddag..
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: Problem med att få livstecken ur en PIC12F675

Inlägg av vfr »

"Could not open..." skulle ju också kunna betyda att den hittar filen men har problem att tolka den. Har du kollat så att den ser ut som en giltig hexfil?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med att få livstecken ur en PIC12F675

Inlägg av sodjan »

När det gäller int/ext MCLR...
*OM* denna krets *tidigare* har varit progremmerad med intern MCLR (Alltså _MCLRE_OFF)
så spelar det ingen roll vad du försöker köra med *nu*. Det är redan kört, så att säga.

> Om jag förstått det rätt så klarar Wisp648 det... Vpp-before-Vdd sequence...

Ja, på sätt och vis. Den har lite prylar för att momentant kortsluta Vdd. Detta förutsätter
att Vdd vissa saker som att Vdd inte har för stor kapacitans (glättning) o.s.v. Se manualen.

> Jag har programmerat kretsar med MCLR påslagen med WISP628:an...

Ja, det är det normala. det är med MCLR avslagen som det kan bli problem.
Speciellt 12Fxxx verkar vara känsliga för detta. T.ex 16F88 har jag lyckats
programmera om även med MCLR off...
Användarvisningsbild
dechaine
Inlägg: 521
Blev medlem: 7 september 2006, 21:29:51
Ort: Skene

Re: Problem med att få livstecken ur en PIC12F675

Inlägg av dechaine »

Har testat att korta namnet, utan resultat...

Koden i fromtheweb.hex har samma truktur som en fil som förs över har, den är bara längre. Vet inte hur man ser om det är något direkt fel, men första och sista raderna ser lika dana ut i ett program som förs över...


Sodjan:
Citat..
*OM* denna krets *tidigare* har varit progremmerad med intern MCLR (Alltså _MCLRE_OFF)
så spelar det ingen roll vad du försöker köra med *nu*. Det är redan kört, så att säga.

Menar du då att det inte går att programmera PIC'en igen, över huvud taget? Eller går det inte att ändra till MCLR_ON?



------------------------------------------------
Detta fungerar:

-Överföring av program (utom vissa?)
-Lysdioderna på GP0 och GP1 blinkar vid överföring


Hur skriver jag kod som med all säkerhet fungerar om PIC'en är som den skall? Alltså om den inte är defekt på något sätt? Bara tex tända en LED?

Har ju testat lite olika, men inget har ens antytt till att fungera...
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Problem med att få livstecken ur en PIC12F675

Inlägg av bearing »

Eftersom du verkar haft kretsen i reset är det väl inte så konstigt att ingenting fungerat.
Användarvisningsbild
hcb
Moderator
Inlägg: 5982
Blev medlem: 23 februari 2007, 21:44:50
Skype: hcbecker
Ort: Lystrup / Uppsala
Kontakt:

Re: Problem med att få livstecken ur en PIC12F675

Inlägg av hcb »

>Menar du då att det inte går att programmera PIC'en igen, över huvud taget? Eller går det inte att ändra till MCLR_ON?

Jodå, men då måste programmeraren använda Vpp-före-Vdd. Det går med Wisp628, men det kräver några kringkomponenter (se hemsidan). Jag improviserade med värsta fulkopplingen: matning genom ett rätt stort motstånd (för kortslutningstålighet) och en vanlig småsignaltrissa vars gate Wispens Vpp-före-Vdd-utgång var kopplad till.
Användarvisningsbild
dechaine
Inlägg: 521
Blev medlem: 7 september 2006, 21:29:51
Ort: Skene

Re: Problem med att få livstecken ur en PIC12F675

Inlägg av dechaine »

@ bearing: Inte för att jag exakt förstår vad du menar med "haft kretsen i reset", men skulle allt bli rätt om jag kopplat så här? + MCLR_ON i config.. :

Kod: Markera allt

                                     ------uu------
                            +5 V ----| vdd    vss |---- Gnd
           GND--- led--- motstånd ---| gp5    gp0 |--- PGD --- motstånd--- led--- GND
           GND--- led--- motstånd ---| gp4    gp1 |--- PGC --- motstånd--- led--- GND
      +5V---motstånd ---  MCLR  -----| MCLR   gp2 |--- motstånd--- led--- GND
                                     --------------         

Eller rör jag ihop allt?



@ hcb: Skönt att höra... Får nog testa det...

Jag är glad över att ni tagit er tid att svara hittils!! Detta forum är GULD värt!

Denna gången kommer jag inte att ge upp med att lära mig PIC... hur mycket det (jag?)än krånglar..
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Problem med att få livstecken ur en PIC12F675

Inlägg av bearing »

Ifall MCLR är låg hamnar kretsen i reset. Det kan vara så att jag sagt fel, att motståndet inte behövs. Det beror på om Wispen lägger 5V på MCLR eller om den blir flytande.
Niklas-k
Inlägg: 354
Blev medlem: 10 mars 2004, 15:59:21
Ort: Katrineholm

Re: Problem med att få livstecken ur en PIC12F675

Inlägg av Niklas-k »

Så länge Wispen är inkopplad så sköter den MCLR! Notera också att MCLR pinnen är endast en ingång och kan inte vara en utgång.
Användarvisningsbild
hcb
Moderator
Inlägg: 5982
Blev medlem: 23 februari 2007, 21:44:50
Skype: hcbecker
Ort: Lystrup / Uppsala
Kontakt:

Re: Problem med att få livstecken ur en PIC12F675

Inlägg av hcb »

Med tanke på vad en 12F675 kostar kan det eventuellt vara värt att bara ta en helt ny krets och programmera den med rätt config-bitar och ett fungerande program, om inte annat för att se att allt lirar som det skall. Sedan kan du ge dig på att programmera om den med MCLRE satt.

Om du behöver hjälp med att rensa din 12F675 kan jag fixa det, men det finns kanske folk på närmare håll.
Skriv svar