mircang9 Postat Iunie 9, 2010 Partajează Postat Iunie 9, 2010 Am 64 intrari digitale pe care sa le monitorizez cu un PIC16F887 si 32 de iesiri digitale pe care sa le comand din acest pic. Pentru asta imi trebuie un mux 64:1 si un decode 1:32 cu numar minim de fire. Din cate am vazut un mux 16:1 se poate face din 3 x mux 8:1. Gasesc undeva in romania un mux ideal 64:1 la fel si un decodificator 1:32. Vreau denumirile comerciale exacte ale acestora. Pentru mux 64:1 ma gandesc ca sa folosesc doua porturi si doua mux 32:1 pentru ca s-ar mari mult timpul de propagare si viteza de citire a celor 64 de intrari. Link spre comentariu
stefan_k Postat Iunie 9, 2010 Partajează Postat Iunie 9, 2010 Vechiul 8255 iti ofera 3 porturi de cate 8 biti (deci 32 de linii pe integrat) pe care le poti configura atat pt intrare cat si pt iesire. Din 5 integrate ai rezolvat toate cele 64+32 de linii de i/o. Practic din microcontroller ai nevoie de 8 linii pt date (in ideea ca folosesti aceleasti linii si pt intrare si pt iesire), si un selector de adresa care iti va manca inca vreo ... 3 linii ? heh, nu mai stiu numara. Undeva pe acolo. Bineinteles, in ano domini 2010 e posibil sa existe alte de/multiplexoare mai potrivite pt ce vrei tu. Link spre comentariu
stefan_k Postat Iunie 9, 2010 Partajează Postat Iunie 9, 2010 Nu mai pot edita mai sus, normal ca daca sunt 32 de linii pe integrat, pentru 64+32 ai nevoie de doar 3 integrate, nu 5 cum zisesem.Daca ideea e interesanta, 8255 se gasesc la tme si nu numai. Link spre comentariu
mircang9 Postat Iunie 10, 2010 Autor Partajează Postat Iunie 10, 2010 Interesanta ideea cu 8255. M-am uitat la wikipedia putin la specificatii desi l-am facut prin facultate mi se pare mai greu de inteles. Sa zicem ca pe /wr /rd selectez sensul datelor la portul D am datele si doi biti de selectie pentru porturile A B C care se conecteaza in functie de selectie la portul D legat la PIC. Deci in total 2 + 3 + 8 pini pentru 24 i/o si + 3 pini de selectie dintre cele trei 8255 ( zic din intuitie cam ce ar tgrebui sa aiba fara sa fi citit prea bine specificatiile ) = 16 pini adica doua porturi de la PIC. Ideea cu intrarile pe aceleasi linii cu iesirile mi se pare cam ... intrucat pe intrari citesc 64 contacte si pe aceleasi linii trebuie sa comand niste relee de 48 VDC probabil prin optocuploare sau prin tranzistoare de putere. Daca ar fi doar transfer de date cred ca este buna ideea cu 8255. Mai este si problema de viteza de transfer mai ales la citirea ciclica a celor 64 de intrari care necesita poate o frecventa de ceas la PIC de la 8 MHz in sus dar oricum apare timpul de propagare ce necesita la fiecare citire dintre cele 64 o intarziere de 40 ns pentru mux 8:1 dupa setarea celor trei biti de selectie. Astea o sa le vad din calcule si la teste. Pentru citirea celor 64 intari am gasit pe http://www.patentstorm.us/patents/pdfs/ ... 59018.html http://www.edaboard.com/ftopic196102.html mux 64:1 compus din 8 x mux 8:1 + 1 x mux 8:1 care necesita 6 biti selectie + 1 de iesire mux adica 7 biti la PIC. Pentru comanda celor 32 de iesiri am gasit un decoder/demultiplexer 5:32 compus din 4 x decoder 3:8 + 1 x decoder 2:4 care necesita la PIC 5 biti. Deci pentru monitorizarea/comanda celor 64 intrari si 32 iesiri sunt necesari 7 + 5 = 12 biti adica nici doua porturi ocupate complet. Link spre comentariu
mircang9 Postat Iunie 10, 2010 Autor Partajează Postat Iunie 10, 2010 Referitor la comanda celor 32 iesiri. Prin decodificator se poate comanda doar o comanda o data si nu mai mult de una simultan sau mai multe exact ceea ce imi doresc. Prin decodificator comand niste echipamente electrice de medie tensiune ( 35 KV ). Toate cele 32 iesiri le pot trece in zero prin aplicarea la pinul LE un zero logic. Link spre comentariu
stefan_k Postat Iunie 10, 2010 Partajează Postat Iunie 10, 2010 Nu tin deloc sa folosesti 8255 mai ales cand ai si alte variante mai noi, dar totusi trebuie sa fac cateva corectii in calculele de mai sus:1. intrarile/iesirile nu se citesc/scriu ciclic (1 intrare per ciclu), ci cate 8 odata. Cel putin asa mi s-ar parea logic (la atmel pot sa citesc/scriu tot portul odata, nu cred ca la pic e altfel). Astfel viteza de citire ar fi aproape "instanta" (8 cicli pentru 64 de intrari); mai ramane viteza de prelucrare dar asta deja tine de tine.2. intrarile si iesirile se pot pune linistit pe acelasi port alt pic-ului (pe acelasi "bus"); daca te uiti, 8255 are latch cand e configurat ca output, deci iti rezolva o buna parte din problemele cu relee.Eu as zice ca iti trebuie in felul urmator (nu am pretentia ca e 100% corect, a trecut un timp de cand am lucrat cu el): - 8 pini pentru portul de date (i/o) - 2 pini pentru selectorul de adresa (cred ca te-ar rezolva un 74137 - care va veni legat catre CS al 8255) (pentru 3 x 8255) - 2 pini pentru RD, WR (catre 8255) - 2 pini pentru A0, A1 (catre 8255) - eventual pin de reset ? nu stiu daca e cazul.E drept, in total sunt 14 pini ai picului, ceva mai mult decat cei 12 ai celeilalte variante. Acestea iti asigura insa si intrarile, si iesirile, si memorarea starilor pe iesiri. Link spre comentariu
mircang9 Postat Iunie 10, 2010 Autor Partajează Postat Iunie 10, 2010 Intr-adevar daca aveam de a face cu memorarea starilor pe cele 32 de iesiri problema necesita memorarea starilor. Insa din fericire nu am nevoie de memorarea starilor. Cele 32 de relee de actionare nu trebuie sa stea in permanenta atrase ci doar in momentul actionarii pentru cateva secunde urmat de revenire pentru releul corespunzator unei comenzi. Link spre comentariu
sofian Postat Iunie 10, 2010 Partajează Postat Iunie 10, 2010 Daca tot folosesti PIC si suntem in anul 2010 poti folosi seria mcp23xxx(I/O expander) de la microchipcauti unul cu 16bit pe SPI sau I2C si folosesti doar 3(2)+((64+32)/16) pini de la picSofian 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