puiu Postat Aprilie 16, 2010 Partajează Postat Aprilie 16, 2010 1. Nu inteleg, folosesti PIC18F452 in loc de PIC18F458 care are comanda pentru motoare in H.2. Legat de frecventa cred ca ti-a raspuns Liviu M, Aceste integrate merg la maxim 40 MHz, iar comanda PLL este x4, deci merge maxim pentru cuart de 10MHz. Link spre comentariu
Vizitator utopic Postat Aprilie 16, 2010 Partajează Postat Aprilie 16, 2010 "Pai daca ai oscilatorul de 20MHz, programezi PIC-ul sa functioneze la acea frecventa (HS, vezi sectiunea corespunzatoare in Data Sheet)."Da, am facut asta. High speed oscilator e setat. Credeam ca daca timerul are parametrul RTCC_INTERNAL atunci o sa foloseasca cel de 4Mhz. Deci tot cel de 20Mhz o sa-l foloseasca. Ceea ce e bine. Mersi.1. Nu inteleg, folosesti PIC18F452 in loc de PIC18F458 care are comanda pentru motoare in H.Asa au fost "oridinele" :)Se mai poate schimba...asta daca chiar e neaparata nevoie. Link spre comentariu
puiu Postat Aprilie 16, 2010 Partajează Postat Aprilie 16, 2010 1. PIC18F452 nu este facut pentru comanda motoarelor in timp, ce PIC18F458 are hardul necesar pentru comanda motoarelor in H.2. Sunt de acord ca folosesti comanda prin serial, dar devine prea specifica aplicatiei prin utilizarea prin serial. Ce fapt si CAN este tot seriala, dar cu niste reguli impuse. Daca utilizezi PIC18F458 ai si transmisie CAN daca vrei. Magistrala CAN este mai putin utilizata la noi, dar se pare ca a fost legiferata in America pentru transmisile pe autovehicole, deoarece se pare ca a dat rezultate. Eu sunt foarte multumit de aceasta trasmisie. Link spre comentariu
Liviu M Postat Aprilie 16, 2010 Partajează Postat Aprilie 16, 2010 @puiu: vezi ca si 458 e iesit de pe lista uChip; ei recomanda 4850 in loc. Dar e o idee buna sa le foloseasca in loc de 452.Iar interfata seriala nu inseamna neaparat RS232, tot seriele sunt si SPI sau I2C; daca SPI "consuma" ceva mai multi pini, I2C e chiar "economa". Si ambele sunt implemntate hard.@laStudiu: intern adica nu folosesti un oscilator extern dedicat, ci generezi ceasul timerului din ceasul procesorului. Link spre comentariu
puiu Postat Aprilie 16, 2010 Partajează Postat Aprilie 16, 2010 1. Corecta este afirmatia cu PIC18F458, dar eu cu el am lucrat, intradevar acuma recomanda PIC18F4580 in loc la PIC18F458 si PIC18F4520 in loc de PIC18F452.2. Legat de transmisii de asemenea observatia este corecta, cu deosebire ca la CAN ai regulile deja stabilite de cautare a nodului ca urmeaza sa faca comanda, iar la restul trebuie sa stabilesti tu, la CAN ai rezolvata problema transmisiei in cazul tau analizezi sau nu daca a avut loc transmisia, etc.. Nu vreau sa mai insist pe aceasta tema sa nu se creada ca vrea sa impun modul de transmisie. Link spre comentariu
Liviu M Postat Aprilie 16, 2010 Partajează Postat Aprilie 16, 2010 Ce-i drept, cu CAN-ul n-am facut pana acum nimic, da' aia cu analizat daca a avut sau nu loc transmisia se rezolva, cred, cu intreruperi. Sau nu la asta te refereai? Iar partea cu nodul iar n-am inteles-o (din cauza ca nu stiu nimic despre CAN, nu ca n-ai zis tu cum trebuie), da' la i2c ai adrese. Nu-s echivalente?Si nici eu nu vreau sa impun ceva; folosesc ocazia sa mai aflu lucruri noi. Link spre comentariu
puiu Postat Aprilie 16, 2010 Partajează Postat Aprilie 16, 2010 1. Esti printre putini care se intereseaza de acest protocol, retea. Mai multe gasesti aici http://en.wikipedia.org/wiki/Controller_area_network si in documentatile de la PIC-urile respective. Link spre comentariu
Vizitator utopic Postat Aprilie 16, 2010 Partajează Postat Aprilie 16, 2010 De fapt eu RS232 vroiam sa folosesc )Dar cu un singur pin, de transmit, fara sa verific daca s-a primit (adica fara a folosii pin de receive asteptand o confirmare) :)Acum noh....daca imi ajung pini, clar o sa fac si verificarea, daca nu, nu ) Link spre comentariu
puiu Postat Aprilie 16, 2010 Partajează Postat Aprilie 16, 2010 1. Vezi ca RS232 nu merge pentru un master si mai multl slave cum vrei sa ii pui tu (cam 4-7 slave) si trebuie sa treci la 458 sau CAN sau nestadardizat. Link spre comentariu
Vizitator utopic Postat Aprilie 18, 2010 Partajează Postat Aprilie 18, 2010 Dar nu pot sa fac asa simplu:#use rs232(baud=115200, xmit=PIN_C1)putc(secventa de caractere tipica 1);#use rs232(baud=115200, xmit=PIN_C2)putc(secventa de caractere tipica 2);#use rs232(baud=115200, xmit=PIN_C3)putc(secventa de caractere tipica 3);...#use rs232(baud=115200, xmit=PIN_Cn)putc(secventa de caractere tipica n);?Credeti ca asa practic se trimite totusi la toate slave-urile fiecare secventa ce o pun eu? Link spre comentariu
puiu Postat Aprilie 19, 2010 Partajează Postat Aprilie 19, 2010 1. Eu nu programez decat in ASM. Cred ca ai dat un exemplu in C. Deci nu ma prea pot baga.2. Pentru o retea de motoare eu raman la parerea ca trebuie sa ai o comunicare bilaterala. De exemplu la microcontrolerul principal trebuie sa ajunga informatia ca un anumit motor este blocat sau are scurtcircuit. 3. Am impresia ca ai facut o adresare prin multiplexare a RS232. Daca aplicatia ta iti permite sa stai un ciclu de transmisie RS232(adica prin ciclu inteleg toate apelurile la RS232 ptr. toate motoarele) pana cand afla ca s-a executat sau nu comanda, este bine ca principiu, dar daca nu? Ai facut un calcul dupa cat timp iti revine ciclu? Nu uita ca ai ales ca microprocesorul master sa comande un motor si sa si coordoneze comunicatia(care se poate si pierde)!!!4. Nu iti spun toate acestea ca sa te sperii, dar este cred bine sa le stii de la inceput. 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