"Rozsireni" poctu portu na PICu

Prozatim pouzivam 16F877A a uz mam prakticky vyuzite vsechny porty a potrebuji dalsi :wink:
O co vlastne jde: mam jeste volny port B 0-3,a pomoci techto 4 vyvodu potrebuji nezavisle na sobe zapinat nebo vypinat relatka o celkovem poctu 8-mi kusu. Uvazoval jsem o necem takovem, ze bych na ty 4 piny povesil treba 16F84 (mam ho v supliku a lezi mi ladem) a ze podle toho jake bych mel 0 nebo 1 na portu B 0-3, tak bych si zapinal ty relatka pres 16F84. Jenze pomoci 4 bitu neumim/nevim jak nezavisle na sobe spinat/vypinat 8 rele nezavisle nasobe.

:arrow_right: administrator: přesunuto z "Elektronika s mikrokontroléry, procesory"

Na styri piny pripoj 74HC595 (cena 0.058EUR v TME)a 74C165 a mozes snimi retazenim ovladat vystupov na tisic a vstupov tiez na tisic. Cinnost tychto svabov Ti bude jasna z ich datasheetu.

Ale hlavne, ak co len trochu mozes, takyto prispevok pis do sekcie PIC a ak este co len trochu mozes viac prestan pouzivat PIC16Fxxx a skus to aspon s PIC18Fxxx :slight_smile:

to admina: Prosim Te, muzes toto vlakno presunout do sekce PIC ? martin am pravdu, tam to bude lepsi.

to Martin: uz jen cekam az mi 18F4620 priveze kuryr od TME, to zas bude novych dotazu v sekci PIC :smiley:

To je super :slight_smile:
na tie otazky okolo 16Fxxx som uz trochu alergicky. Ale chapem to a snazim sa s tym pracovat :slight_smile: Otazky na temu 18Fxxx budu prijemnym osviezenim. Nie ze by som bol vyznavac PICov, ale od 16Fxxx som vyslovene usiel k ATmega. Tak Ti za zmenu budem vdacny :slight_smile:

Já myslím že těch nových dotazů zase tak moc nebude, takový rozdíl tam není… :slight_smile:

Neboj, neco se urcite najde, vsak pockej, zitra by mi snad mela prijit zasilka z TME :wink:

:arrow_right: administrator: příspěvek byl upraven
Předchozí příspěvky se necitují.

Mne bude plne stacit, ked tam bude:

Mam taky problem, robim s PIC18Fxxx…

uplne budem vysmiaty :slight_smile:

Z toho co sa tam deje, mi je smutno

Diky za tip.

Nasel jsem :

# DEFINE         CLOCK            PORTD,4   ;Defini pin usado para clock aqui
# DEFINE         DATAS            PORTD,5   ;Defini pin usado para data aqui
# DEFINE         STROBE            PORTD,6  ;Defini pin usado para strobe(si es que lo usas) aqui.


;Pin OE deberia ir a 5v gralmente( no se usa y a 5v está activado siempre)

Rotaciones EQU 0x40  ;reservo posicion RAM para variables
Temp         EQU 0x41 


;Funcion:
ENVIARBYTESERIAL
                              movwf       Temp
                              movlw       .8
                              movwf       Rotaciones

                              bcf            CLOCK
Otra
                              rlf             Temp,F
                              bcf            DATAS
                              btfsc         STATUS,C
                              bsf            DATAS
                   
                              bsf            CLOCK
                              bcf            CLOCK
                             
                             decfsz        Rotaciones,F
                             goto           Otra

                             bsf             STROBE
                             bcf             STROBE

                             return


Uso de la funcion:

                               movlw b'00101010'
                               call  ENVIARBYTESERIAL      ;envia 00101010 via serie al registro de desplazamiento.

Jeste ze ten ASM je napsany v univerzalstine a tak se da z toho urcit o co jde.
Predpokladam ze by to melo fungovat kde si urcim ktere piny budou v log1 a ktere budou v log0 a proste to tam soupnu do 74HC595 a relatka mi sepnou jak potrebuji. No a ty relatka bude nejspis lepsi spinat pomoci ULN2003A, viz Způsoby připojení relé k portům Microchip PIC mikropočítače .

Jen ze zajimavosti, proc ?

