Problém s 12F675 a 12F508

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
Viper_T
Příspěvky: 49
Registrován: 24 čer 2007, 02:00
Kontaktovat uživatele:

Problém s 12F675 a 12F508

#1 Příspěvek od Viper_T »

Dobrý den, už dost dlouho se mi nedaří naprogramovat PIC 12F675 a 508. Používám programátor JDM, software IC-prog a WinPic800. Problém je vtom, že některé programy do něj nahraju a jiné ne. Někdy je prostě špatná verifikace a někdy se všude nahrajou jen hodnoty 0x000. Nevím zda prostě jen píšu špatně programi nebo je vadný programátor, ale 16F628A s nim programuju bez problému. Potřebuji vyloučit vadný programátor, a proto bych vás chtěl požádat, zda by se nenašel někdo ochotný vyzkoušet přiložený program na 12F675 nejlépe přes JDM.Program není hotový, ale přesto by měl jít nahrát. Díky za pomoc

Asm:

Kód: Vybrat vše

	LIST P=12F675
	INCLUDE<P12F675.INC>
	__CONFIG _WDT_OFF & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT & _CP_OFF & _PWRTE_ON



FLAG		EQU	0x20
TDATA		EQU	0x21
TMP0		EQU	0x22
TMP1		EQU	0x23
TMP2		EQU	0x24
PERIODA		EQU	0x25
ROTACE		EQU	0x26
TEMPBYTE	EQU	0x27


#DEFINE	TX	GPIO,0
#DEFINE	TLAC1	GPIO,1

	ORG 00h
	GOTO	INIT

;**********************************************************************
;PODPROGRAMY
;**********************************************************************

SEND
	MOVF	TDATA,W
	MOVWF	TEMPBYTE
	MOVLW	0x08
	MOVWF	ROTACE

	BSF	TX					;START BIT			
BIT	CALL	WAITBIT			;8 DATOVYCH BITU
	BTFSS	TEMPBYTE,0
	GOTO	$+2
	GOTO	$+3
	BCF	TX
	GOTO	$+2
	BSF	TX
	RRF	TEMPBYTE,1
	DECFSZ	ROTACE,1
	GOTO	BIT
	CALL	WAITBIT
	BCF	TX					;END BIT
	RETURN


WAITHALFBIT
        MOVLW 0x11  ;17 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
	RETURN

WAITBIT
        MOVLW 0x21  ;33 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
	RETURN


;**********************************************************************
;INICIALIZACE
;**********************************************************************

INIT
	BSF	STATUS,RP0	;///////kalibrace vnitrniho oscilatoru
	CALL	3FFh
	MOVWF	OSCCAL
	BCF	STATUS,RP0

	MOVLW	B'00000111'	;//////COMPARATOR vypnut///////////////////
	MOVWF	CMCON
	
	BSF	STATUS,RP0	;///////NASATAVENI PORTU////////////////////////
	MOVLW	b'00111110'
	MOVWF	TRISIO
	MOVLW	0x00
	MOVWF	ANSEL
	BCF	STATUS,RP0

	BCF	TX

	GOTO	MAIN


;**********************************************************************
;HLAVNI PROGRAM
;**********************************************************************


MAIN
	MOVLW	0xA3
	MOVWF	TDATA
	CALL	SEND
	GOTO	MAIN

	END


HEX:

Kód: Vybrat vše

:020000040000FA
:100000001D282108A7000830A60005141820271C69
:100010000A280C2805100D280514A70CA60B062885
:100020001820051008001130A200A20B15280800A6
:100030002130A200A20B1A2808008316FF2390008B
:1000400083120730990083163E30850000309F00F0
:0E005000831205102B28A330A10001202B28BD
:02400E00C43FAD
:00000001FF

Uživatelský avatar
jankop
Příspěvky: 679
Registrován: 04 dub 2007, 02:00
Kontaktovat uživatele:

#2 Příspěvek od jankop »

Zkusil jsem tvůj kód naprogramovat pomocí ICD2. Přes varování, že tento programátor nepodporuje 12F629/675 v módu
MCLR OFF & INTRC_OSC, vše proběhlo v pořádku. Je ale pravda, že tyto procesory používají specifický programovací algoritmus. Pokud je MCLR použit jako INPUT a k tomu interní oscilátor, pak má spousta programátorů problémy. Jestli programování proběhne v tomto případě správně nebo ne, záleží také na využití GP0 a GP1 programem. S programátorem ASIX Picollo jsem neměl nikdy problém, ICD2 některé programy pro 12F675 prostě nezkousne. Zkus u programu, který nejde naprogramovat, nastavit externí rezonátor a uvidíš hned, kde je chyba.

Uživatelský avatar
Viper_T
Příspěvky: 49
Registrován: 24 čer 2007, 02:00
Kontaktovat uživatele:

#3 Příspěvek od Viper_T »

Díky moc za odpověď. Zkoušel jsem různě kombinovat to co jsi my poradil a opravdu stačí mít _MCLRE_ON. Musím uznat že mě v tomhle PICky trochu zklamali, přece jenom takhle přijdu o jeden vstup/výstup. Ale je pravda, že mám jenom JDM za pár korun, takže možná zkusím postavit ICD2 popřípadě něco jiného.

