mikroPascal, Soft UART a PIC12F675

Tomas Mainzer t.mainzer@gmail.com
Úterý Říjen 24 20:16:14 CEST 2006


Dobry den,
nesledoval jsem thread, ale pokud chapu delate RS232 komunikaci a na
casovani pouzivate interni oscilator PICe.
u PIC12F629 (predpokladam ze u vaseho typu procesoru to bude podobne) se v
datasheetu uvadi pro konstantni napeti a teplotu presnost oscilatoru jako
+/- 1%. Coz je pouzitelne (za predpokladu spravneho nastaveni
kal.konstanty).
s teplotou a zmenou napajeciho napeti muze byt zmena az +/- 2% (pripadne az
+/- 5%) - to uz je na (a za) hranici pouzitelnosti.
Tedy by bylo lepe nespolehat se na presnost oscilatoru a nastaveni kal.
konstanty ale pouzit napr.
- kalibraci komunikace podle prichozich znaku (napr. znak 0x80 je vhodny pro
odmerovani (=8 nulovych bitu za sebou, dobre se pak deli odmereny cas))
- redundantni komunikaci (extremnim prikladem je posilat jen znaky 0x00 a
0xfe (vyjadrujici 1 bit informace), casovani komunikace se pak muze
pohybovat v rozmezi cca 50-200% sve nominalni hodnoty a data jsou
dekodovatelna)
- krystalovy oscilator
S pozdravem
T.Mainzer

----- Původní zpráva -----
Od: "RVsoft" <rvicek@quick.cz>
Komu: "HW-news" <hw-list@list.hw.cz>
Odesláno: 24. října 2006 19:04
Předmět: Re: mikroPascal, Soft UART a PIC12F675


Richard Kaliciak napsal(a):
> Dobry den,
>
> RV schrieb:
>> signalizaci a RS232. Primarne je to urcene na pomala mereni - PC se
>> zepta a modul odpovi. Takze mi nevadi jit i na nizkou baudrate (klidne
>
> Tak to kalibrujte podla PC. Nech na zaciatku PC posle cez COM medzeru
> (0x20) alebo iny znak, ktoru si PIC odmeria a podla toho nastavi bitrate.
>

Zatim si to necham v zaloze, ale jelikoz se stale nemuzu dobrat vysledku
 a rozbehat tu seriovku na 12F675 tak na to asi dojde.

Bohuzel jak se ukazuje tak se seslo nekolik nepriznivych okolnosti -
protoze je chyba v kompileru a zaroven ty kalibracni konstanty v PICu
jsou dost na ...

Abych obesel chybu v kompileru, ktery nedokaze spravne prelozit
nasledujici kus kodu v ASM:

    asm
    bsf   STATUS, RP0
    call  0x3FF
    movwf OSCCAL
    bcf   STATUS, RP0
    end;

Tak jsem tu konstantu naplnil rucne rovnou z programu - predpokladam, ze
plati, ze na adrese 3FF je v pameti instrukce RETLW "kalibrace" a v mem
konkretnim pripade je to tedy $3490 potazmo 1101xx 1001 0000 naplnil
jsem tedy do OSCCAL hodnotu 144 a napsal si prazdnou smycku s
konfiguraci INTOSC CLKOUT - dost jsem se podesil kdyz jsem nameril jen
984kHz misto cca 1MHz. Zkousel jsem jak je to citlive na tu kalibracni
konstantu a nebyl problem to aproximaci na druhy pokus naladit na
1004kHz pri hodnote 157. Tech 160kHz odchylka mi prijde jako zatracene dost.

Jak je videt tak ty konstanty tam soudruzi asi hazou od oka. Nemam
bohuzel zadnu jiny 12F675 abych to zkontroloval, ale nemohl by to nekdo
zkusit zda jim to takhle keca? Protoze jestli ano tak budu rad kdyz to
bude schudne rozbehat aspon na 300bps. :-(((

--
RadekCX - http://www.cncnet.info
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list




Další informace o konferenci Hw-list