Jump to content
ELFORUM - Forumul electronistilor

Mux 64:1 cu 6 intrari selectie SI Decodificator 1:32.


mircang9

Recommended Posts

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. :jytuiyu

Link to comment
Share on other sites

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 to comment
Share on other sites

:aplauze 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. :da

Link to comment
Share on other sites

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. :da

Link to comment
Share on other sites

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 to comment
Share on other sites

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. :freaza:

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines