konfigurace PIC16F876A

Nejdříve bych chtěl vyjádřit svůj obdiv a poděkování administrátorovi,že se opravdu snaží každému poradit a pomoct.To byl také jeden z důvodů mé registrace zde.Respect!

A teď má prosba.Začínám s microprocessory PIC.Snažím se sice již pár měsíců studovat literaturu včetně příkazů,struktury registrů ap.Ale jde mi to pomalu.Mám programátor ASIX Presto/nevím jaký na to máte názor,možná nic moc,ale mě docela zatím stačí na EEPROM do TV ap.
Pustil jsem se do stavby hardware /na ladění a programování/ k MPlab od Lothara Stolze:před tím jsem několik dní studoval po fórech co a jak.Také původní konstrukce je s 876 a bootloader je přímo v MPlabu.Ale na verzi A musel být bootloader prý zmodifikován.Tak jsem pátral a našel-viz příloha nějaký na foru edaboard.Teď jej potřebuji dostat do PICka a dodneška mi není jasné,jak přesně nastavit konfiguraci v Prestu která zkratka co znamená.Nechtěl bych jej špatně naprogramovat a pak hledat dlouho chybu jinde.

CP /je to code protect,zamknutí obsahu?/
WRT /writable a jsou tam nějaké 3 rozsahy adres/
CPD /netuším,snad code protect data?/
LVP ? /znám jen low voltage programing,ale ta je ještě zvlášť v jiném okně spolu s HVP.
BOREN ?
PWRTE negované ?
WDTE /snad watchdog…?/
Poslední je OSC oscilátor RC vím,že je vnitřní,ale pak je tam ještě HS,XT,LP

Prosím o alespoň stručné vysvětlení zkratek .Díval jsem se na program bootloaderu a kromě 2 pozic na 0000 /3 čtyřčísla hexa/ a 1800 /2 čtyřčísla hexa/ je program od adresy 1C00 do 1E00,nevím ani přesně jak jej v MPlabu decompilovat,neboť se v něm teprve chci naučit dělat. Také mi nedávají smysl hodnoty 3FFF ve zbytku adres.U paměti byla čistá vždy samé F.
Děkuji moc za radu a trpělivost se mnou.

Děkuji :smiley:

Klidně mi tykej, jsme na fóru - je to tak jednodušší.
Presto bych si nekoupil. V této cenové kategorii bych programátor pravděpodobně stavěl nebo bych si koupil jiný.
Ale hlavní je, že ti vyhovuje. A o to jde :slight_smile:.

Možná by nebylo špatné napsat nějaké odkazy, aby bylo každému jasné o čem píšeš.

Pokud v aplikaci k Prestu nahraješ (načteš) program, který chceš nahrát do PIC, tak by se měli všechny přepínače automaticky správně nastavit. Funguje to takto snad u všech aplikací, které se používají k programátorům. Přímo v samotném programu, který chceš nahrát, je totiž tato konfigurační informace daná. Možnost před samotným programováním změnit konfiguraci je tu z důvodu toho, aby jsi mohl uživatelsky něco změnit. Tato změna se ale musí dělat vědomě. Pokud například zapneš watchdog v programu, kde s ním nebylo počítáno, tak program samozřejmě nebude fungovat…

První ti doporučím si stáhnout datasheet k PIC16F876A.

Pozor! Konfigurační slovo u PIC16F87xA se liší od konfiguračního slovu starších (neáčkových) PIC16F87x.

Zde se podívej na stranu 144 (v dokumentu PDF je to strana 146) na “CONFIGURATION WORD” a máš to :slight_smile:.

CP - znemožnění zkopírování obsahu paměti s programem (zamčení obsahu, jak píšeš)
WRT - nastavení kde lze programově zapisovat do FLASH
CPD - znemožnění zkopírování obsahu EEPROM
LVP - píšeš to správně - low-voltage programming - dá se také říci, že tím nastavuješ funkci pro RB3
BODEN - aktivace Brown-out Reset (BOR) - automatický reset při poklesu napájecího napětí
PWRTEN - Power-up Timer - pokud zapínáš mikropočítač, tak prvních několik set ciklů nepracuje krystal tak, jak by měl, Power-up Timer tento problém vyřeší - pokud tě to zajímá více, mohu o tom více napsat…
WDTE - ano, je to Watchdog Timer
OSC - nastavení oscilátoru - RC pro RC člen, HS pro “rychlý” krystal (např. 20 MHz), XT např. pro 4 MHz a LP pro “pomalý” (např. pro reálný čas)

