Läsa på ser porten

Har lyckats att programera DTR och RTS från 12v- till 12v+ och ovändt :-) Kan man läsa DCD (in)? Hur? Programerar qbasic. Är inte ser och par lika rent elektriskt?

Reply to
Anders Anderzon
Loading thread data ...

Lite ont om information för att kunna svara bra, men

formatting link
bör kunna hjälpa dig.

formatting link
hittar du mer info om olika portar.

Nej, parallellporten kör TTL (0-5V lite förenklat), serieporten kör V.28 (+12V/-12V _mycket_ förenklat).

/Henrik

Reply to
Henrik Johnsson

:-)

Tror det är nått med &H2fe man skall läsa. Kanske ställa in nått riktnings register. Vilken signal skall man skicka in i DCD ttl?

Reply to
Anders Anderzon

Liten förklaring till parallellportens stift och I/O-register finns på min hemsida (kommer inte ihåg var jag stal den):

formatting link

Du kan inte vara säker på att parallellportens I/O-register nås på port

02FE och 02FF eftersom detta beror på BIOS-inställningar m m. På minnesadress 0000:4008 sparar DOS informationen om vilken I/O-port första parallellporten använder.

Det blir lite klurigt i QBasic eftersom det språket saknar bitskiftinstruktioner och heller inte kan läsa mer åt gången än 8 bitar från en minnesposition och bara kan läsa/skicka 8 bitar från/till en I/O-port, men något sådant här bör fixa det:

DEF SEG = 0 PortAddrLow% = PEEK(&H4008) PortAddrHigh% = PEEK(&H4009) PortAddr1% = PortAddrLow% + PortAddrHigh% * 256 PortAddr2% = PortAddr% + 1

Då får du två variabler, PortAddr1% och PortAddr2% som innehåller I/O-portadresserna till första parallellportens I/O-register, oavsett BIOS-inställningar, typ av moderkort, parallellport m m. Dessa adresser kan du sedan använda med INP och OUTP för att sätta och läsa 8 av bitarna åt gången.

I C blir det istället: unsigned short PortAddr = *(unsigned short far *)0x00400008;

Då kan man använda inpw() och outpw() för att läsa/skriva alla 16 bitarna på en gång.

--
Olof Lagerkvist
ICQ: 724451
Web page: http://here.is/olof
Reply to
Olof Lagerkvist

riktnings

Det är com porten jag vill använda. För där finns mer kräm 12v+ och 12v-. Att driva bygget med.

Port 3FE - Modem Status Register - MSR (read only) ¦7¦6¦5¦4¦3¦2¦1¦0¦ 2FE, 3FE Modem Status Register ¦ ¦ ¦ ¦ ¦ ¦ ¦ +---- 1 = DCTS Delta CTS (CTS changed) ¦ ¦ ¦ ¦ ¦ ¦ +----- 1 = DDSR Delta DSR (DSR changed) ¦ ¦ ¦ ¦ ¦ +------ 1 = RI ring indicator changed ¦ ¦ ¦ ¦ +------- 1 = DDCD Delta Data Carrier Detect (DCD changed) ¦ ¦ ¦ +-------- 1 = CTS ¦ ¦ +--------- 1 = DSR ¦ +---------- 1 = ring indicator (RI) +----------- 1 = receive line signal detect

Vill läsa ovan ex DCD. Vet ej hur ännu och inte heller vilken signal den vill ha. Gissar på TTL.

Reply to
Anders Anderzon

[snip]

Du är faktiskt ganska snett ute är jag rädd. Den tekniska termen "kräm" används oftast i betydelsen strömstyrka och då är oftast parallellporten bättre. Generellt sett så är det ytterst vanskligt att driva något från en port på en PC, i synnerhet är serieporten ganska opålitlig. Både spänning och hur mycket ström utgångarna kan leverera skiljer en hel del redan på stationära datorer, på bärbara är det än värre. Du kan inte räkna med att få +/- 12V, i själva verket kanske du inte får mer än +/- 5V vid en belastning som drar 10 mA, i värsta fall inte ens det.

