Registry v PIC18Fxxx

Rozhodl jsem se ze se naucim programovat čipy PIC, pro hobby.(Atmel me desi s tema fuses a locks.) Chci zacit s PIC16F, ale cilovka jsou PIC18F.
Mam uz neco za sebou z drivejska s assemb. na Z80.
Muze mi tady nekdo objasnit, jak to je s poctem registrů v PIC18F…?
Nemuzu se nejak toho nikde dopidit.
Atmel ma 32 reg. pic16F jeden W, Z80 mel reg. A,B,C,D,H,L a tak.
Zkousel jsem procist kat.list PIC18F ale nebyl jsem z toho moudry.
Kolik registru budu mit k dispozici?
dik za konkretni odpoved.

off topic: tych fuses sa netreba bat, vobec sa ich netreba chytat, a mozes veselo programovat. Vsak si len zober, kolko zaciatocnikov robi s arduinom.

Jsou to různé architektůry, tak neřeš počty registrů. Některé operace u PIC provádíš rovnou nad paměťovými místy, jiné přes W. Obdobně AVR.
Ohledně těch pojistek, mám pocit že AVR to mají aspoň uněkterých modelů nedořešený že když si zakážeš sériové programování tak z toho není jednoduchá cesta ven, to u PIC nehrozí. Ale obojí má svoje + i -

Když dělaš s ARDUINEM v tom jejich prostředí, tak nedělaš nativně přímo s procesorem a jeho pojistkama…

Picové jsou trochu svérázná skupina kontrolérů
microchip.com/_images/715px_PIC18_graph.jpg
Pokud jsi dělal se Z80, budou ti AVR, x51 a ARM určitě bližší.

:arrow_right: administrator: přiloženy externí soubory

mozno som ta celkom nepochopil, ale ked programujes v avr studiu, tiez netreba robit s pojistkami. To je ale jedno, ked chcem napalit program, nemusim robit s pojistkami, a tak nic nepokazim. Hlavne jak si napisal, AVR alebo arm by mu boli blizsie. Prehovarat ho ale nebudem.

Mohl bys mi to nejak osvetlit,nebo dat nato nejaky link ? Muze byt i v anglictine.Mame prece google translator…

:slight_smile:

xpertvis: nemusíš s pojistkama dělat (když už jsou nastaveny jak potřebuješ) ale stane se že je třeba je změnit a tam hrozí jisté riziko. Stalo se mi jednou že to pokazil přímo programátor. To člověka potěší obzvlášť když má obvod (SMT) zaletovaný v desce :slight_smile:

Říkal jsi že chceš začít s 16 řadou, tak tady je její sada:
ww1.microchip.com/downloads/en/d … 31029a.pdf
A co se týká řady 18 tak tady:
ww1.microchip.com/downloads/en/D … 39500a.pdf

Radius dik.
porad ale me zajima,jak to je s poctem prac.registrů v PIC18F.
Pokud to je stejne jak v pic16F,tak zdar buh… :frowning:

ale nenaleham na odpoved,uz jsem stahl hodne litaratury about PIC18F, pilne ctu :slight_smile:

Ak sa Ti nepaci praca s s fuses v AVR - na ktore pritom ale absolutne nemusis siahat ak Ti staci toverenske nastavenie, myslim ze omnoho menej sa Ti bude pacit strankovanie pamati PIC16Fxxx. To je fakt pošušňáníčko. Keď Ti program priesiahne veľkosť programovej stránky (myslim, ze to bolo 512B) tak si musis velmiprecizne srazit preskakovanie zo stranky na stranku a to nehovorim ako sa s tym robi pri vyuziti preruseni. Mnoho rokov som sa s tym zabaval.

