PIC12F509 interní RC osclátor

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
machy37
Příspěvky: 11
Registrován: 23 srp 2013, 02:00

PIC12F509 interní RC osclátor

#1 Příspěvek od machy37 »

Zdravím, programuji procesor 12F509, kde chci využít interní RC oscilátor, ale nejde mi zkalibrovat OSCCAL registr. Při programování Pickitem 3 se stále opakuje chyba Invalid Value 0000 a nelze odstranit ani po ručním nastavení. Prosím o radu, nebo poskytnutí kódu inicializace procesoru.

Uživatelský avatar
MiloPS3
Příspěvky: 259
Registrován: 07 srp 2010, 02:00

#2 Příspěvek od MiloPS3 »

cau, no, pokud sis ji nezaznamenal tak mas smulu, sice sou kody ktery ti to dokazou zkalibrovat ale vzhleden k tomu ze si si to nedokazal vyguglit tak nic....
PK2 ma utilitu na regenerovani , PK3 uz ne,
takze : jestly mas tu konstantu tak zapsat rucne do kodu ,jde zapsat i pres PK3 do uP
bud si nekoho najdes kdo ma PK2 na obnovu..
napises si kod pro generovani obdelniku na vystupu kterej budes meri a menit konstantu dokad to nebude sedet s kodem..
a nelze odstranit ani po ručním nastavení.
napis jakym postupen to delas

hakamusai
Příspěvky: 943
Registrován: 17 dub 2007, 02:00

#3 Příspěvek od hakamusai »

Zkus ten 12F509 naprogramovat tímhle.Je to čistej soubor bez kódu,s vypnutou CP ochranou,zapnutým WDT,zapnutým MCRL a se zapnutým interním oscilátorem.

Kód: Vybrat vše

:10000000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F80
:10001000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F70
:10002000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F60
:10003000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F50
:10004000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F40
:10005000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F30
:10006000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F20
:10007000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F10
:10008000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F00
:10009000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FF0
:1000A000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FE0
:1000B000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FD0
:1000C000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FC0
:1000D000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FB0
:1000E000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FA0
:1000F000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F90
:10010000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F7F
:10011000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F6F
:10012000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F5F
:10013000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F4F
:10014000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F3F
:10015000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F2F
:10016000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F1F
:10017000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F0F
:10018000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF
:10019000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FEF
:1001A000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FDF
:1001B000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FCF
:1001C000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FBF
:1001D000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FAF
:1001E000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F9F
:1001F000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F8F
:10020000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F7E
:10021000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F6E
:10022000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F5E
:10023000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F4E
:10024000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F3E
:10025000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F2E
:10026000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F1E
:10027000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F0E
:10028000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFE
:10029000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FEE
:1002A000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FDE
:1002B000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FCE
:1002C000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FBE
:1002D000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FAE
:1002E000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F9E
:1002F000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F8E
:10030000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F7D
:10031000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F6D
:10032000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F5D
:10033000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F4D
:10034000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F3D
:10035000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F2D
:10036000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F1D
:10037000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F0D
:10038000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFD
:10039000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FED
:1003A000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FDD
:1003B000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FCD
:1003C000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FBD
:1003D000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FAD
:1003E000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F9D
:1003F000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F8D
:10040000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F7C
:10041000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F6C
:10042000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F5C
:10043000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F4C
:10044000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F3C
:10045000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F2C
:10046000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F1C
:10047000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F0C
:10048000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFC
:10049000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FEC
:1004A000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FDC
:1004B000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FCC
:1004C000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FBC
:1004D000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FAC
:1004E000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F9C
:1004F000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F8C
:10050000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F7B
:10051000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F6B
:10052000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F5B
:10053000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F4B
:10054000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F3B
:10055000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F2B
:10056000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F1B
:10057000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F0B
:10058000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFB
:10059000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FEB
:1005A000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FDB
:1005B000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FCB
:1005C000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FBB
:1005D000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FAB
:1005E000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F9B
:1005F000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F8B
:10060000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F7A
:10061000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F6A
:10062000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F5A
:10063000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F4A
:10064000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F3A
:10065000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F2A
:10066000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F1A
:10067000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F0A
:10068000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFA
:10069000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FEA
:1006A000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FDA
:1006B000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FCA
:1006C000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FBA
:1006D000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FAA
:1006E000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F9A
:1006F000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F8A
:10070000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F79
:10071000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F69
:10072000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F59
:10073000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F49
:10074000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F39
:10075000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F29
:10076000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F19
:10077000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F09
:10078000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FF9
:10079000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FE9
:1007A000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FD9
:1007B000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FC9
:1007C000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FB9
:1007D000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FA9
:1007E000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F99
:1007F000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F89
:021FFE00FE0FD4
:0A080000FF0FFF0FFF0FFF0FFF0FA8
:00000001FF