Rychlejsie, lacnejsie, prehladnejsie, bezne s vacsim rozsahom RAM a Flash (ATmega8 s 1kB RAM/8kB Flash UART, 10b 8vst AD, I2C, SPI, za 0.673EUR bez DPH) a s vybornou podporou GCC (GCC je zadarmo [to neznamena ze nie kvalitne - je v nom napisany Linux] aj pre ARM7, Cortex M3, Linux, Windows) bez hw obmedzenia stacku, bez nezmyselneho bankovania Flash, skratka nie je co riesit a hlavne dostupne prakticky vsade v TQFP s 0.8mm = letovatelne doma, ale to iste i v puzdre DIL.
ATtiny13 programovatelne v GCC za 0.376EUR. Treba si pozriet datasheet (10b AD, …).

Ale uvedomujem si, ze je to vec vkusu (pri pouziti PIC18Fxxx), ale 16Fxxx je fakt dost off topic dokonca viac ako x51. Vykonovo i cenovo. Preto ma dost zaraza to velke mnozstvo reflexii na temu PIC16 ci tu, alebo i v literarnej podobe. Podporuje to vela literatury. Kamarata som od nich v poslednej chvili odvratil (uz mal knizku o PIC 16Fxxx otvorenu na stole :slight_smile: ). Teraz programuje na ATmega, iba v cistom C-cku a je spokojny. Nie je potrebne vediet ASM (samozrejme nastavenie registrov ANO). Programuje po par mesiacoch graficky display, malu domacu automatizaciu a tak podobne. S 16Fxxx by si ani neskrtol. Propagacia, ze staci vediet iba 35 instrukcii je dobry maketingovy ofajc. Pre zakladne progamovanie v C-cku staci vediet menej ako 9 prikazov (=,+,-,*,/,for,if,while,switch [ukazatele bezpodmienecne vediet netreba]). A hlavne programovanie v C-cku je omnoho viac prehladnejsie.

Ty ceny vypadají hodně zajímavě, ale tipuju, že to bude cenu kusu při odběrovým množství 1000kusů:), jinak PIC16 můžeš taky programovat v CÉČKU:)

Je jasný, že pokud porovnáváš programování PIC16 v asm a ATmegy8 v céčku, jseš takhle rozhněvaný. Ono programovat ATmegu8 v asm je taky jinej šálek kávy, i když to neni taková sebevražda jako ten PIC16 v asm:)

Ja vim ze na PIC16 jde pouzit C-ecko, ale nepripada mi to prave moc vhodne jak k rychlosti tak i k mnozstvi pameti co ma 16F877.

Ja jeste ani nepricichl k ATmega8, takze jedine co vim, tak ze existuje a jze e na svete. Jak se pacha ASM (eventuelne C) a jaky je to rozdil ani nevim a mozna ze ani nechci ted vedet pac mi dnes prisel balicek z TME kde bylo 2x18F4620 a navic mam doma v supliku 1x16F877 a 1x16F84 (s tim jsem nedavno zacinal a poprve jsem si rozsvitil LEDku a tak si ho necham jako suvenyr;-)).

Ceny ATmega8 v KUSOVOM (slovom JEDEN KUS) mnozstve su bez DPH 1.42EUR bez registracie.ATmega32 2.55EUR pre hocikoho (32kB Flash/2kB RAM DIL40).

PIC16F84 3.84EUR - za ten sunt :frowning: (1kWord Flash/ 68 BYTE [slovom SESDESIAT OSEM BAJTOM RAM]) (pred desiatimi rokmi to beriem, ale dnes? )
S tymto typom som dlho robil, kym som od neho usiel.
Ludia, citajte ceny na trhu. PIC16Fxxx ani nahodou. A asm je na atmega uplne v pohode. Programoval som v ASM ATmega aj PIC 16Fxxx a nie je tam ziaden markantny rozdiel (okrem vyznamnych vyhod v smere ATmega).

Proč to srovnáváš s PIC16F84, který se již léta nevyrábí a doprodávají se jen skladové zásoby? Jeho nástupce s vyšším vybavením PIC16F628A stojí o poznání méně: gme.sk/sk/pic16f628a-i-p-p434-230.html
Tím nechci říct, že jsou PI16F výhodnější, ale nemusíme to přehánět. :stuck_out_tongue:

Tak proč v těch cenách tak fabuluješ? Potom tvoje příspěvky nemohou vyznívat věrohodně…

K tomu PIC16F84, cena je taková jaká je, a nechápe jí asi nikdo, ale proč si vybíráš “nejstarší a nejhorší” procesor všech dob od Microchipu a porovnáváš to s “novými” procesory od Atmelu? Chceto nejdřív zvolit vhodné měřítko…

