Giter Club home page Giter Club logo

Comments (8)

kalkyl avatar kalkyl commented on July 19, 2024

An alternative idea is to invert the REQ logic to idle low, which would simplify the hardware and maybe reduce the mental overhead a bit...?

Combined-REQ-GO

Truth table:

DEV	ARB			DEV	DEV
1:REQ	1:REQ/nGO	->	1:nGO	GATES
LOW	In: HiZ		->	HI	OFF	Idle/Waiting for request
HI	In: HiZ/Out: HI	->	HI	OFF	Request to send/Not accepted
HI	Out: LOW	->	LOW	ON      Request accepted

Notes:
U1: XNOR gate (i.e. SN74HC266 or CD4077)
U2: Tristate buffer (i.e. SN74LVC125)
C1: sized to avoid false nGO triggers, depending on capacitive load
The nCS, COPI and SCK tristate buffer gates were omitted in the drawing for brevity (read "lazyness").

EDIT: Updated drawing with correct logic gate, added C1 for de-glitching, added R2 for defined behaviour when the device is not plugged in. nCS driven from controller, through tristate gating buffer.

from anachro.

m-ou-se avatar m-ou-se commented on July 19, 2024

That wouldn't work: With this AND port, the nGO pin would be low whenever the REQ is low. Meaning the communication is enabled while the device isn't even asking to communicate.

In my schematic, I tried to minimize both the number of pins that have to go the device (the lines that cross the leftmost blue line: just one go/req line next to the three spi lines), and the amount of extra components needed on the device (just one resistor).

from anachro.

kalkyl avatar kalkyl commented on July 19, 2024

No 1:REQ/nGO is in floating state, so both ports will be low, so the AND XNOR output / nGO input is HI...

from anachro.

kalkyl avatar kalkyl commented on July 19, 2024

Only when the arbitrator's 1:REQ/nGO is pulled low and the device's 1:REQ is hi nGO will go low

from anachro.

m-ou-se avatar m-ou-se commented on July 19, 2024

in floating state

How could that work? How would the arbitrator tell if there's an incoming request if the pin is floating? It'll just randomly measure high or low if that pin is floating. Same for the nCS pin.

from anachro.

kalkyl avatar kalkyl commented on July 19, 2024

In idle state it will be pulled low by 1:REQ, but yeah true that nCS will be a problem as is...

from anachro.

m-ou-se avatar m-ou-se commented on July 19, 2024

But if REQ is low in idle, the output of the AND port will be low, enabling the buffer and enabling the GO signal.

from anachro.

kalkyl avatar kalkyl commented on July 19, 2024

Oh sorry, i meant it should be an XNOR gate

from anachro.

Related Issues (9)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.