Uživatelský avatar
machy37
Příspěvky: 11
Registrován: 23 srp 2013, 02:00

#4 Příspěvek od machy37 »

MiloPS3, tak jsem našel stránky s návodem na kalibraci, sice je to pro jinýho švába, ale asi by se to dalo využít http://picprojects.org.uk/projects/picprojects.htm. Jinak v Pickit3 je možnost Tools - OSCCAL - Manuální nastavení.

hakamusai díky za kod, ale pri načtení mi to hlásí, že je moc dlouhý.

Kod z paměti mám zapsaný, ale stejně procesor nerozjedu. Zřejmě něco dělám špatně při inicializaci. Předpokládám, že i kdybych zadal jiný kod, než byl v paměti, tak by oscilátor jel. Sice s nějakou plus mínus tolerancí, ale asi by se program rozjel, což mě se nestalo.

Uživatelský avatar
MiloPS3
Příspěvky: 259
Registrován: 07 srp 2010, 02:00

#5 Příspěvek od MiloPS3 »

je jedno jakou hodnotu tam nastavis jen nebude presna frekvence, program nezavislej na nejaky casovy externi sinchronizaci musi bezet,
jde ten procesor precist ? smazat ? zapsat ? (bez kodu,fff)
jinak PK3 konstantu nemaze , jak se ti to povedlo ?
jestly jde aspon zapsat pak uz neni problem ji tam dat pres kod jestly nejde manualne,treba

Kód: Vybrat vše

org  0x03ff
retlw  0xKK  ;KK konstanta
org  0x0
nop
end

Uživatelský avatar
machy37
Příspěvky: 11
Registrován: 23 srp 2013, 02:00

#6 Příspěvek od machy37 »

Tak jsem nastavil oscilátor na XT a program stejně nejde. Do procesoru lze zapsat i číst, tak musí být chyba asi někde jinde. Přikládám kod inicializace procesoru, možná pro samé oči nevidím nějakou blbost :roll:

list p=12f509, R=DEC
include "p12f509.inc"


RAM equ 0x10 ; první adresa paměti RAM pro PIC12F509 - (20h-3Fh)


TMP0 equ RAM+1 ; temp cekaní
TMP1 equ RAM+2
TMP2 equ RAM+3
TM_REG equ RAM+4 ; temp cekání na průtok
S_TMP equ RAM+5 ; temp vstupů


#define OUT GPIO,0 ; výstup
#define S_S GPIO,1 ; vstup studená voda
#define S_T GPIO,2 ; vstup teplá voda
#define TLS GPIO,3 ; vstup tlakové spínače

__CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC

;************************ Reset procesoru *************************

org 0x03FF ; effective reset vector
retlw 0x3C

org 0x0000
goto INIT
;************************ Inicializace procesoru *************************

INIT

movlw B'00001110'
tris GPIO ; GP0 - GP4 vstup, GP5 vystup

movlw B'11000111' ; předdělička 1:256
option


bsf OUT ; přednastavit OUT pro počáteční bliknutí
clrf S_TMP
clrf TM_REG
call CEK100m
call CEK100m
bcf OUT
;************************ Hlavní program *************************

Uživatelský avatar
MiloPS3
Příspěvky: 259
Registrován: 07 srp 2010, 02:00

#7 Příspěvek od MiloPS3 »

Tak jsem nastavil oscilátor na XT
_IntRC_OSC
movlw B'xxxxxxx0'
tris GPIO ; GP0 xxxxvstup

movlw B'xxx0xxxx'
tris GPIO ; xxGP4 vstup
:roll:

nevim jak to mas zapojeny ,je treba to hodit na nepajivy pole dat tam ledku a odskouset

Kód: Vybrat vše

list p=12f509, R=DEC
include "p12f509.inc" 

__CONFIG _MCLRE_ON & _CP_OFF & _WDT_OFF & _IntRC_OSC 

org 0x0

nop
banksel GPIO
movlw 0xfe
tris GPIO
bsf GPIO,0
goto $

end

Uživatelský avatar
machy37
Příspěvky: 11
Registrován: 23 srp 2013, 02:00

#8 Příspěvek od machy37 »

Tak nakonec je problém vyřešen. Byla to hardwarová chyba, zakoupil jsem nový procesor a vše funguje. Díky za pomoc :agree:

Odpovědět

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