Okrem toho pisu sice, ze PIC je RISC ale aj tak robi vacsinu instrukcii na 4/8 taktov Xtalu (nie na menej ako 4). AVR robi vacsinu instrukcii na 1/2 takty Xtalu. Takze bud mas pri tom istom Xtale 4x rychlejsiu aplikaciu, alebo mozes elegantne znizit spotrebu znizenim Xtalu 4x pri zachovani rovnakeho vykonu oproti PIC16Fxxx.
Info, ze PIC sa naucis lahsie, lebo na nieco cez 35 instrukcii oproti AVR ktore ma nieco cez 130 instrukcii je trochu zavadzajuca, lebo AVR zdarma mozes programovat v solidnom GCC-cku a na slusnu pracu s nim Ti staci poznat do 20 prikazov. Mozno sa da v C-cku programovat zdarma uz aj PIC, ale to Ti tu povedia zasvatenejsi.

A to si porovnaj ceny oboch typov procesorov v pomere s velkostou Flash, RAM a bohatosti periferii. Ale nechcem Ta od nicoho odhovarat, to len aby si na zaciatku na nic nezabudol :slight_smile:

PIC 16Fxxx je bezpochyby procesor, ktory svoje miesto pod slnkom mnoho krat obhajil a svojho casu (cca pred 20-timi rokmi) bol naozaj prelomovy. Dodnes mam na dosticke prispendlenych niekolko mojich poslednych chrobacikov typu PIC 16F84 a PIC16C5x. Tie v okienkovych puzdrach maju pre mna nezabudnutelnu esteticku funkciu.

Jinak s 16C84 jsem začínal a i dost naprogramoval ale pak jsem raději utekl k 51 a jejich klonům (je to takovej standard - vyrábí to kde kdo) a teď se věnuju ARM CMx (taky hodně výrobců). PIC a AVR vyrábí jen jedna mateřská firma a nikdo jiný (pice teda snad vyrabel scenix v licenci).

Ohledně registrů: nejlépe je to vidět v posledním odkazovaném pdf - Fig. 4-2 a Fig. 5-4
Alu dominuje W a STATUS. Násobička má zase PRODH a PRODH a tak dále, prostě hromada specializovaných registrů + nějaká RAM.
ZILOG to není no :slight_smile:

Programovat se to dá zdarma v prostředí od michrochip v ASM a v C s evolution verzi kompilátoru od HI-TECH (neprovádí optimalizaci kódu).
Dobrý prostředí je taky od IAR ale není zdarma.

Moc dik vsem za odpovedi.

Prehodnotil jsem situaci,mj. i proto, ze pro Atmely je nasel nejvic literatury v cz.Jdu do AVR.
Nevim kterou radou zacit.ATiny nebo rovnou ATmegy? Vim ze jsou ruzne vybavene řady a tipy.
Muzete me poradit vhodnou skupinu čipu,ci konkretni tip pro start (studium)? Mam to ciste pro hobby (elektronika forever :slight_smile: a muj cil je,ze ten šváb bude tancovat tak, jak ja budu piskat…)
Nejsem na poli cpu novacek.Jsem pro assembler,ale mam uz i literaturu o C.Potrebny hardware a software, to si uz zajistim.
dik za nakopnuti.

Neprehlupis ak pre aplikacie s viacerymi nozickami zacnes pouzivat (ceny z TME ):

stredny pocet pinov (28pinov DIP)
Atmega8A SMD 0,73EUR/od 5ks, THT 1,279EUR/od 5ks
Atmega168PA SMD 1,084EUR/od 5ks, THT 1,785EUR/od 5ks
ATMEGA328P-PU SMD 2,187EUR/od 5ks, THT 2,168EUR/od 5ks

40pinov (DIP)
ATmega16A SMD 1,652EUR/od 5ks, THT 2,073EUR/od 5ks
ATmega32A SMD 2,149EUR/od 5ks, THT 2,796EUR/od 5ks
ATMEGA644PA-PU SMD 3,005EUR/od 5ks, THT 4,45EUR/od 5ks
ATMEGA1284-PU THT 4,84EUR/od 5ks (a to uz je kusok s 2xUART, 128kB Flash a 16kB RAM)

Pre velmi male potreby noziciek bez potreby komunikacie (nie ze by sa nedala, ale treba sa trosku viac nasoftit), napr pre dialkove ovladania, cidla a tak podobne

