Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Szia!
A 74595-nek két órajel bemenete van: egyik a soros adat léptetésé, a másik a már feltöltött adatokat tölti át a kimeneti tárolóba. Van RES és OE lába is, az 50V-os busztápot nem kell külön kapcsolgatni.
Tök jó hogy van ilyen, csak az a baj hogy nekem az N-fettel való kapcsolás nem jó, mivel nem földet hanem 50V-ot kellene kapcsolgatnom.
Csak én nem találom a TPIC6B595 doksijában az órajel (SRCK) max. értékét?
I2C-vel meg csak 2 láb kell .
Ha PIC-el oldod meg akkor nem kell mindig az összes adatot kiléptetni, tápfeszt kapcsolgatni ( ami 50V-on 50db-bal számolva már számottevő teljesítmény/zavar lehet), és sokkal kisebb helyet foglal. Idézet: A 2. ábrából meg a "recommended operating conditions" táblázatból (Pulse duration, setup time, hold time) ki lehet ókumlálni, hogy legfeljebb kb. 12,5 MHz lehet (40 ns off, 40 ns on). „Csak én nem találom a TPIC6B595 doksijában az órajel (SRCK) max. értékét?”
Azt láttam, viszont ezzel húzgálhatod lefelé a P fetek gate-jét.
Szia!
Szerintem 48 bemenet = 6db Hc244 Ic 48 kimenet 6db Hc 273-as IC Kiválsztásukra 1db HC154 és az egész 12 lábat használ fel. 1 utasítás adatirány 1 utasítás címkiválsztás (melyik ki/bemenet ) 1 utasítás irás vagy olvasás . A HC273 ba akkor íródik be az adat, amikor megszűnik a kiválasztása HC 154 váltásakor.(felfutóél) Ennél egyszerűbb nemigen képzelhető el. A kimenetekre javaslok optocsatolót, ekkor a leválasztáson kívül megoldódik a pozitív fet problémája is... üdv. Foxi63 Idézet: „Első ötletem a Microchip saját "I/O expander" áramköre volt, az MCP23017. De ez lefoglal egy soros portot és az nem jó mert nekem ebből az IC-ből kellene a kb 100db I/O lábhoz 6db, ennyi soros portja nincs a PIC-nek.” Az MCP23017 az I2C buszra illeszkedik, van rajta három címbemenet (A2, A1, A0). Így egy I2C buszon maximum 8 darab használható belőle. Azaz 16 * 8 bit I/O -ig egyetlen kétvezetékes soros buszt foglal. Ha jól számolán 64 bit bemenet és 64 bit kimenet egyszerre magvalósítható két kontroller lábbal.
Ezt a portbővítőt én is nézegettem, de végül PIC16F1513-akat vettem 280Ft+ÁFA-ért, és felprogramoztam I2C slave-nek, két láb megy el I2C-re, egy analóg lábon lehet címet beállítani, a többi szabad. Ilyenből elvileg 128db-ot lehet egy buszra kötni.
Nem lehet a teljes tartományt kihasználni, vannak fenntartott címek. Két hét után jöttem rá, hogy a 0x07 címmel azért nem stimmel valami, mert fenntartott cím. A chip adatlapjában (Analog devicec Blackfin) semmi említés nem volt róla, csak egyszer már kínomban próbára lecseréltem a slave címét, és láss csodát, elindult az egész működni. És az a szép, hogy nem a Blackfin kommunikációját borította meg, hanem amikor a PIC32 egy másik chippel kommunikált volna, akkor szólt bele az egészbe a Blackfin és kavarta meg a buszon a jeleket...
Az a helyzet hogy mint már írtam a legfontosabb kritérium jelen áramkörnél hogy a lehető legolcsóbb legyen. Az MCP23017 pedig sajnos drága, több száz Forint. Meg amúgy az nem fontos egyáltalán hogy a lehető legkevesebb lábát használjam fel a PIC-nek! PIC18F87K22 lesz benne, ennek 69db I/O lába van.
A kimenetekkel már nem kell foglalkozni, azokat 74HC164-e(kke)l oldottam meg, ez csupán kb 30Ft. Ez mindössze 4db lábát foglalja le a PIC-nek és gyakorlatilag végtelen kimenetem lehet. Terveztem hozzá egy olyan nyákot aminek a két rövidebbik oldalain forrpontok vannak és ezeken egyszerűen össze lehet fűzni akármennyi ilyen nyákot, panelonként 8db kimenettel bővül így az áramkör. A "+UB" nevezető pontokra jön az 50V (vagy ha latch-elni akarok akkor 0V), a "V+"-ra pedig szintén az 50V jön, ez csak azért van hogy az áramkör tesztelésekor a LED-ekkel láthassam hogy melyik kimenet aktív és melyik nem. Azért vezettem ki külön hogy a latch-eléstől függetlenül is működjenek a LED-ek. Ez a 74HC164-es megoldás azért is nagyon tetszik mert nektek csak 50db ki/bemenetet mondtam de az az igazság hogy egyenlőre nem tudom mennyi kell. Valószínűleg tényleg kb 50db, de matematikailag elméletben akár 288db kimenet is kellhet. Ebből a kis panelből pedig amit most mutatok, bármennyi felfűzhető egymás után! foxi63! Olyannyira spórolni kell hogy itt az optocsatoló óriási luxus! Ha megnézed ezt a nyákot, még a csatlakozókat is lespóroltam, csak forrpontok vannak a nyák szélein.
Igen vannak ilyen címek (alsó 00-07-ig),és van egy ajánlás is, hogy milyen eszközök, milyen csoportba kerüljenek, de mikor az ember magának programoz és nincs más eszköz ami megakadályozza, ha muszáj fel lehet rúgni.
Nehéz borzasztó okosakat mondani, a rendszer ismerete nélkül, csak arra hívnám fel a figyelmed, hogy egy ennyi reléből felépített hálózat akár sorrendi is lehet, ami nem biztos, hogy elviseli a tápfesz kapcsolgatását (hazárd). A soros adatátvitelnél a bővítések során bele kell nyúlni a adatátviteli programba (hány byte-ot toljon ki/be), ha ezek a modulok párhuzamosan vannak kötve csak címezni kell őket. Egy 28 lábú PIC-kel megvalósíthatsz mondjuk egy 10 bemenet/10 kimenetes kártyát ( ha ezek a ki/be portok szimmetrikusak), a kártyák párhuzamosan bővíthetők és minden bit egyedileg címezhető.
A rendszer ezt tökéletesen el fogja viselni. De mit is? A tápfesz kapcsolgatását? Nem értem ezt hogy mire gondolsz. Ez a készülék azt csinálja hogy az 50V-ot odakapcsolja egy, két, három vagy esetleg négy pontra a mondjuk 50 pont közül. Aztán leveszi. Az egyetlen gond az lenne ha nem lehetne latch-elni és végig kellene tologatni az egész adatot mert akkor olyan pontokra is feszültség kerülne amire nagyon nem lenne szabad. És igen, bővítés esetén a szoftvert át kell írni. Ez viszont nem probléma, ráadásul ha úgy írom meg elsőre a szoftvert hogy több kimenetbővítő-modult kezeljen mint amennyit rákötök, akkor nincs ilyen gond.
A nyáktervről látszik hogy ez egy teszter lesz, nagyon leegyszerűsítve elmesélem hogy képzeljétek el ezt: Van egy nagy doboz, aminek a külső részén van 288db tüske. A dobozon belül pedig ezek a tüskék teljesen szabadon össze vannak kötözgetve egymással. Természetesen szigorú szabályok szerint, de össze-vissza. Jön egy ember egy csípőfogóval és belenyúl ebbe a dobozba és elvág egy vezetéket. A feladatom az, hogy ezzel a teszterrel megtaláljam hogy melyik vezetéket vágta el! Na ezt a célt szolgálja majd ez a kütyü. Persze a valóságban ennél jóval bonyolultabb a dolog mert nem vezetékek hanem jelfogók vannak a dobozban melynek érintkezői össze-vissza (de szigorú és ismert szabályok szerint) vannak sorba, párhuzamosan meg mindenhogy kötözgetve. Némelyik pont ki van vezetve a 288db tüske valamelyikére, némelyik nem, némelyik többször is. És a feladatom nem az elcsípett vezeték, hanem a kontakthibás jelfogó-érintkező megtalálása.
A soros kimenetnél "elméletileg" talán lehet végtelen .
A nagy lábszámú PIC-el az a problémám, hogy házi tervezésben sima kétoldalas nyákon még furatgalvánnal is macera a nyáktervezés. Ha amúgy is modulárisra tervezed nincs is rá szükség.
Muszáj nagy lábszámú PIC-et használnom mert a kimeneteket oké hogy lerendezem ezekkel a 74HC164-es panelocskákkal (megjegyzem szerintem ez nagyon elegáns megoldás ), na de ott vannak még a bemenetek. Amiből szintén kellene kb 50db. Nos ezeket a bemeneteket a legeslegegyszerűbb ha a PIC közvetlen fogadja, azaz a saját lábacskáit használom fel bemenetnek. Sajnos a bemeneteket nem lehet ilyen elegánsan és olcsón megoldani mint a kimeneteket a 74HC164-el, hogy négy lábbal végtelen mennyiségű kimenetem lehet. Ha esetleg a kijelzővezérlő lábak, a tasztatúrát kezelő lábak és az ICSP csati után nem maradna elég lába a PIC18F87K22-nek, akkor szerintem 74HC165-el oldom meg a bemeneteket. Így 8 bemenetenként (74HC165-önként) kellene egy PIC-láb, plusz három közös. Már ha jól értem a 74HC165 működését.
Na jó egye fene, nem a PIC saját lábait használom bemenetnek hanem beteszek 74HC165-öket. De csak mert ilyen erőszakosak vagytok!
Ez azért is jó mert ezzel modulárisabb lesz az áramkör, hiba esetén nem kell az egész panelt kidobni. Csak akkor segítsetek egy picit; hogyan is működik pontosan ez a 74HC165? A "SH/LD" láb alacsony szintre váltásakor 'lefotózza' a bemeneteit (azaz utána bármi lehet a bemenetén?), majd a "CLK INH" láb alacsony szintűre váltása után az órajel ütemében, minden órajel-felfutó él után kiteszi a soros kimenetére a biteket a legnagyobb helyértékűvel kezdve? Ennyi, jól értem az adatlapot? Ez elég egyszerű. Gondolom a 74HC165-nek az "CLK INH" lábat kellene külön-külön rákötni a PIC egyes lábaira, a "CLK" és az "SH/LD" lehetne közös mindnél, a soros kimeneteiket pedig diódákkal VAGY kapuzom és onnantól az is közös. Jól gondolom? És mi az a "SER" láb? A hozzászólás módosítva: Nov 27, 2013
Ezt nehéz egy hozzászólásban elmagyarázni, de lényeg, hogy amikor egy sorrendi hálózatban (tehát adott állapotváltozások, adott állapotokba vezetnek) a konkurens állapotváltozások más végállapotba vezethetnek. Egy 0011-ből 1111-be való változás vagy 0111 vagy 1011-en keresztül vezet, a két bit változása nem egyszerre zajlik, ez egy aszinkron hálózatban más végállapotba vezethet. Ezek a hazád jelenségek, amikből több fajta is van (az ifjabb egyetemisták biztos jobban benne vannak a témában ).
Ja értelek! Na de ott van a külső latch a P-fettel.
Attól nem szinkron hálózat, a relék tuti nem egyforma gyorsak és valószínűleg nem szinkron hálóban működnek.
Pl. van három relém egy a váltót állítja, egy a váló állapotot jelzi vissza, egy a szemafort állítja. Ha úgy indul: váltó állítás, visszajelzés-> zöld, ha úgy visszajelzés, váltó állítás -> piros. Mivel mindig mindent kikapcsolsz nem tudod melyik relé a gyorsabb ( vagyis egy idő után rájössz , de ez változhat is, hol egyik, hol másik kapcsol előbb). A hazárd nem a te készülékedben keletkezik. A hozzászólás módosítva: Nov 27, 2013
Ja világos! De ez itt bőven nem lesz gond. A mérések menete így néz majd ki nagyon röviden:
1.- Szükséges kimenetek H szintre kapcsolása! 2.- Várj 100ms-ot! 3.- Bemenetek beolvasása! 4.- Az összes kimenet lekapcsolása! 5.- A beolvasott adatok (bemenetek állapotai) kiértékelése! A hozzászólás módosítva: Nov 27, 2013
Lehet, hogy igazad van, de azt magyarázom, hogy a relé állásokra adott válasz függhet a versenyhelyzetben levő relék gyorsaságától (ha előbb jelenik meg a váltóállás jele, mint az átkapcsolásé hibakódot küld, attól függetlenül, hogy utólag megjött a váltóállítási parancs is).
A PC tápegységben a bekapcsolásra adott jelre 3-400ms múlva jön a PG jel és megy tovább a POS. Ha ezt a Te kütyüd szimulálja mivel biztosítod, hogy a bekapcs jel biztosan 1 legyen mikor a PG 1-be megy, mert ha nem így van a rendszer leáll ( és később már nem érdekli, hogy megjött a táp). A hozzászólás módosítva: Nov 27, 2013
Van itt egy kis képzavar, Attila! Az nem latch-elés, hogy az osszes kimenetet egyszerre le tudod kapcsolni. Még jopar hsz-szel ezelott emlitettek tobben a HC595-ot es a TPIC6x595-ot megoldaskent, amikben van kimeneti tarolo, szemben a HC164-gyel. A HC595-ben D tar van, a TPIC-ben LATCH. Mindket esetben a tarolo arra jo, hogy amig a shift regisztert shifteled, addig az IC kimenetei nem valtoznak meg. De nem azert, mert mindet lekapcsolja, hanem azert, mert az IC-ben a shift regiszter utan van teve egy 8 bites latch vagy D tarolo, ami a kimeneteken megtartja az allapotokat. A HC595-ot ugy kepzeld el, mintha egy tokban lenne egy HC164 es egy HC273.
Igen, a bemeneteket is fel tudod fuzni egyetlen lancba, pl. HC165-okkel. Akarmennyit osszefuzhetsz beloluk. Az INH labat (15-os lab) lefoldeled. Ha adsz a LD labara (1-es lab) egy felfuto elet, akkor a bemenetein levo allapotot letarolja (lefenykepezi, ahogy irtad). Ilyenkor a (es vegig, amig a LD laba L szinten van) a kimeneten a 7-es bemenet allapota lathato. Ha a LD laba H szinten van, akkor minden egyes CLK felfuto elre lep egyet. Ami eddig a 6-os taroloban volt, az ezentul a 7-es ben lesz, ami a 2-esben volt, az a 3-masban lesz, stb. Es itt jon a trukk, hogy van egy soros bemenet is (10-es lab). Az ott levo jelszint fog beirodni a 0-s taroloba. Ezert aztan a lanc elso IC-jenel ezt a labat mondjuk lefoldeled. A lanc elso IC-jenek a kimenetet rakotod a kovetkezo IC soros bemenetere. Aztan igy tovabb, mig az utolso IC kimenetet beviszed a PIC-be. A CLK es a LD termeszetesen ket jel, az osszes IC-re elmegy, mindegyiknel ugyanaz, a PIC adja. Ezutan adsz egy L majd H szintet a LD-ra es n * 8 impulzust a CLK-ra, es ezzel beolvasod a vegtelen szamu bemenet allapotat.
A rendszert (a tesztelendő készüléket) és a vizsgálatok szisztematikáját ismerve ilyen gond nem lesz. De nagyon jó a felvetésed!
Hűű.. miért?
Szerk.: Na jó, a fet tényleg tönkre megy a -50V Ugs-től. A hozzászólás módosítva: Nov 27, 2013
Arra gondolsz hogy az ellenállások az értékeik miatt (1k) égnek el? Azt csak úgy beírogattam hogy legyen valami értékük, természetesen ott nem 1k-k lesznek.
Akkor eltaláltam. Berakok 1-1 zenert a gate-ek megvédésére, meg átírom az ellenállások értékeit. Köszönöm az észrevételt!
Ha az also tranzisztor aramgeneratorkent uzemel es a a FET S-G kozott van egy ellenallas, amin ez az aram feszultseget hoz letre, akkor semmi baj nem lesz.
Igen csak az a baj hogy a LED nem lehet sorosan. Azért van az én rajzomon is párhuzamosan bekötve hogy ha nem ülteti be az ember a LED-et akkor is működjön az áramkör. Ugyanis a LED egy relatíve drága alkatrész (15-20Ft), az áramkör alkatrészköltségének jelentős részét teszi ki. És említettem hogy a legfontosabb hogy ez az áramkör a lehető legolcsóbb legyen. Ha nem ad a BKV pénzt a LED-ekre akkor nem ültetek be LED-eket. Az áramkörnek viszont így is működnie kell.
|
Bejelentkezés
Hirdetés |