Jinak PIC16F84, má asi pro začínající uživatele jednu nespornou výhodu - existuje k němu kopec literatury a to je pro začínajícího uživatele asi mnohdy rozhodující . . . i když já s tímto přístupem nesouhlasím.

Rozdíl v asm pro PIC16 a xx51 je citelný, programovat v asm pro xx51 mi přijde méně náročné, ale od 16bitů Microchipu mi to přijde zcela obráceně, ty se jim povedly:)

Že vás to baví se tak handrkovat. Ja jsem čuchnul k PIC, kamarád k Atmel, ale určitě se k vůli tomu nerozkamarádíme a nebo nedej bože, nebudu vyvolávat 3 světovou válku :smiley:
Někdo dělá s tím a někdo s tím, kdo zkoušel oba typy, tak si snad vybere to, co mu přirostlo k mozku lépe a jednodušeji. ASM jsem se naučil na řadě 16F, trvalo mi to cca 3 měsíce, přešel jsem na 18F, to je v pohodě, zkoušel jsem C, ale to mi v mém věku už asi do hlavy moc nepoleze. Nevím jak jiní, ale do mě ve škole hustily ruštinu a IQ 151, dnes do vás hustí anglinu a Cčko. Toť zásadní rozdíl. Pokud se Cčko učí ve škole, tak dnes je to nutnost, dřív to nebylo a bez angliny se Cčko nenaučím, protože si k tomu nic nepřečtu. Až se “budu” muset naučit Cčko a přejit na 16bit, tak mi asi nic jineho nezbyde, ale myslím si, že v mém životě k tomu nedojde. :blush: :smiley:
A přemlouvat někoho na něco, když to zrovna třeba nepotřebuje, mi připadá dost divný a až to někdo budě potřebovat, tak mu nic jiného asi nezbude a zařídí se podle toho.

Zrovna jsem chtěl něco v tomto duchu napsat, ale honza3 mě předběhnul a já s tímto vyjádřením souhlasím.
Je to jako z PC, někdo preferuje Intel a někdo AMD.
Někdo raději Windows a někdo radši Linux.

Přestaňme se hádat co je lepší a raději se vraťme k původnímu tématu.

V cenach nefabujulem.

Moja aktualna kusova cena (od 3ks) ATmega8 je 0.673EUR bez DPH a ATmega32 1.65EUR za kus (od 2ks).
Ked som pisal prvy prispevok s cenami, neuvedomil som si, ze som bol v eshope TME prihlaseny. Dalsim prispevkom som sa snazil tuto moju “chybu” napravit a uviedol som ceny, ktore ma kazdy noname bez prihlasenia a registracie.
Inak tie zlavy su za obrat cca 400EUR za 1/4 roka. Ak by som toho kupoval viac, neviem neviem :slight_smile: Ale mozno sa staci iba zaregistrovat a vyrazne zlavy daju aj bez obratov. S tym nemam skusenosti.

16F84 som si vybral, lebo som s nimi volakedy robil a toho casu to bolo high end (este s 36B RAM, cumel som, ze ju tak brutalne zvacsili). Uz nemam v PIC16 prehlad, lebo v tom mnozstve typov lisiacich sa prakticky o pi…y chlp som sa davno stratil. Tak sorry :slight_smile:

S tou literaturou je to presne tak ako pises. Je to des. Svojim sposobom sa tym novacikom nedivim i vzhladom na zalahu clankov v casopisoch typu “aha, rozblikal som si LEDku - ake je to jednoduche ked som to aj ja zvladol”. A novacikovia tym padom vela moznosti na vyber na zaciatok nemaju. To im ani v najmensom nemam za zle. Aj ja keby som si nakupil HW a potom cez rozne komunity zistil, ze som si snad horsie vybrat ani nemohol, tiez by som ho nechcel vyhodit do kosa, ale snazil by som sa z neho vytazit co sa da. Tym ale vznikaju navyky a zvyky, ktorych sa clovek vzdava este tazsie.