3FFF znamená, že celé programové slovo je “plné jedniček” a to znamená, že v tomto místě není nic nahraného / naprogramovaného (nebo také tzv. příkaz “nop”). F v EEPROM je ten samý případ.

Přesně nechápu co chceš s bootloaderem dělat, každopádně si zkus přečíst toto vlákno ohledně dekompilace.

Myslím, že se rád vrátíš k perfektnímu Prestu. Ten klon ICD2 nevypadá nic moc. Budeš s ním mít asi velké problémy a když to rozchodíš, tak zjistíš, že na debugging je to přes RS232 pro příšernou pomalost prakticky nepoužitelné. A jako programátor je to naprostý šunt. I to Piccolo od Asixu programuje podstatně lépe a především spolehlivěji.

Tak konečně to někdo objasnil.

olda007: Taky jsi mohl říci, že se jedná o ICD2 klon :wink:.

Nezlobte se,nenapadlo mě to a asi je to dost důležité.Je to samozřejmě ICD2 klon.Jednalo se mi o debugging,protože se chci trošku naučit aspoň ty základy,o krokování programu a chtěl jsem vidět hodnoty v registrech ap.Anonym má určitě pravdu,že je to pomalé.Adminovi moc děkuji za vysvětlení zkratek u programování.Tykání beru taky,samozřejmě.Kdybys chtěl cokoliv vysvětlit víc,budu samozřejmě moc vděčný.CP CPD samozřejmě netřeba.
Co mi poradíte?Už to mám téměř hotové.Postačí mi to alespoň na základy -myslím pár jednoduchých prográmků…
Jinak na USB je ten klon prý rychlejší.Má to cenu stavět na USB?
Nebo co by pak bylo nejlepší?Poraďte mi prosím,na čem ladit programy/nemám 50000kč navíc,mám rodinu :confused:
Děkuji za všechny názory.Nechám si rád poradit od zkušenějších.Díky moc admine za ochotu.Jsi skvělý…

Není důvod se zlobit :slight_smile:.

Pokud jsi začátečník a chceš si takto vyzkoušet nějaké základní funkce, tak ti spíš doporučuji simulátor v MPLABu. Odsimulovat rozsáhlý program, který je v mikropočítači na složitém hardwarovém podkladu, je nemožné. Na základní pochopení je ale dle mého názoru naprosto dokonalý.

V datasheetu máš všechno perfektně vysvětlené, to ale samozřejmě neznamená, že se nemůžeš zeptat. Jen mi prosím napiš co chceš konkrétně vysvětlit…

Já jsem před lety začínal na jednoduchém ISP programátoru. O Prestu nebo snad o ICD se mi mohlo jen zdát. Řekl bych, že ti to stačí a až ti to stačit nebude… Poznáš, kdy ti to už nebude stačit…

Jak jsem psal výše - mělo by ti stačit co máš. Jinak u USB verze si hlavně zjisti, jestli bez problémů seženeš všechny integrované obvody.

Tak 50 000 je značně přehnané. Nejlepší programátory stojí kolem 20 000 a originál ICD2 stojí do 10 000.
Čti datasheet, hraj si v simulátoru a zkoušej jednodušší programy (které později použiješ jako podprogramy) v reálu na kontaktním poli. A řekl bych, že budeš v pohodě :smiley:.

A dej si prosím práci a naházej sem odkazy o kterých ICD2 klonech mluvíš :wink:.

Fórum,kde jsem začal:
edaboard.com/viewtopic.php?t … light=icd2

Hned první odkaz je na schéma toho jednoduchého ICD2 klonu:
stolz.de.be/

Nevím, jak se ten klon ICD2 chová, ale má jednu velkou výhodu. Je velmi jednoduchý. Mám taky klon, který byl kdysi publikován na již nefunkčním www.mcu.cz. Ale není to žádná sláva, přestože je poněkud složitější. Je plně funkční, ale čekat 5s na jeden step programu je neúnosné. Při programování ve speciálních případech mám s klonem taky problémy. Když tedy programuju, tak většinou Piccolem, jsem z chudých poměrů :smiley: V tvém případě, když máš kvalitní a spolehlivý programátor to bude fajn doplněk a “za pusu”.

