Latch and Ignore?

Thread Starter

johnyradio

Joined Oct 26, 2012
615
Nope, KISS.
Maybe true about reverse direction commands.

But when the controller can hear itself at the far end, that tells the controller all the nodes are latched, and also tell it how many nodes there are. That's information it can't get any other way.
 

nsaspook

Joined Aug 27, 2009
16,330
Maybe true about reverse direction commands.

But when the controller can hear itself at the far end, that tells the controller all the nodes are latched, and also tell it how many nodes there are. That's information it can't get any other way.
Sure, a loop-back is logical and I assumed, was part of the design.
1699921898638.png
 

Thread Starter

johnyradio

Joined Oct 26, 2012
615
That's great! Tho', as far as i can tell, SPI daisy chaining requires the controller to know exactly how may nodes there are. It sends exactly the right number of bits to fill up all the nodes. Then it sends an execute command.

During the first command cycle (set of 16 SCLK pulses), 0x7FF8 gets loaded in the shift register of IC1. With active-low CS remaining low, this data propagates through IC1 and is output at DOUT1 during the next command cycle. During this second command cycle, the data from DOUT1 moves directly into DIN2, and 0x7FF8 is loaded into IC2's shift register. Simultaneously, a new command, 0x7000, gets loaded into IC1's shift register, thus overwriting its previous command.

In the third command cycle, the first command, 0x7FF8, is loaded into IC3's shift register. The second command, 0x7000, gets loaded into IC2, and IC1 receives a new command, 0x6000. All three ICs now have a command, which they received through the daisy-chain in their shift registers. When active-low CS goes high, the loaded commands execute; A1 and B1 are set to zero scale, A2 and B2 set to midscale, and A3 and B3 set to full scale.
Not sure how that can work when the controller doesn't know how many nodes there are. To clarify, my system will have a fixed number of nodes, but the controller won't know how many there are. Even if i programmed a fixed node count into the controller, i'd still need some way to issue the execute command with one wire (if i want to avoid another wire, which i do).

I think we still need a latch-and-pass system. But i welcome ideas!

The latch is just an SPST switch activated by the fifth bit.
I don't understand how.

Do you mean? the overflow triggers an external switch to connect the controller to the next node?

The downstream connection is determined by the preceding node, not the current one.
???
 
Last edited:

nsaspook

Joined Aug 27, 2009
16,330
That's great! Tho', as far as i can tell, SPI daisy chaining requires the controller to know exactly how may nodes there are. It sends exactly the right number of bits to fill up all the nodes. Then it sends an execute command.



Not sure how that can work when the controller doesn't know how many nodes there are. To clarify, my system will have a fixed number of nodes, but the controller won't know how many there are. Even if i programmed a fixed node count into the controller, i'd still need some way to issue the execute command with one wire (if i want to avoid another wire, which i do).
How about this.
You have the loop-back, you can tell how many bits (and how many nodes) it takes to go full circle back to MISO after sending X 'sizing' command as it moves from node to node to back the source.
1699927846924.png
 

Thread Starter

johnyradio

Joined Oct 26, 2012
615
The SPI method isn't terrible. It would only require one more wire, the "execute" bus, for a total of two wires. Not too bad.

I just caught on that i've been saying "latch" when i should have said "shift register".

But what does "execute" mean in my application?

My application sends the outputs of the shift registers into demuxers. So "executing" means allowing the outputs of the shifters to get loaded into the demuxers.

Ideally, the shift register would have an enable pin for the outputs, so i can turn on the output of the shifter when it's loaded.

If not, then i think i'll need an actual latch
 
Last edited:

Thread Starter

johnyradio

Joined Oct 26, 2012
615
I'm curious as to what type of product this protocol/topology is intended?
in my application, i'm demuxing the outputs to mosfets.
But this nice simple protocol could be used to send commands to any series string of peripherals.
 
Last edited:

Thread Starter

johnyradio

Joined Oct 26, 2012
615
Unless i'm missing something, it seems we almost have a complete no-address, no-clock, no code (at the nodes) serial protocol implemented with nothing more than latching shift registers and a single wire.
 

nsaspook

Joined Aug 27, 2009
16,330
Unless i'm missing something, it seems we almost have a complete no-address, no-clock, no code (at the nodes) serial protocol implemented with nothing more than latching shift registers and a single wire.
The data is a single wire loop-path but you also need a clock and maybe a execute signal. That's the price you pay for having just a dumb physical interface that's not really a communications protocol.

There are plenty of products that use serial daisy-chained connections with protocols.
https://developer.electricimp.com/resources/neopixels
 
Last edited:

eetech00

Joined Jun 8, 2013
4,705
in my application, i'm demuxing the outputs to mosfets.
But this nice simple protocol could be used to send commands to any series string of peripherals.
Hmmm…
Is it intended to be used with devices some distance apart?
If so, how is signal integrity maintained between endpoints?
What prevents fake node from being installed?
 

Thread Starter

johnyradio

Joined Oct 26, 2012
615
Hmmm…
Is it intended to be used with devices some distance apart?
If so, how is signal integrity maintained between endpoints?
What prevents fake node from being installed?
Excellent observations. In my application, the nodes are all inside the same hardware device chassis, along with the controller.
 
Top