LPT Fordeler - lager m.m.

Hej,

Jeg vil gå i gang med et projekt, hvor jeg vil kunne styre flere forskellige enheder ved hjælp af lpt porten i computeren. Jeg vil gøre det sådan, at softwaren siger hvilken port der kommunikeres med, og at al fremtidig kommunikation derefter går til den - indtil man vælger en anden adresse. Jeg har 8 bits til at styre hvilken adresse.

Til dette skal jeg dog kunne gemme adressen på en eller anden måde, så den bliver ved med at sende til samme "port". I mit diagram er dette lager vist som en diskette. Jeg ved ikke om relæer vil kunne bruges til dette, men måske i har nogle forslag!? Se her:

formatting link

Det kræver nok lidt forklaring.

I venstre side er der 8 porte - but 2 til 9 (dette er data bit'ene fra lpt porten). Hvis bit 17 sættes til true (5 volt på) skal 8 forskellige transistorer åbne for alle data pins. Dette skal nu gemmes, som vist ved disketten. dvs. hver gang pin 17 er høj, overskrives "disketten" med pin 2 > 9's værdier.

Til højre for disketten er 3 AND gates. De to første er mine porte ud til de forskellige enheder, mens den sidste er en "default" port - det vil sige, hvis adressen ikke passede på nogle andre porte, videresendes data til denne (kunne bruges hvis jeg senere vil udvide systemet, og derved smide et lignende system til på). Forskellen mellem de to første AND-gates, er at ved den anden er pin 0 IKKE inverteret - det vil sige at det er den binære værdi 1 som hører til den.

Afhængigt af adressen i lageret, vil alle 25 pins nu blive videresendt til den valgte port.

Jeg er ny til elektronik - men tror at mit system kan virke.

Hvordan ville i lave lageret? Jeg overvejer også at smide nogle opto-koblere mellem de forskellige pins til bundkortet, for at beskytte det mod fejl... hvilken type skal jeg købe for at tillade 5 volt på hver port max? Jeg er ny til elektronik som sagt, så hvilken type transistorer skal bruges til dette? Og til sidst, mine AND-gates... hvordan er det smartest at lave for eksempel GATE 2? Jeg ved ikke om en 9 pins gate er standard, og har da heller ikke noget imod selv at gå i gang. Jeg har diagrammer til at lave gates, og invertere... er det den smarteste måde at gøre det på?

På forhånd tak for hjælpen. Jeg ved godt at det er et stort projekt, men håber i kan hjælpe mig lidt længere med det :)

Reply to
Casper Bang
Loading thread data ...

Hjælp!

Må jeg foreslå at du kigger på lidt mere avancerede chips.

74hc244 en god "forstærker" og "afbryder" 74hc374 kan huske 8 bit 74hc138 kan splitte 3 indgang ud på 8 udgange

Brug en handshake bit på parallelporten til at "latch" på 374 chip'en

Det afhænger meget af hvad du laver, næsten alle optokoblere kan bruges ved

5 volt. En nogelunde sikring vil du opnå ved at køre alle signaler igennem en 244, så vil det være den der brænder af, ved mindre uheld.

bruges

Dette er afhængig af hvad du skal trække og måden du kobler dem til på er også afhængig af hvad du skal trække.

Den måde du har vist, begrænser din udgangsspænding til et sted mellem 2 og

4,3 volt (afhængig af gate typen).

Hvis du istedet sætter emitter på transistoren til 0 volt og bruger en basis modstand, så kan collector bruges til at trække spændinger på over 5 volt (f.eks. 12 volt).

Til små ting er en bc547 en god transistor

Reply to
HKJ

Hmm... tænkte på, kan man få nogle små "relæer" hvor jeg kan styre om den skal være tændt eller slukket, ved at give den et signal én gang. Det vil sige at hvis den får 5 volt ind på den ene "port" er den åben, men hvis den får 5 volt på den anden lukker den, og holder sig lukket!? Tænkte på at jeg på den måde kunne styre lageret, så det blev ved med afgive strøm, på den adresse jeg satte!? Kan noget sådan købes?