8 pinov DIP
ATtiny85 SMD 0,825UR/od 10ks, THT 0,825EUR/od 10ks

Pod 8kB Flash by som si MCU nevyberal.

pinovo su vsetky mcu (ATxxxx 8/88/168/328, 16/32/324/644/1284, 25/45/85, 13/24/44/84)s rovnakym poctom pinov pinovo kompatibilne vratane vestkych periferii. Vyssi rad ma akurat periferii viac. Nie je v tom taky chaos,ze jeden typ ma o citac viac ale druhy ma o citac menej ale zase ma AD. Az taky bordel pri AVR nie je.

Ja by som Ti odporucal zacat pracovat s ATtiny 85, ATmega328 a s ATmega32 (ci skor ATmega644). Rozdiely v cenach smerom k lacnejsim typom su minimalne a vykon je slusny aj na vacsie projekty

Co sa programovania tyka, myslim, ze C-cko stoji za to. Mal som pred nedavnom za ulohu spravit dvojkanalovy delic frekvencie do 100kHz. Najprv som hladal v sufliku moje oblubene 74HC393, ale tie tam akosi neboli. Tak som bol nuteny (zariadenie malo byt hotove cez vikend) spravit to s MCU. Moj povodny odhad bol, ze urcite budem musiet softit v asm, aby to dalo maximum. Ako nastrel som si spravil program v C-cku. Nepouzil som HW CNT, ale kazdu hranu som vyhodnocoval softverovo, lebo som potreboval na zaklade nastavenia DIPov vstupy XORovat, respektive menit deliaci pomer.
Vysledok po preklade (nastavenie -OS)bol vratane inicializacie okolo 200B.

Dva kanaly sa v nekonecnej slucke stihali (vratane neustaleho nastavovania portov a testovania DIPov) vyhodnocovat do 1.8us (Xtal 18,432MHz). Taky vysledok som necakal. Samotna slucka samozrejme nebezala v celych 200B.

Skontroloval som prelozeny vysledok v ASM a pravdepodobne by som tak maximalne usetril instrukciu dve, cim by sa vsetko skratilo z necelych 1.8us mozno na 1.7us. Prakticky bez vyznamu.
Takze ASM zase ostal niekde vzadu v sufliku. A zaciatok prace s STM32 (ktorych kity mam v suflicku tiez pekne ulozene) sa tym tiez oddialil, kedze AVR zase “stacilo”. No skratka des :slight_smile:

to:Martin
dik.

Do toho C se taky dam.
Jinak,koupil jsem uz minuly tyden na oshonsoft.com/index.html vsech 6 simulatoru.Cely balik byl docasne ve sleve za 39euro/licence na 1 komp.Jen jako takovy bonus.Jsou prehledne,s napovedou,budou se hodit.

Tak sa pozrti pripadne aj na toto

amctools.com/vmlab.htm

podporuje aj GCC, ktore je obsiahnute v AVRstudiu + toolchain

Ten basic v Tvojich simulatoroch moze byt zradny. Si nanho lahko zvyknes a potom budes velmi velmi otalat s prechodom na nieco koncepcnejsie (rozumej nieco, v com je hafo prikladov a nepomerne vacsia komunita). Prave pre toto by som rozne BASICy neodporucal. Nechcem sa tym samozrejme nijako dotknut usilia ich tvorcov.

Simulator v AVRstudiu je dostacujuci, s moznostou vnutit pri simulacii spravanie sa binarnych vstupov cez nastroj “stimuly”. Osobne pouzivam z inde uvedenych dovodov len 4.19 verziu+ toolchain s GCC. AVRS 5 ci 6 som odinsaloval a nikdy viac :slight_smile: .