Uživatelský avatar
mety
Příspěvky: 634
Registrován: 06 bře 2005, 01:00
Bydliště: Planeta Zem

#4 Příspěvek od mety »

12F508 nahraš len raz.Nie preto,žeby nebol prepisovaťelný,ale ic-prog to nedokaže zmazať.V ponuke ma len 12C508 a ten je jednorazovka.Ja mam 2 kusy takto nahrate :( 12F509 už zmazať ide,cez 16F84A :twisted:

Uživatelský avatar
Viper_T
Příspěvky: 49
Registrován: 24 čer 2007, 02:00
Kontaktovat uživatele:

#5 Příspěvek od Viper_T »

12F508 mi šel smazat i přes 16F84A nebo možná 16F628, ale WinPic800 ho plně podporuje a JDM to taky umí :wink: .

Uživatelský avatar
ViPali
Příspěvky: 524
Registrován: 21 lis 2005, 01:00
Bydliště: Bratislava

#6 Příspěvek od ViPali »

Niekto to tu riešil, pozri staršie príspevky (16f88,...) išlo o to, že nesedelo časovanie pinov. Autor to upravil podľa datašitu pridaním kondenzátorov (?) k pinom DATA, CLK.
Ja používam ten najjednoduchší programátor na seriový port a zatiaľ som nemal problémy, ani s 12f675 (mcl-of, osc-in).
Podľa môjho názoru, sú PICy asi citlivé na Vpp, ktoré by malo byť Un + 7V. Mám skúsenosť, že 16f84, ktorú kolega nenaprogramoval, ja som naprogramoval bez problémov. Jediný rozdiel sme našli v zdroji PC, kde jeho dával 11,78V a môj 12,04V, čo sa samozrejme prenáša na sériový port.
Bezpečnejšie by mali byť programátory s vlastným zdrojom ale tiež s doporučeným napätím.
Ďalšia vec je programovanie nízkym napätím. Pozri si Mikrochip - DS41173C datašit k programovaniu 12f675.
Ako elektrikár sa cítim slobodne.
Môžem hovoriť do vedenia!

Uživatelský avatar
Viper_T
Příspěvky: 49
Registrován: 24 čer 2007, 02:00
Kontaktovat uživatele:

#7 Příspěvek od Viper_T »

Já sem myslel že programovací napětí je 13V??? Co sem hledeal na Googlu tak všude sem se dočet taky těch 13V. Nakonec my to jde naprogramovat i s _MLCRE_OFF, ale nesmím mít GPIO,0 jako výstup :( .

Uživatelský avatar
ViPali
Příspěvky: 524
Registrován: 21 lis 2005, 01:00
Bydliště: Bratislava

#8 Příspěvek od ViPali »

Niekde v datašitoch je uvedené 7V nad napájacie napätie ako najnižšia hodnota. Pretože nie vždy to pracovalo, tak bol navrhnutý programátor s pomocným záporným napätím. Pozri www.belza.cz .
Ako elektrikár sa cítim slobodne.
Môžem hovoriť do vedenia!

Uživatelský avatar
jankop
Příspěvky: 679
Registrován: 04 dub 2007, 02:00
Kontaktovat uživatele:

#9 Příspěvek od jankop »

12F675 nepodporuje LVP. Programovací napětí procesorů jsou různá a jejich meze jsou specifikovány mimo jiné v souborech *.dev pro jednotlivé procesory v adresářích instalace MPLAB.
Jinak PICy vůbec nejsou citlivé na Vpp, ale naprosto nestandardní časování nekterých amatérských programátorů jim dobře nedělá.

Uživatelský avatar
jankop
Příspěvky: 679
Registrován: 04 dub 2007, 02:00
Kontaktovat uživatele:

#10 Příspěvek od jankop »

Mimochodem, aniž bych dělal nějaký etrémní rozbor situace, tak si myslím, že za určité konstelace by mohlo jít naprogramovat samotnou program memory. A pak teprve naprogramovat samotné konfigurační slovo. Mělo by to fungovat, ale verifikace už nemusí proběhnout správně. Druhou možností je, zastavit procesor po resetu/zapnutí na nějaký zlomek sekundy v programové smyčce. To by mělo veškeré problémy při programování odstranit.

Uživatelský avatar
Viper_T
Příspěvky: 49
Registrován: 24 čer 2007, 02:00
Kontaktovat uživatele:

#11 Příspěvek od Viper_T »

S mým JDM se mi podařilo odpálit už druhý a bohužel poslední 12F675, ale tu čekací smyčku na začátku programu sem vyzkoušel na 12F508, který mi taky nešel naprogramovat a teď se to konečně rozchodilo. Díky moc za radu :D .

Uživatelský avatar
jankop
Příspěvky: 679
Registrován: 04 dub 2007, 02:00
Kontaktovat uživatele:

#12 Příspěvek od jankop »

Ty procesory si poznač, ale nevyhazuj. Je možné, že nejsou vadné a časem je použiješ s nějakým jiným programátorem. Tuto situaci jsem už také zažil.

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“