pins

købe

ved

hmm.. jeg har måske ikke helt fattet hvad en optokobler gør!? Er den ikke beregnet til at lukke af for strømmen, hvis denne overstiger X volt - at beskytte porten mod ikke at få for meget strøm!? I det tilfælde skal optokobleren vel købes til at kunne klare 5 volt :/

og

basis

På pc-elektronik.dk er der 3 af denne type tranistor:

Varenummer: BC 547A TRANSISTOR

Varenummer: BC 547B TRANSISTOR NPN 50V 0,2A 0,5W Hus: 7a

Varenummer: BC 547C TRANSISTOR

Hvilken en af disse bør jeg bruge?

Tak for hjælpen indtil videre :) Håber jeg kan få det information der skal til, så jeg kan gå i gang med projektet - om ikke andet, så vil jeg da lære en del ved det :)

Reply to
Casper Bang

den

Det findes både i mekanisk udførsel (Bistabilt relæ) og i elektrisk udførsel (RS flip-flop f.eks. 74hc74)

formatting link
indeholder en oversigt af de forskellige funktioner der kan fås.

afgive

Det er ikke specielt smart, en latch (74hc374) er den bedste måde.

Det du så skal bruge af signaler er:

8 data 1 adresse latch kontrol 1 data latch kontrol

Så kan du uden de store problemer styre 16*8 output bits og ved en lille smule mere arbejde 256*8 output bits.

Nej, en optokobler består af en lysdiode og en lysføler (diode/transisor og evt. forstærker kredsløb).

Der skal en passende formodstand på lysdioden, og hvis optokobleren har en transistor i udgangen, skal der bare en modstand på.

Alle kan bruges, A/B/C siger bare noget om forstærkningen (C er højest).

Reply to
HKJ

Jeg har fundet et datasheet på den latch. Hvis jeg har forstået funktionen korrekt, er den jo genial! På pin 3, 4, 7, 8, 13, 14, 17, 18 sætter jeg datapins fra LPT porten. Når jeg skal gemme en ny adresse, sætter jeg så adressen på de pins, og sætter strøm til port 11 på latchen i et kort øjeblik. Pin 10 vil få 5 volt hele tiden, og pin 20 vil stå til ground hele tiden.

Jeg kan så trække strøm fra pin 2, 5, 6, 9, 12, 15, 16, 19 hvilket vil give strøm afhængigt af hvilken adresse der blev sat sidste gang.

Har jeg opfattet den funktion korrekt? Jeg har ledt efter den på pc-elektronik.dk, men har ikke kunnet finde den... der er ikke nogen gruppe der hedder "latches". Kunne heller ikke finde den under IC kredse. Ved du hvor jeg skal lede?

ikke

og

Hmm, ok... men hvordan vil dét beskytte systemet? I det samlesæt jeg har til LPT kommunikation sidder der optokoblere ved, som de skriver beskytter bundkortet.

Hmm... hvordan beregner jeg hvilke modstande der skal bruges etc...? Er hele opsætningen af opto-kobleren afhængigt af hvor meget strøm der trækkes i resten af systemet etc...?

Mange tak for hjælpen indtil videre!

Reply to
Casper Bang

give

Jeps.

den...

Du kan købe den fra Elfa, men der findes flere chips med næsten samme funktion (Sådan noget som: 373, 533, 573 )

Du bør også lige lære navngivningen af logi chips.

De starter alle med 74 (militær udgaver med 54)

Derefter følge nogle bogstaver, som fortæller noget om hvilke spænding, strøm og hastighed chippen er beregnet til (HC er 5 volt cmos).

De efterfølgende 2-3 tal er funktionen (f.eks. 374)

Til sidst kommer nogle bogstaver, de fortæller om indpakningen og hvilken temperatur chippen er beregnet til.

som

Fordi der ikke er elektrisk forbindelse mellem PC'en og udgangene, eneste forbindelse er lyset i optokoblerne.

Til lysdioden: Downloader og finder LED siden på

formatting link
Regn med 5-10 mA