Este k C. Volakedy som sa velmi okunal prejst z ASM na C. Dnes mozem jednoznacne potvrdit, ze programovanie v C je daleko jednoduchsie a prehladnejsie ako v ASM (aj ked ma “len” 35 instrukcii) a clovek sa moze omnoho viac sustredit na samotny algoritmus. Samozrejme i v C sa da program dobabrat, to je myslim celkom pochopitelne. PPre pouzivanie C vobec netreba obladat ukazatele, heap a podobne ficury, ktore vedia program este viacej zefektivnit. Ako som uz pisal, staci vediet +,-,*,/,>>,<< (tie som minule zabudol :slight_smile:), ~,&, &&, |,||, if/else, while, for, definiciu premennych (kolko bajtov (1,2,4) a ci so znamienkom, alebo bez) a samozrejme = (21 veci). S touto vybavou sa daju robit prakticky vsetky ulohy. ASM netreba absolutne vobec vediet. Ucil som niekolko ludi programovat jednocipy a vysledky ich prace mi davaju za pravdu.

P.S. A plne suhlasim s dvoma predchadzajucimi prispevkami, ktore sa na servri ocitli pri pisani mojho prispevku. V ziadnom pripade sa nesnazim nikoho do nicoho tlacit, iba som “povodne” odpovedal, preco som utiekol od PIC16Fxxx a ze nekupujem procesory na tisice kusov. Prajem pekny den. :slight_smile:

Až někoho takového najdu, kdo by mě to naučil, nebo aspoň “nakopl” správným směrem, tak bych se o C pokusil, ale bohůžel v mém okolí nikdo takový není.
ASM jsem pochytil od kamaráda s Atmegou, stačili 2 hoďky, ale stačilo to správné “nakopnutí” správným směrem, i když směrem k PIC. :smiley:

Je to vsetko uplne jedno, ci clovek robi s PIC alebo AVR. Vsetky tieto hadky mi pripominaju besnenie adolescentov, ktori sa spiritizuju o tom, ci je lepsi metal alebo hip-hop, pricom zabudaju, ze hudobne spektrum je podstatne sirsie :slight_smile:

Skutocnost, ze podstatnu cast svojich pracovnych a volnocasovych MCU projektov robim s PIC mikrokontrolermi, neznamena, ze ine by som nevedel a nepoznal, ale znamena to len a len to, ze riesenia zo vsetkych stran su si plusminus podobne a ja som si jednoducho vybral.
A fakt je to podobne, PIC16 je primitivne a stare jadro, prirovnal by som to k 89C2051, hoci skalnym 51-tkarom sa to samozrejme nebude pacit :slight_smile:
PIC18 je vykonovo, pamatovo, cenovo a co do periferii podobne osembitovym AVR. Mimochodom, ked sa uz spomina cena, centy nehraju ulohu. Vacsina vyvojarov na Slovensku a v Cechach aj tak vyvija zariadenia pre male serie, od jedneho do stoviek kusov, o studentoch a hobbystoch s jednokusovymi exemplarmi nehovoriac. V takychto seriach naozaj nezalezi na centoch. Zalezalo by to samozrejme, ak by sa robil vyvoj niecoho, co sa bude robit vo viac ako 10,000 kusoch, ale zas tam by sa zrejme nepouzivali PIC/AVR/cokolvek, a ak aj ano, tak by sa nekupovali od priekupnikov typu Farnell, TME a podobne, ktori ceny dost deformuju. Napriklad PIC-ka v TME su drahsie ako u Farnella, ale AVR-ka u TME su lacnejsie nez u Farnella.
Jo a aj s AVR-kami som robil, a nie male projekty, ale nejak som na nich nenasiel nic, co by ma dokazalo presvedcit, ze su lepsie nez PIC18 a podobne. Takisto som pracoval s HC08, HCS08, MSP430, ARM7 a ani jeden z nich ma nedokazal presvedcit, ze Microchip mi neponuka vsetky mozne MCU, ktore potrebujem.

Podciarknute a zhrnute, je to lautr jedno. Nech si vsetci robia co chcu a ako chcu, prechod na inu platformu (v ramci 8 bitov, 16-bitov, 32-bitov, nemal som na mysli skok 8-bit -> 32-bit) im v nicom nepomoze, ani neuskodi.

A to este musim podotknut, ze Martin je velmi otvoreny a mierumilovny clovek :smiley: Su diskusne fora, kde su ortodoxni militantni AVR-kari a vsetkych PIC-karov apriori povazuju za kretenov, ktori nevedia co robia. Tak na takeho trotla tu narazit (na ktoromkolvek brehu), to by este len bola diskusia :slight_smile:

Za tu dobu, co sa na svete diskutovalo a hadalo o kravinach, sa mohlo urobit tolko prace…