S AVR najjednoduchsie zacnes tak, ze si kupis MCU (napriklad ATmega32), das ju do kontaktneho pola. Na napajanie privedies 5V a das medzi Ucc a GND transil a 100n kondenzator. Transil MCU ochrani, aj keby si na napajanie pripojil vyssie napatie. A minimalne Ta bude po kratsom case o vysokom napati informovat dymovymi signalmi, ak by nahodou Tvoj zdroj nemal prudove obmedzenie ci poistku :slight_smile:

Na signaly MOSI, MISO, SCLK a RESET pripoj odpory 4k7. Ich druhy koniec pripoj na 5V. Na signaly MOSI, MISO, SCLK a RESET prived piny z programatora.

Potom si na nejaky dalsi pin pripoj katodu LED (najlepsie vysoko svietiva, nech je poriadny rachot :slight_smile: ) a anodu na odpor napriklad 4k7. Druhy koniec odporu daj na 5V.

Na nejaky iny pin si pripoj odpor napr 4k7 s druhym koncom tiez na Ucc a medzi tento pin a GND daj nejake tlacitko a paralelne s nim 100n (tym to tlacitko spravis dostatocne bezzakmitovym).

No a pre “vyssie” programovanie si daj trimer/potenciometer medzi GND a Ucc. Bezec daj na niektory z AD vstupov.

Ked naprogramujes zmenu frekvencie blikania LED od natocenia potenciometra a estenejaku ficuru na zaklade stlacenia tlacitka, si v klube programatorov AVR :slight_smile:

Ten pocit sa neda nahradit sebelepsim simulatorom.

Takze na slusny zaciatok potrebujes

1x 5V zdroj
Kludne aj z 7805 s malych chladicom (D01A)+ 2x 100n (na vstup a vystup) + 2x dioda 1N4007 + 470uF/50V + 1xLED + 1x4k7 + vratna tepelna poistka (napr CA010-90 alebo CA020-90 [TME]).

LED s odporom budu na vystupe 7805 aby si videl, ci mas v poriadku 5V napajanie. Vratna poistka Ta ochrani proti nahodnym dlhsim skratom (t > 0.1-1s). Poistka sa teplom roztiahne, zvacsi svoj odpor a obmedzi prud. Po vychladnuti opat prud prepusta akoby nic. Je to jednoduchsie ako cas od casu vymenit trubickovu poistku, pripadne procesor. Samozrejme, ze ked budes zo zdroja odoberat normalne vacsi prud ako na ktory je poistka, tak ta tato obmedzi. Potom sa bude treba pooobzerat po lepsom napajacom zdroji.

1x dioda 1N4007 s katodou na vystupe (5V) a anodou na vstupe (9-12V) a 1x dioda s katodou na vstupe 7805 a anodou na +Un napajacieho zdroja (velmi jednoducha a ucinna ochrana proti prepolovaniu umoznujuca napajat zariadenie aj stiedavym signalom). Ako napajanie bude potom stacit zasuvkovy adapter 9 alebo 12V. Pri 12V sa moze 7805 trochu zahrievat. 470uF daj priamo na vstup 7805 paralelne s jednym 100n. Nie pred diodu, lebo ak das na vstup striedave napatie, kondezator pojde do kytiek.

1x kontaktne pole

2x 100nF (1x Ucc - musi byt, 1x pre bezzakmitove tlacitko)

1x transil 5V8/6V8 (nie je nevyhnutne, ale velmi blahodarne)

6xR 4k7 (4x pre programovanie, 1x LED a 1x tlacitko)

1x LED

1x tlacitko

1x potenciometer

Drzim palce, daj vediet ako to ide :slight_smile:

dik za vycerpavajici navod na start…
Stahl jsem si AVR-[AVR-Studio—popis,-ukázky].pdf a taky AVR_Studio_4.19+Toolkit a jeste asi 300MB materialu.Vsechno jsem nacpal do iPadu at muzu studovai i v leže :slight_smile:
Co se tyka programatoru chci koupit z ebay neco z toho:
jdem.cz/8zc82
nebo
jdem.cz/8zc96

Az se vratim zpet domu z Irska tak si koupim PRESTO .Tady se neda sehnat.
Nebudu nic bastlit.