Beste elektronica enthousiasten,
Ik ben bezig met een -voor mij- best wel een gewaagd project.
Ik wil graag een randapparaat bouwen voor de aloude Atari ST computer. Deze computer heeft een SCSI achtige poort genaamd ACSI (Atari Computer System Interface). Het is feitelijk een bus welke direct met DMA chip van de ST communiceert en voor 40 jaar geleden best een snelle interface. Er kunnen theoretisch tot acht randapparaten op worden aangesloten. De bus is op 5v TTL niveau. De ST is de master op de bus en bepaald met welk apparaat hij wil communiceren. Vijf signalen gaan van ST naar de randapparaten. Twee signalen mogen door één van de randapparaten op de bus worden laag getrokken. (de ST bepaald vooraf welk apparaat). Als deze signalen niet laag getrokken worden dan moeten de randapparaten deze in hoge impedantie mode (high-z) houden. Daarnaast zijn er nog acht datalijnen waarmee data byte voor byte verstuurd of gelezen kan worden. de datalijnen zijn dus bidirectioneel. Deze lijnen worden normaliter ook in high-z of input mode gehouden door het randapparaat tenzij het zijn beurt is om data te schrijven.
Ik ben bezig om een printplaat te ontwerpen en ben al een stukje op weg maar ik blijf met wat onzekerheden zitten. Overigens wil ik een Raspberry Pico W aansluiten op de printplaat. Deze pico W werkt op 3.3 volt. De voeding komt via de Pico zijn USB connector. In de bijlage mijn huidige schema.
Vragen:
- De Pi werkt met 3.3v op de pinnen. de Atari ST op 5 volt. Ik heb dit nu opgelost door twee LVC245A transceivers te gebruiken. één voor de acht datalijnen die dus bidirectioneel zijn en één voor vijf inkomende lijnen welke dan eigenlijk als levelshifter gebruikt wordt aangezien ik de DIR en OE poorten vast heb verbonden met VCC of GND. Mijn vraag is eigenlijk: Moet ik deze 245's voeden met 5 volt of 3.3 volt? (DIR EN OE zijn ook 3.3 volt gestuurd)
- Tussen de twee uitgaande lijnen is een SN74LS07 aanwezig. Deze lijnen moeten in HIGH-z of laag getrokken worden. Echter twijfel ik over de werking hiervan omdat ik of 5 volt (via pullup) of 0.03 volt meet los van de ST, wat dus geen 0 volt is. (p.s. ze komen van Aliexpress, mogelijk zit daar een probleem)?
- De derde vraag gaat over pullup/pulldowns. Ik vraag me af of er behalve op de twee uitgaande lijnen misschien op de andere lijnen ook beter pullups of pulldowns geplaatst dienen te worden. Ik weet van een ander project (acsi2stm) dat de lijnen gewoon direct op de 5v tolerante pinnen van een STM geplaatst zijn zonder externe pulls. Veel makkelijker natuurlijk maar ik wil een pico W gebruiken vanwege zijn wifi mogelijkheden.
Advies en opbouwende kritiek is van harte welkom!
Voor wie het wil lezen:
https://docs.dev-docs.org/htm/search.php?find=ACSI voor meer info over de ACSI bus
https://github.com/retro16/acsi2stm/tree/stable Het acsi2stm project
Roland van Leusden
It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.
Tussen de twee uitgaande lijnen is een SN74LS07 aanwezig. Deze lijnen moeten in HIGH-z of laag getrokken worden.
De SN74LS07 heeft een open collector uitgang die je met een pull-up naar hoog kan trekken of die laag is, dit is precies wat je meet.
Het is dus geen Tri-state: In tegenstelling tot 74LS244 of 74LS245 chips, heeft de SN74LS07 geen "Enable" (OE) pin om de uitgang in een echte high-impedance toestand te forceren onafhankelijk van de input.
benleentje
Golden Member
fatbeard
Honourable Member
Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.
Voor het interfacen van 3.3V en 5V logica zijn de logische nivo's bepalend: wat is de VIH en VIL van de ontvangende chip en haalt de zendende chip die met zijn VOH en VOL?
Doorgaans heeft een 5V-chip met een TTL-level input geen enkel probleem om een 3.3V-chip met CMOS-level outputs te verstaan, andersom moet de 3.3V-chip tegen 5V kunnen maar verder gaat het ook wel goed; ik gebruik meestal een 4k7 of 10k serieweerstand en laat de interne clampingdiodes het werk doen. Even oppassen met deze truuk voor snelle signalen: er ontstaat een kleine vertraging door de weerstand icm de ingangscapaciteit dus deze truuk is niet universeel toepasbaar; check de timing parameters van de circuits in kwestie.
5V CMOS inputs kunnen een 3.3V output meestal niet verstaan, omdat de VOH van een 3.3V output niet gegarandeerd de VIH van de 5V input haalt.
Last but not least: TTL inputs vinden het niett zo heel fijn om direct aan Vcc geknoopt tte worden, een 1 à 2k weerstand is aan te bevelen. Direct naar GND kan prima; de overgebleven 07 poortjes zou ik zo aansluiten.
Pull-ups en -downs kunnen ongedefiniëerde situaties voorkomen op 3-state bussen, maar meestal worden daar vandaagdedag de ingebouwde mogelijkhedeb van de CPU voor gebruikt.
>> Last but not least: TTL inputs vinden het niett zo heel fijn om direct aan Vcc geknoopt tte worden, een 1 à 2k weerstand is aan te bevelen. Direct naar GND kan prima; de overgebleven 07 poortjes zou ik zo aansluiten.
Dus in mijn schema zou je een weerstand op de voeding van de LS07 zetten? Dankjewel voor je reactie.
Op maandag 9 februari 2026 21:17:51 schreef Roland van Leusden:
[...]De SN74LS07 heeft een open collector uitgang die je met een pull-up naar hoog kan trekken of die laag is, dit is precies wat je meet.
Het is dus geen Tri-state: In tegenstelling tot 74LS244 of 74LS245 chips, heeft de SN74LS07 geen "Enable" (OE) pin om de uitgang in een echte high-impedance toestand te forceren onafhankelijk van de input.
Dank je Roland, fijn dat je dit even scherp stelt.
En dit kan geen kwaad op een Bus met meerdere (max 8) slaves? Theoretisch zouden er dus 7 slaves aan kunnen hangen met ieder een pullup weerstand die de lijn naar 5 volt trekken. Echter als één van de slaves moet reageren op de Master dan moet de lijn wel laag getrokken worden. Dat moet dan met een open collector wel lukken volgens mij.
Roland van Leusden
It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.
Als deze signalen niet laag getrokken worden dan moeten de randapparaten deze in hoge impedantie mode (high-z) houden.
Theoretisch zouden er dus 7 slaves aan kunnen hangen met ieder een pullup weerstand die de lijn naar 5 volt trekken.
En daar voldoet de SN74LS07 niet aan. Immers 5V is niet high-z.
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
benleentje
Golden Member
En dit kan geen kwaad op een Bus met meerdere (max 8) slaves?
Ja dat kan kwaad, want via de weerstanden zet je dan over al een 1 op de bus.
Andere devices kunnen dat wel naar laag trekken, maar dat is niet de bedoeling en die zijn er niet voor gemaakt om extra stroom te sinken. Beter een echte 3 state bus driver gebruiken.
[Bericht gewijzigd door benleentje op (11%)]
fatbeard
Honourable Member
Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.
Een 74LS07 heeft een open collector uitgang.
Als die "hoog" wordt gestuurd is de uitgang wel degelijk hi-Z.
Maar dat moet je dan wel in de software regelen, omdat er geen aparte OE pin is.
fatbeard
Honourable Member
Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.
Op woensdag 11 februari 2026 17:24:15 schreef Frankbeen:
>> Last but not least: TTL inputs vinden het niett zo heel fijn om direct aan Vcc geknoopt tte worden, een 1 à 2k weerstand is aan te bevelen. Direct naar GND kan prima; de overgebleven 07 poortjes zou ik zo aansluiten.Dus in mijn schema zou je een weerstand op de voeding van de LS07 zetten? Dankjewel voor je reactie.
Voor alle duidelijkheid: een (LS)TTL input zou je via een weerstand met de voeding van de desbetreffende chip moeten verbinden, elke chip z'n eigen weerstand (idealiter elke input, maar dat is alleen nodig voor echt oude chips).
Ik heb geen idee wat je bedoeld met "een weerstand op de voeding zetten".