[abc80] V.24-ingångarna är TTL-kompatibla!

H. Peter Anvin hpa at zytor.com
Tors Jan 4 03:48:29 PST 2018


On 01/04/18 01:32, Robert Juhasz wrote:
> Snyggt! Vad tror du om TX - får man bra hastighet om man bara driver
> gaten som du ritat, eller kan man snabba upp det med ett motstånd till
> jord så att man måste driva någon mA med TX?
> 
> Robert

Du får absolut bäst hastighet genom att driva gaten direkt.

Utgångsimpedansen är anpassad för en 100 kHz, 5 V I2C-buss; I2C är en
"open drain resistive pullup bus".
100 kHz är basfrekvensen för I2C.

Jag kom på en idé i kväll: om man kan fördröja SCK-signalen med 2.5 µs
så kan man dubbla hastigheten och komma upp nära just 100 kHz; det gör
att man kan flippa SCK-biten i utgångsregistret samtidigt som SDA, så
man behöver bara två OUT-operationer per bit i stället för 3 - men två
av vilka kräver att vara 1/4 cykel ifrån varandra.

100 kHz kräver ändå två I/O-operationer per 30 klockcykler, vilket
troligen inte är möjligt i praktiken, då bara själva I/O-operationerna
kräver 10-12 cykler per.

Det hjälper tyvärr inte läshastighen lika mycket eftersom det inte finns
någon strobe på V.24-kontakten, så man måste använda OUT för att pulsa
klockan ändå.

Tre motstånd och två kondensatorer och det funkar i alla fall i
simulering (Qucs).  Det krävs två kondensatorer eftersom en enda RC-par
inte kan skapa ett fullt 90° fasskift.  R7 kompenserar för Q2s Vth,
vilket är 2.1 V nominellt för 2N7000/BS170.

http://www.zytor.com/~hpa/abc80/abci2c-2.pdf

Tror det är det snabbaste som går utan att använda busskontakten, i
vilket fall man kan använda ett chip som PCF8584 + en massa lös logik
(eller en PLD) för att få ABC-bussen att likna en Z80-buss igen :(
Eller så sätter man både I2C och interface-logik i en CPLD.  Eller
övertygar Anders att lägga till en I2C-port på ABC-SDIO-kortet :)

Anledningen att jag tittat så mycket på just I2C är att det är en
seriebuss som kan ha flera enheter samtidigt, och det finns mycket
billiga I/O-expansioner till den bussen.

	-hpa







More information about the ABC80 mailing list