Eller bare brug 390 ohm

Til transistoren er 10 kohm passende.

Nej, med afhængig af hvilke indgange og udgange der bruges til at styre den.

Reply to
HKJ

Tak for det :) Giver lidt mere mening nu.

Betyder det at porten ikke kan brænde af? Om der er elektrisk forbindelse er vel lige meget, hvis der bliver smidt over 5 volt igennem!?

Smart lille program :)

Jeg har bestilt diverse transistorer, samt et par 74hc374, fra elfa.se.

Mange tak for hjælpen! Jeg vender nok tilbage igen, men tror jeg har fået styr på det meste nu :) ~Casper

Reply to
Casper Bang

eneste

er

Det beskytte ikke porten mod spændinger over 5 volt, men externe spændinger får meget svært ved at komme i nærheden af porten (Sådan en opto kobler kan normalt tåle nogle tusinde volt mellem lysdiode og opto detektor).

Optimisme er rart, men du er måske lige lidt for optimistisk i det udsagn. ;-)

Men spørg bare igen, når du har mere.

Reply to
HKJ

forbindelse

spændinger

kan

Ahh, ok... så er det vel dybest set lige meget med at have en sådan én i mit tilfælde, hvis jeg bare passer en smule på!? Er der egentligt måder hvorpå man kan lukke alt af som er over 5 volt for eksempel?

Sikkert nok ;)

Det kan du lige tro jeg vil.

Tak for hjælpen :)

Reply to
Casper Bang

mit

Den 74hc244 jeg nævnte før, er ret god til sådan noget. Den vil ikke beskytte mod 220volt, men skal nok beskytte mod en statisk udladning (men den vil højst sansynligt dø).

Selvfølgelig kan man lave noget rigtig beskyttelse, men det er sansynligvis ikke besværet værd, hvis uheldet er ude, koster en løs printerport ikke specielt meget.

En god ide, når du arbejder med logik chips, er at placere en 100nF keramisk kondensator over forsyningen på hver chip. Kondensatoren skal helst have korte tilslutninger til chippen.

Reply to
HKJ

sansynligvis

"Normalt" når man brænder LPT porten af, overlever resten af motherboardet så? Hvis det er tilfældet, så kan jeg godt tage den risiko... jeg skal så bare passe lidt på med hvad jeg laver :)

keramisk

Hvad hjælper det?

Reply to
Casper Bang

De gange jeg har afbrændt en printerport har resten af bundkortet overlevet, det betyder selvfølgelig ikke at det altid vil gøre det.

Jeg var bange for at du ville spørge om det ;-)

Først lidt teori om ledninger (samme gælder for printbaner) og spoler:

En ledning har ALTID en induktans (dvs. den omfører sig lidt som en spole), når man arbejder med almindelig (langsomme dvs. under MHz) analoge signaler har det ikke nogen stor betydning. Men når man arbejder med hurtige signaler, så udgør ledningen en væsentlig modstand mod signalet og medfører derved et spændingsfald.

En logik chip arbejder rimeligt hurtigt når den skifter og den skal også bruge en del strøm for skifte udgangen hurtigt. Hvis den har en lang (dvs. adskillige cm) ledning til forsyningen, så kan den ikke trække den strøm, så forsyningsspændingen til chippen vil falde. Det betyder at f.eks. latche kan tabe deres data.

Ved at placer en kondesator tæt på chippen, etableres et lokalt strømlager, hvor den strøm der skal bruges til skiftet kan tappes fra. Kondensatoren kan så stille og roligt blive fyldt op igen til næste skift.

I alt dette her er den timing jeg snakker om nede i ns (og evt. lidt mindre), så du kan ikke måle det med "almindelige" instrumenter.

Reply to
HKJ

;)

spole),

signaler

medfører

kan

strømlager,

kan

Ok, den er jeg helt med på så. Smart! Jeg regner dog ikke med at komme i nærheden af megahertz grænsen... Jeg skal som sådan ikke bruge det til kommunikation, kun til at sætte nogle få signaler. Hvis vi taler om måske 10 skift i sekundet (max) er det vel ikke nødvendigt!? Jeg har ikke nogen kondensatorer hjemme, så hvis de ikke skal bruges ville det nu være optimalt...

