Romica_t Postat August 20, 2012 Partajează Postat August 20, 2012 Exista uC cu porturi de exemplu RB0, RB1...RB15 , care printr-o singura comanda pun la iesire un numar pe 16 biti? M-am uitat rapid prin cateva pdf-uri de PIC24 si dsPIC dar vad tot porturi "incomplete", cum ar fi RC0-9, si nici unul pana la 15. Aceste uC sunt pe 16 biti.Imi cer scuze daca e o intrebare stupida si nu m-am documentat mai bine ininte de a posta. Link spre comentariu
svm86 Postat August 21, 2012 Partajează Postat August 21, 2012 Chiar daca pui 16 biti odata, pinii nu isi vor actualiza starea instant. Ce vreau eu sa spun: poti pune o valoare intr-un port, aceeasi in alt port si pinii vor parea ca sunt actualizati in acelasi timp. Asta in cazul in care PIC-ul merge la o frecventa mare de ordinul MHz.Cauta slew rate.Ceva care sa te ajute: IO extender 16 bit (pe SPI/I2C). Link spre comentariu
10vid Postat August 21, 2012 Partajează Postat August 21, 2012 Limitarea e impusa doar de numarul de pini pe capsula. De ex. uC de 16 biti cu 16 sau 18 pini au doar franturi de porturi, desi intern toate porturile sunt de 16 biti, la iesire sunt doar cativa biti legati, iar restul ignorati. La uC cu 28 pini, PORTB are toate cele 16 iesiri, si niste franturi din PORTA si PORTC in completare pana la cei 23 pini de I/O.La pastilele cu mai multi pini (64, 100 etc.) probabil toate porurile au iesiri complete. Link spre comentariu
one Postat August 23, 2012 Partajează Postat August 23, 2012 Nu cunosc controllere la care sa poti "incarca" in acelasi moment valori pentru 2 porturi de 8 biti dar, daca ai nevoie sa activezi in acelasi moment 16 biti, atunci poti folosi circuite latch, care sunt circuite digitale in care incarci 8 biti si apoi exista un pin in care activezi transferul din registrul de intrare in bufferele de iesire. Comandand simultan pinii latch de la 2 circuite cu 1 iesire de la microcontroller, poti obtine schimbarea iesirilor in acelasi timp. Un exemplu ar fi 74HC373 sau 573...Alta varianta ar fi folosirea unor registre de deplasare seriale, astfel se economisesc pini de la microcontroller. Dupa ce se incarca registrele, se activeaza acest "latch" si valorile sunt transferate "simultan" la iesire.PS. Am aruncat o privire rapida la dsPIC33FJ256GP710 si la portul B si D am gasit toti pinii. Nu am verificat si la alte porturi. Link spre comentariu
Romica_t Postat August 24, 2012 Autor Partajează Postat August 24, 2012 Sunt limitat atat de pret cat si de capsula. Am aflat si de circuitele latch dar ma prea complic. Ma duc pana la urma cu doua porturi, unul de 10 pini si altul de 6. Nu o sa scada semnificativ viteza.Inca o intrebare, ca sa nu deschid alt topic, la seria PIC18, la unele se specifica 48Mhz frecventa maxima. Asta inseamna ca le pot atasa un cristal de 48MHz ? Pana acum am lucrat cu 20Mhz dar am nevoie de putin mai multa viteza. Link spre comentariu
Liviu M Postat August 24, 2012 Partajează Postat August 24, 2012 Din cate stiu eu nu, extern merg pana pe la 25 MHz. Mai mult se obtine printr-un multiplicator intern (PLL) de maxim 4 ori, parca.Exista niste formule de calcul/configuratii prin data sheeturi (18F4550 merge sigur la 48MHz ca-i trebuie pentru partea de USB si si 18F452 are ceva multiplicare). Link spre comentariu
kit Postat August 24, 2012 Partajează Postat August 24, 2012 ar trebui specificat picul 18Fde exemplu, la 18f2550-4550, se poate folosi un cristal de 20Mhz, iar cu postscalerul setat corespunzator uC-ul va lucra la 48MHz (avand si un prescaler corespunzator, pentru a putea folosi USB).18f452, merge la 40MHz cu un cristal de 10MHz, avand activat PLL.lista poate continua. cel mai bine ar fi sa alegi picul dupa functionalitate si mai apoi dupa frecventa de lucru.cu doua latch-uri treaba-i destul de simplu de implementat...spor! Link spre comentariu
Eugen_B Postat August 24, 2012 Partajează Postat August 24, 2012 Exista PIC-uri care au interfata pentru 16 biti paraleli , intra pe http://www.microchip.com/maps/Microcontroller.aspx si alege la Appl. Peripherals - ParallelPort - PMP 16. Aceasta interfata este folosita de obicei la interfatarea cu memorii / ldc etc. si vine acompaniata de cateva semnale read /write /cable select etc. Din pacare exista doar la PIC32 si la niste dsPIC33. Link spre comentariu
sofian Postat August 24, 2012 Partajează Postat August 24, 2012 Daca registri picului sunt pe 8 biti nu are cum sa scrie 16bitideci cauta picuri cu arhitectura pe 16bit, exemplu PIC24FJ16GA002sau mai super cele pe 32bit Link spre comentariu
Romica_t Postat August 28, 2012 Autor Partajează Postat August 28, 2012 Nu e nevoie de circuite latch deoarece eu incarc porturile pe rand si apoi trimit un semnal "strobe" pentru citire. Oferta de picuri care o consult e cea de la tme, probabil ca pe site la microchip as gasi orice dar na...In legatura cu frecventa de lucru la pic18, nu mai e nevoie s-o maresc deoarece maximul admis de displayul ce vreau sa-l controlez e 6Mhz, deci cei 5Mhz la care lucreaza acum sunt aproape de limita. Va multumesc. Link spre comentariu
svm86 Postat August 29, 2012 Partajează Postat August 29, 2012 In legatura cu frecventa de lucru la pic18, nu mai e nevoie s-o maresc deoarece maximul admis de displayul ce vreau sa-l controlez e 6Mhz, deci cei 5Mhz la care lucreaza acum sunt aproape de limita. Va multumesc.Banuiesc ca stii: ai nevoie de pana la 4 cicli sa executi o instructiune. Presupun ca ai oscilator de 20MHz - instructiunile se vor executa la 5MHz (unele mai rapid daca se executa in 1,2 sau 3 cicli). Daca ai rula in mod continu doar o singura instructiune de xor (sa inversezi semnalul - de exemplu) -vei injumatati frecventa de 20MHz si ajungi la 10MHz, dar banuiesc ca nu sa faci doar asta.Cresterea frecventei de oscilator te ajuta sa executi mai multe instructiuni pana ajungi sa dai enable la strobe.Si ca test iti recomand sa faci toggle la viteza maxima - si urmareste semnalul cu osciloscopul. -pentru a vedea daca pinul se misca suficient de repede Link spre comentariu
Liviu M Postat August 29, 2012 Partajează Postat August 29, 2012 @svm86: Nu stiu cum e cu la PIC24 & PIC32 ca n-am folosit inca niciunul, da' eu stiu ca PIC12, PIC16 & PIC18 executa TOATE instructiunile in (minim) 4 cicluri de ceas (extern). Practic ceasul intern e ceasul extern / 4. Citat din documentatia de la 18F452 (similare se gasesc in toate data-sheeturile pe care le-am vazut) 4.6 Instruction Flow/Pipelining A fetch cycle begins with the program counter (PC) incrementing in Q1. An “Instruction Cycle” consists of four Q cycles (Q1, Daca ai alte informatii, mi-ar prinde bine un "refresh", asa ca orice indrumari sunt binevenite. Link spre comentariu
svm86 Postat August 29, 2012 Partajează Postat August 29, 2012 @svm86: Nu stiu cum e cu la PIC24 & PIC32 ca n-am folosit inca niciunul, da' eu stiu ca PIC12, PIC16 & PIC18 executa TOATE instructiunile in (minim) 4 cicluri de ceas (extern). Practic ceasul intern e ceasul extern / 4. Citat din documentatia de la 18F452 (similare se gasesc in toate data-sheeturile pe care le-am vazut) 4.6 Instruction Flow/Pipelining A fetch cycle begins with the program counter (PC) incrementing in Q1. An “Instruction Cycle” consists of four Q cycles (Q1, Daca ai alte informatii, mi-ar prinde bine un "refresh", asa ca orice indrumari sunt binevenite.Exprimarea nu a fost tocmai cea mai corecta. Ai dreptate: Ceas intern este Fosc/4. 20MHz oscilator extern => Ceas intern de 5MHz. Din datasheet 18f67j60 PIC18 Instruction CycleAn [b]“Instruction Cycle” consists of four Q cycles, Q1through Q4[/b]. The instruction fetch and execute arepipelined in such a manner that a fetch takes oneinstruction cycle, while the decode and execute takeanother instruction cycle. However, due to the pipelining,each instruction effectively executes in one cycle. If aninstruction causes the program counter to change(e.g., GOTO), then[b] two cycles[/b] are required to completethe instruction Link spre comentariu
Romica_t Postat August 29, 2012 Autor Partajează Postat August 29, 2012 Da, stiam ca instructiunile se executa la 1/4 din frecventa cristalului extern, deci daca am un cristal de 20Mhz, uC va lucra la 5Mhz propriu zis. Curiozitatea mea era sa pun un cristal de 40 sau 48Mhz fara sa schimb nimic in software si astfel sa obtin o frecventa de executie de 10 sau 12Mhz. Setarile oscilatorului nu le-am prea invatat bine si de aceea am recurs la o solutie mai rapida, intreband aici.Cum ar fi cel mai bine, sa pun un cristal de 40Mhz sau sa pastrez cel de 20Mhz si sa incerc din PLL sa ajung la o frecventa de executie de 10Mhz propriu zis? Link spre comentariu
svm86 Postat August 29, 2012 Partajează Postat August 29, 2012 Ar fi bine sa scrii si numele pic-ului. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum