Läsa på ser porten

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Swedish to

Threaded View
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?



Re: Läsa på ser porten
Quoted text here. Click to load it

Lite ont om information för att kunna svara bra, men
http://www.gae.ucm.es/~padilla/extrawork/serial.html bör kunna hjälpa
dig.

På http://www.repairfaq.org/filipg/LINK/PORTS/ hittar du mer info om
olika portar.

Quoted text here. Click to load it

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

/Henrik

--

Re: Läsa på ser porten

Quoted text here. Click to load it
:-)
Quoted text here. Click to load it

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?



Re: Läsa på ser porten

Quoted text here. Click to load it

Liten förklaring till parallellportens stift och I/O-register finns på
min hemsida (kommer inte ihåg var jag stal den):
http://w1.703.telia.com/~u70313658/files/parallell_lpt_port.gif

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
We've slightly trimmed the long signature. Click to see the full one.
Re: Läsa på ser porten

Quoted text here. Click to load it
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.



Re: Läsa på ser porten
Quoted text here. Click to load it

[snip]

Quoted text here. Click to load it

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

--

Re: Läsa på ser porten

Quoted text here. Click to load it

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
We've slightly trimmed the long signature. Click to see the full one.
Re: Läsa på ser porten
[snip]
Quoted text here. Click to load it

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

--

Re: Läsa på ser porten
Quoted text here. Click to load it

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



Quoted text here. Click to load it

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




Re: Läsa på ser porten

Quoted text here. Click to load it

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
We've slightly trimmed the long signature. Click to see the full one.
Re: Läsa på ser porten
Quoted text here. Click to load it



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.


Re: Läsa på ser porten
Quoted text here. Click to load it

Som Henrik skriver, parallellporten är bättre till sådant. Annars har
jag en liknande bild om serieporten:
http://w1.703.telia.com/~u70313658/files/serial_com_port.gif
(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.

Quoted text here. Click to load it

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).

Quoted text here. Click to load it

Nej, det är 12 V-system.

--
Olof Lagerkvist
ICQ: 724451
We've slightly trimmed the long signature. Click to see the full one.
Re: Läsa på ser porten

Quoted text here. Click to load it
12v-.
Quoted text here. Click to load it

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?




Re: Läsa på ser porten
Quoted text here. Click to load it
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
We've slightly trimmed the long signature. Click to see the full one.
Re: Läsa på ser porten
Quoted text here. Click to load it
[snip]
Quoted text here. Click to load it

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.

Quoted text here. Click to load it
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.

Quoted text here. Click to load it

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?

Quoted text here. Click to load it

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

--

Re: Läsa på ser porten
Quoted text here. Click to load it
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.



Re: Läsa på ser porten
[snip]
Quoted text here. Click to load it

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

Quoted text here. Click to load it

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 http://www.planetfall.com/~jeff/obdii/schematic_b1.pdf för ett
exempel.

/Henrik

--

Site Timeline