Men tak for tippet da :) Kan godt forestille mig at jeg ville blive frustreret hvis det ikke virkede pga. det :p

Reply to
Casper Bang

Det er ikke et spørgsmål om hvor hurtigt du bruger chippen, men hvor hurtig den er. Udgangen skifter ikke langsommere fordi du bruger langsomme styresignaler (Den vil stadig skifte på 7 ns).

Du kan prøve uden der er en god sansynlighed for at det vil virke, men hvis du ind i mellem får mærkelige signaler på udgangen, så prøv med en kondensator.

Du kan finde sådan en kondensator på et gammelt indstiksprint til PC'en, de bruges alle steder. Typisk står der "104" på dem, det betyder 10 og 4 nuller (10 0000) pico farad, eller 100nF. Hvis der skulle stå 224 kan de også bruges, værdien er ikke særlig kritisk.

Reply to
HKJ

hurtig

Ok, logisk nok egentligt...

ville

hvis

Ja ok, det vil jeg så gøre. Håber det ikke bliver nødvendigt :p

de

Oky. Kan sikkert finde en gammel computer eller to at rippe ;)

Reply to
Casper Bang

forskellige

vist

Hej

Ville bare lige gøre dig opmærksom på at det er mere sikkert at bruge seriel porten.

LPT porten er forsynet fra PC'en - Og den er ikke kortslutningsbeskyttet som seriel porten er. Derudover vil den ved opstart starte op i en udefineret tilstand (SPP, ECP, EPP mode) og du kan få problemer hvis du forsyner et ekstern kredløb som skal sende info ind i PC'en.

Overvej hvad der sker når du tænder dit kredsløb uden at PC'en er tændt - og vice-versa....

Hvis det var mig og der ikke er brug for et højhastigheds interface (læs: hurtigere end 10kbyte/sek), så brug da et skifte register. Brug en 74HC595 (den har 8bit serial in - parallel out - og latch på udgangen også - så output ben kun skifter når du vil ha' det)

/Klaus

Reply to
Klaus Vestergaard Kragelund

seriel

som

Jeg kan godt se hvad du mener... men jeg tror jeg skal have lidt mere styr på det hele før jeg går i gang med seriel kommunikation :) Jeg har lagt mærke til at porten er "tændt" når computeren tænder... jeg ved ikke helt hvilke pins der tænder. Hvor meget strøm kan jeg trække ud af porten? Jeg overvejede at smide en LED på hver pin, bare for at se hvad der er tændt hvornår. Kan jeg trække så meget strøm ud af den uden probs?

og

Ja, det er klart.

Jeg har allerede bestilt de kredse jeg vil bruge... men måske næste gang :)

Thanks

Reply to
Casper Bang

udefineret

ved

LED

For at styre porten direkte skal du sætte den til SPP (Standard Parallel Port Mode) i BIOS. Pull-up i parallel porten er omkring 4k7. I den oprindelige standard var det kun pull-up, med open-collector udgange. Så hvis du fører LED til stel, kan du trække omkring en 4-5 mA. Men så har du altså ikke en veldefineret spænding på udgangen.

tændt -

Det var det ikke for mig - i mit første LPT design. Gav mig mega problemer....

(læs:

74HC595

:)

/Klaus

Reply to
Klaus Vestergaard Kragelund

hmm... jeg har nogenlunde styr på hvordan porten skal kontaktes... det virker uden bios ændringer. Jeg vil kun bruge de LEDs til at SE hvad der er på, ikke måle det... Kan jeg det?

Reply to
Casper Bang

du

jeg

Det kan du godt. Mht det med BIOS - om det virker uden BIOS ændringer, så har du været heldig eller du bruger en gammel PC. De fleste nye maskiner kører med ECP, og hvis du bruger dit program på dem, så vil de ikke virker før du ændrer BIOS ved boot....

/Klaus

Reply to
Klaus Vestergaard Kragelund

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.