8-pinová PIC

Prosím, měl bych jeden dotaz. Chtěl bych začít něco s nějakými malími Microchip PIC mikropočítači. Zatím jsem měl zkušenost s 16F84 a 16F627, 16F628. Jaká 8-pinová PIC je neznámější (abych s ní začal)?
Děkuji mnohokrát

Zkuste začít třeba s 12F675.

Prosim o radu, potrebuju naprogramovat 12f629 nebo 675, v DS pisou ze se musi nejdrive ulozit kalibracni hodnota oscilatoru atd…(ci co)

mam pouze HEX soubor kterej tam potrebuju dostat (stahlej s netu),jak to udelat??? mam WinPic+PicProg+redukce na 8pin
v DS moc sdily nejsou,ci to nak nechapu, staci hex nahrat do bufferu a tu hodnotu napsat na to posledni barevny misto kdyby se prepsala???

Přečteš PIC v programátoru, opíšeš si poslední hodnotu v paměti a tu pak napíšeš do programu, než ho nahraješ do PICu. Doufám, že to tak je.

to me taky doslo ze nak tak ,ale jek do programu??? kdyz mam jenom HEX,
teoreticky: kdyz do nej nahraju program bez ty hodnoty tak mozna nepude oscilator ci spatne,a da se to pak este opravit kdyz si tu hodnotu nejdriv zapisu a pak preprogramovat

To je jednoduchý, vem si disassembler přelož to zpětně na ASM a pak tam dopiš konfigurační hodnotu a znova to přelož do HEX (Easy Fast Cheap) :smiley:.

Slušné programátory tuto situaci ošetřují. Opravuje se to vcelku pracně, dají se na to nalézt postupy. PicKit 2 to dovede jednoduše. Ale ty zvol tento postup:

  1. Přečti programátorem poslední místo paměti na adrese 0x3FF, je tam instrukce RETLW 0xXX, třeba například RETLW 0x88. Převeď 0x88 do binárního tvaru tj. ‘10001000’. Pernamentním fixem udělej značky na piny 1 - 8 procesoru, kde je jednička tam udělej tečku. A máš poznačenu kalibrační konstantu natrvalo.

  2. Na konec programu pak vždycky napiš binární hodnotu podle značek.
    ORG 0x3ff
    RETLW B’10001000’

Když máš HEX, tak nejprve přečti kalibrační konstantu, pak naloaduj hex do programovacího software a pak vepiš ručně na adresu 0x3FF 0x34XX.
To musí jít snad v každém SW. A pokud ne, tak stačí importovat do MPLABu modifikovat a exportovat do hex.
Pokud máš program, který s OSCCAL pracuje, tak bude havarovat v případě, že na konci paměti nebude instrukce RETLW. Na jejím parametru ale obvykle zas tak nezáleží. Procesor pojede jen o trochu rychleji nebo pomaleji. Existuje ale ještě podobný problém a to je konfigurační slovo na adrese 0x2007. Tam jsou Bandgap bity a ty by se také neměly přemazat.

tak sem to prudnul!! BOHUZEL bez dobryho vysledku :cry: ,hodilo mi to “programovani spatne” a pri zpetnym cteni mi to hodilo asi na 30 ruznejch mistech 2AAA :imp: ,se picnu
JINAK DEKUJU

To je problém pochybnejch programátorů, nesplňujících specifikace.

  1. Zkrať všechny kabely programátoru.
  2. Mezi Vdd a GND procesoru by neměl být při programování žádný kondenzátor
  3. Zkontroluj velikost programovacího napětí Vp.

mam tenhle programator mlab.cz/Modules/PIC/PICPGR30 … XP.cs.html

vdd 4.78v
vpp 9.24v

s timdle programuju 16f84 uz asi pres rok a v pohode

VDD je v poho, ale VPP 9,24 je málo, minimum je 12,7 V

Jenže 12F675 má naprosto odlišný programovací algoritmus.

Jak si zjistil to napětí Vpp. Při programování nebo při nastavování HW?
Podle mne nemáš chybu v HW, ale v SW. Program WinPic umí dobře programovat PIC16F84, ale na PIC12Fxx se nehodí (dělá chyby). Zkus WinPic800, dá se dobře nastavit a počeštit. Má i detekci obvodu a s tou kalibrační konstantou automaticky spolupracuje. Nejnovější verze je 3,63c.
Pokud není něco jasné ozvěte se. Mimochodem v Amatérském rádiu PE běží seriál o PIC a tam je vše i s obrázkama.
Čau Martin.