Parallellportarna kan skilja en hel del, men där vet man lite bättre hur de beter sig. Låg utnivå ligger på 0-0,5V ungefär, hög bör ligga över 3V och det är i allmänhet inga problem att dra 20 mA, på gamla burkar kunde man ibland dra så mycket som 64 mA.

Skall du driva eller styra större strömmar än dessa så får du fixa fram det på annat sätt.

Ofta är parallellporten den mest lämpliga för att styra hobbyprojekt.

Att DCD inte skall ha TTL framgick väl i min första postning. Status på DCD läses ut ur bit 7 i MSR.

/Henrik

Reply to
Henrik Johnsson

Som Henrik skriver, parallellporten är bättre till sådant. Annars har jag en liknande bild om serieporten:

formatting link
(Men den innehåller nog inget nytt för dig iofs.) I/O-adressen till första serieporten får du från minnesadress 0000:4000 eftersom du heller inte här kan lita på att det alltid är 03FE. Det kan nästan lika ofta vara 02FE istället.

Uttrycket INP(PortAddress%) & &H8000 blir skilt från 0 när DCD, pin 1 på porten, är hög (om du har I/O-adressen till porten i variabeln PortAddress%, alltså oftast &H03FE eller &H02FE).

Nej, det är 12 V-system.

--
Olof Lagerkvist
ICQ: 724451
Web page: http://here.is/olof
Reply to
Olof Lagerkvist

Hej Henrik, hej Anders!

Jag har testat ytterligare ett alternativ. Köp en USB till Serie Adapter pilla ut strömmatningen ur kabeln, troligtvis röd och svart delkabel. USB-specen lovar 100mA i specialfall 500mA! DB9 kontakten kan användas till signalerna. Det är mycke slöare än PCns vanliga COM-port men i slow speed tillämpning borde det gå bra ;)

--
Trevlig helg önskar:
/Svennis
http://w1.213.telia.com/~u21316909/
Reply to
Svennis

Svennis wrote: [snip]

Det kan vara ett alternativ, men dessa adaptrar har sina svagheter. Anders har ju inte nämnt vad det skall användas till, men det verkar ju inte vara normal seriekommunikation, och då kan det bli lite värre att använda en USB-Serie adapter. Vet att många haft problem med dessa i applikationer där man håller på och flipprar med statussignalerna i porten för att styra elektronik. Med så mycket knepig ostandardiserad hårdvara och drivrutiner mellan applikationsprogram och utgång så har man inte något direkt kontroll. Och att styra den via skrivningar till en port från QBASIC kan man glömma.

Ett område där man sett bristerna i USB-Serie adaptrarna är inom diagnostiksystem för bilar. Där har man ofta behövt exakt kontroll över vissa signaler och det har funkat fint så länge det satt serieportar på laptops. Det blir ju allt mer sällsynt och USB med adapter har visat sig bli lite av ett lotteri.

/Henrik

Reply to
Henrik Johnsson

12v-.

Drivningen av minn lilla Fiber test grunka (honeywell). Lite låg sänning men det funkar. SMT moduler för tempmätning funkar fin utan att få mer än en kontakt. Det känns om comporten är rätt bra skyddad elektriskt. Tål en hel del. Sitter det inte rs232 till ttl konverter i datorn? Sedan en liknande 16550 som styr både par och ser? Får kanske fundera lite på joy porten. Där finns 5v+. Vad tål den?

Reply to
Anders Anderzon

Hmm, om jag inte misstar mig så kan man ta ut max 500 mA på USB-porten

- sedan slår en polyswitch-säkring till och stryper strömmen

problemet är att om man anluter till USB-porten en enhet som strömavtapp utan logik som skvallrar om närvaro, så vet inte OS:t om att man tjuvar ström och delar ut kapaciteten till andra anslutna USB-enheter i 100 mA-steg, vilket gör att hela skiten kaske stannar (USB-mus mm.) när OS: har delat ut sina 500 mA till alla inkopplade enheter och den extra okända belastningen gör att polyswitchen nyper till...