Řekl bych, že ICD2 klony ze stolz.de.be, bývalého mcu.cz, případně ještě tento jsou asi tak nejznámější. Má někdo zkušenosti s USB verzí klonu na stolz.de.be?
Řekl bych, že na tom bude podobně jako ostatní, protože obsahuje “pouze” USB - RS232 převodník. Nebo se mýlím a má s ním někdo dobré zkušenosti?

Tak ICD2 podle Stolze jsem postavil,ale už jsou tu problémy o kterých tu již byla zmínka.
Při snaze o navázání komunikace v MPlabu se objevuje chyba :

Communications: Failed to open port: (Windows::GetLastError() = 0x2, 'Systém nemůže nalézt uvedený soubor.

a vzápětí:

Unable to connect with MPLAB ICD 2

Port je COM1-správný,rychlost 19200,FIFO jsem vypnul.Zapojení jsem kontroloval,mělo by být vše v pořádku.PIC16F876A naprogramován zmíněným souborem,programování proběhlo bez chyb.Má s tím někdo zkušenost,prosím?

Začal bych asi v prověřní sériového kabelu.

olda007: Hází ti to stejnou chybu, když ICD vůbec nepřipojíš?

Děkuji za ochotu pomoci.
to jankop:
sériový kabel by měl být v pořádku.Mám ještě konvertor na komunikaci AT89C51ED2 s programem FLIP přes RS232 a používám stejný kabel 1:1 2:2 3:3 …nekřížený a jede to v pořádku.

to administrátor:
Ano,hlásí mi to stejnou chybu,i když mám od ICD2 odpojeno napájení a kabel RS232 a dám v MPlabu Programmer-select programmer ICD2

Když spustím MPLAB tak vždy skončím stejně jako ty. Pokaždé musím projít cestou PROGRAMMER/SETTINGS/COMMUNICATION a tam nastavit patřičný port COM, protože MPLAB si vždycky defaultně nastaví USB komunikaci. Snažil jsem se nastavcení nějak uložit, ale nepřišel jsem na to jak. Reinstaloval jsem MPLAB, ale k ničemu to nevedlo, přestože jsem prošel Wizardem připojení. Prostě po každém spuštění musím nastavení komunikace pro sériový port obnovit. Ale pak to funguje spolehlivě i na 57600kbd.

to jankop:
Děkuji za radu.Je to přesně tak,jak píšeš.Musel jsem nastavit znova COM1.
Pak to napsalo connected.
Jenže po asi 5 sekundách hláška:
ICDWarn0054: MPLAB IDE has lost communications with the MPLAB ICD 2. Would you like to attempt to reconnect?

a když jsem dal ano,tak mi to vypsalo:
Connecting to MPLAB ICD 2
…Connected
ICD0286: Unable to communicate with ICD
ICD0082: Failed MPLAB ICD 2 operation
Takže malinký krok vpřed,ale stejně tam je ještě někde chyba…

Jde asi o obecný problém komunikace, na webu je kolem toho spousta.
Když pomineme HW chybu, tak mě napadá:

  1. Máš správný bootloader pro daný procesor?
  2. Bývají problémy s kmitáním krystalu, máš ho nastaven na HS?
  3. Vyzkoušet jinou verzi MPLABu

Takže chybu jsem měl v tom,že jsem nedal v MPlabu download operating system.Poté jsem již jen dopiloval úpravu podle Stolze pro generování MCLR operačním zesilovačem/místo LM358 jsem použil LM324-měl jsem v šuplíku/ a to změnou hodnot děliče pro VPP2,neboť jsem to napájel 15V a ukazovalo to při testu stav-high.Teď již vše běží,po připojení žádná chyba,jen jak psal jankop musím vždy nastavit COM1 místo USB.Teď jen zbývá nastudovat MPlab.

To jsem moc rád, že ti to chodí. Já se právě chystám, že si udělám nové ICD2 true USB. Přes ten ser. port je při debuggingu opravdu pomalé. Prý přes tru USB je to cca 10-20 rychlejší.

Bylo vytvořeno téma jen pro ICD2. Pokud bude někdo chtít pokračovat v diskuzi o ICD2, prosím, nepokračujte v tomto vlákně, ale vstupte do tohoto vlákna.

hoj, těmhle věcem moc nerozumím ale nějak jsem v práci došel k programování PIC16F876. Programuji přes WinPic a všechno v pořádku. najednou se mi v tom samém výrobku objevila Ačková verze a už s tím nejsem schopný nic udělat… Lze nějak jednoduše vysvětlit co se s tím dá a musí dělat?