håller med - det är lite för många lager som kan krångla mellan applikationsprogramvaran och responsen i andra ändan på USB/serieporten. Drivrutinerna erbjuder knappast en transparent emulerat UART-krets med alla register och med samma tidrespons i us-tiddomän som att läsa/skriva på en fysisk UART - för det är nämligen det som krävs i industrin - speciellt vid felsökning och hantering av gamla produkter.

Det är bara att vänja sig att ha en PC-card med två RS232 på den kvaravarande pc-cardplatsen för att laptopen övh. skall betraktas som användbart ur en service/mätteknikers synpunkt - och det blir extra viktigt att hitta laptop med 2 PC-card platser eftersom man också måste ha plats med en GPIB-kort då dess USB-varianter heller inte fungerar bra så fort man försöker använda det lite proffesionellt och med hög prestanda.

Kort sagt, nästan allt som är USB-anslutet är bara leksaker idag och håller inte i prestanda för proffesionell verksamhet.

/TE

Reply to
Torbjörn Ekström

Jag vet inte vad som är värst. USB i sig eller windows hantering av densamma. Båda gör mig galen med jämna mellanrum.

Serieport skall vara riktig gammal hederlig serieport, det fungerar alltid (utom när man börjar blanda in ATAPI och annat junk). Åtminstone kan man få ett felmeddelande om nått är paj. Serieport över USB, det blir alldeles för många lortiga fingrar mellan applikationen och hårdvaran. Det är drivrutin för USB-serieportskonverten, för USB-huben i sig osv osv...

Keep It Simple.

Då fungerar det.

--
Ichimusai http://ichimusai.org/ AA #769 ICQ: 1645566 Yahoo: Ichimusai
MSN: Ichimusai1972 AOL: Ichimusai1972 IRC: Ichimusai@IRCNet
"Voice or no voice, the people can always be brought to the bidding of
 the leaders. That is easy. All you have to do is tell them they are
 being attacked, and denounce the pacifists for lack of patriotism and
 exposing the country to danger."
    -- Hermann Goering
Reply to
Ichimusai

Hi Anders!

Joy porten 5V är kopplad direkt till nätdelens 5V spänningsmatning. Där finns det kräm vill jag lova ;)

Problemet är veka kablar som brinner av om drar mer än några ampere.

--
Med vänliga hälsningar:
/Svennis
http://w1.213.telia.com/~u21316909/
Reply to
Svennis

+Svennis wrote

För att få ut 500mA så måste prylen speciellt be om så mycket ström, och datorn kan neka den det om det inte finns, vilket ofta är fallet.

Reply to
Glenn

[snip]

Om du menar att du tar drivningen från serieporten så är det som tidigare påpekat ingalunda säkert att du får det att funka med en annan dator om det skulle bli aktuellt.

del.

Det varierar oerhört mellan tillverkare och modeller, men i allmänhet verkar de tåla en del stryk. Finns dock undantag, på en del bärbara jag drabbats av har serieportarna varit extremt känsliga.

På serieporten sker konvertering av elektriskt snitt i datorn, men det sitter sannerligen ingen 16x50 till parallellporten. Vad menar du att den skulle fylla för funktion där?

Går omöjligen att svara på, finns mig veterligen ingen standard som säger vad en dator skall kunna leverera på den porten och även om det fanns så tvivlar jag på att datortillverkarna skulle följa den.

/Henrik

Reply to
Henrik Johnsson

16550

På Amigan används 8520 till både ser och par.

På joystick porten finns midi=seriel, så där får jag forska vidare.

Funkade fint att läsa av &H2fe för input. Skall vara rs232 signal. Min grunka (honeywell).ger jord. dcd vill ha negativ spänning. Så det får bli "el relä" imellan.

Reply to
Anders Anderzon

Anders Anderzon wrote: [snip]

Midiporten verkar inte speciellt väl standardiserad eller flexibel, kan nog vara knölig att använda till något sånt här.

Skall man göra det rätt så skall man ju switcha mellan positiv och negativ spänning. Man kan mygla till detta utan speciellt mycket elektronik genom att använda RTS för positiv nivå och DTR för negativ eller omvänt. Kan kräva lite trimning och funktionen går knappast att garantera på alla datorer. Se

formatting link
för ett exempel.

/Henrik

Reply to
Henrik Johnsson

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.