Simple symmetrical multi IC logic

Thread Starter

Iceking007

Joined Feb 20, 2019
14
Hello,

So I'm trying to design a circuit that would be simple at the core, but I have a few contains so I'm really trying to maximize the efficiency. The basic design will consist of two wires in, two wires out in a daisy chain fashion. Essentially an "ON" signal (or high) will be sent from one end, the first IC will see the constant power source and know it is the first unit, it will then register it's own address and send a negative pulse down the line (lo or "OFF"). IC two will get an on indication, call it for say a 3ms count, and then see the single negative 1 count, and then a steady on again, say 3ms again (I'd go 6 to differentiate, but let's keep it tight so the cycle doesn't take forever). IC #2 sends OUT (+) 3ms, (-) 0.5ms, (+) 0.5ms, (-) 0.5ms, and then constant (+). This then ripples down both directions of the line, IC #1 gets the pulse from IC #2 so it knows it's not the last unit, and IC #3 gets the two pulse and carries on the cycle. The last IC doesn't get a return pulse and thus knows and keeps a constant on to illuminate an LED set to pulse at a predetermined interval when the circuit is on.

So a basic talk and check circuit that flashes a light. (Stop right here for a second, there's probably lots of ways to do this and this might seem overkill or complex, although I can't go into specific details, I am confident this part of the project requires this much complexity, although I am known for over engineering so if you have a better simpler solution please don't be shy).

So if we look at the circuit, say clamp a scope on the two wires between unit two and three and say there are four units:
(Imagine each symbol is a half millisecond time give the above template, spaces only to ease reading)

++ ++ ++ -+ -+ ++ ++ ++ | ++ ++ ++ -+ -+ -+ ++ ++ ++ | ++ ++ ++ -+ -+ -+ -+ ++ ++ ++ | ++ ++ ++ ++ ++ ++ ++ ........ infinite.

{IC #3 doesn't see the power on or IC #1 so that's why all we see on the scope is what #2 transmits and everything else down the line that returns on the open bus}
{another thing to mention here is that the ICs should have some memory, but I don't imagine this data link process will take more than a few seconds, and can be adjusted to tighter intervals to limit that with practical testing. So as long as power is up the ICs should store their address in volatile memory, if the last IC drops out there should be a reset, everything put to rest, the addresses cleared and say a reset counter... that can get complicated so we'll take that for now. If an IC is added, removed anything, the process will automatically continue, a new IC would see power, get the data link count and add itself on, one being removed will cut the data link and reset}

So yes some redundancy on there maybe some polish which I'm grateful for advice, however primarily looking for the main guts at this point.

Adding complexity and constraints:

Okay, so the two biggest constraints are
1) only two wires, I'd love to use one but that adds an avenue I don't want to go down with completing the circuit so it's two wires for now.
2) size, space, component quantity... is all extremely limited (same old dance right?). Okay but I'm talking an ideal space of literally as small as possible. Like if I could have a single IC with only room for say 6 smd pins that would be ideal. Pinky to thumb size, okay manageable, worst case scenario... well theatrically it could be as large as 50mmx100mmx50mm, so I could run mechanical relays and the whole nine but the purpose is to get this as small as reasonably practicable and cost effective in simplicity.

The complexity is as follows:
1) must be symmetrical and 'polar'. Alright so the "chip" must be able to be connected "Unisex" but the chip must decipher it's orientation (left side in right out or vice versa, A in B out what ever it is, turn it around and it is opposite right in left out or B in A out).
2) ideally the primary input source would be an analogue out (into this circuit), it will be high (max output) for normal operation. Again ideally, this analogue will be controlled and the ICs will also register this and control an additional output. I'm thinking a servo motor, a simple position that correlates to the voltage of the analogue control, if the analogue control is zero the servo motor would be at "Max" position. When analogue is max the servo would be automatically zero, let's call these home and rest. Analogue max = Servo Home, Analogue zero = Servo Rest. Each IC is to have its own servo (potentially 2 or 4 but mostly just one -hopefully- unless I have to use two).

Each IC will also have a storage capacitor to aid in servo control, led flash, and just smooth power interruptions etc but that's fine tune fluff; obviously various capacitors, transistors, and resistors will be required but as few and small as possible. It goes without saying that if the ICs are disconnected then all the servo motors go rest to shut down the production (micro servos, low power draw, low load/torque required). (It is at this point that I'm realizing the ICs will probably have to continue pulsing the "4" (-+ -+ -+ -+ ) so that the data link is in check, scratch that... the last IC will continually have to pulse the code and all the ICs upto 1 will read the integrity).

If we've gotten this far in wish list then that is fantastic, I'm thinking the whole servo thing is going to be a challenge to say the least.

Practically speaking, let's say the Analogue puts out +12vdc, perhaps we monitor +12vdc through +6 or +7vdc to allow voltage to run the ICs and the led with some drop. So Analogue is controlled between +6-12vdc where 6vdc and less = 0vdc (for the purposes of the servo motor position). One last thought on the servo motor, to save from "individually" calibrating each motor, the motor could auto calibrate. It could either have a home stop and a load/torque monitor and measure the range between and use that, or just a home position or again home torque and rest torque so the IC can see if the servo is being strained it will hold that as it's min/max position and be self adjusting if conditions change or parts wear out.

Designer notes:
• I see two practical functions of a "storage" capacitor.
1) energy bank to be collectively pooled together and used as required
2) isolated to the use of one IC

• Most likely the servos would be spring returned to rest, and powered to home

• Polarity will be constant as far as +/- so if a wire is + it will always be + but L/R polarity can change

• The led takes place of an IC. (if there are four ICs, then the led would plug in as if it were IC #5. Please not it literally is just an LED, perhaps an LED and a resistor, because otherwise each circuit would be slowly resisted/impeded down to nothing; but ideally I would not have to put the resistor with the led... not the end of the world I guess and probably doesn't make sense, but again that's a design consideration for the big picture. Although the ICs would have two outputs one for data to communicate and one for last IC to flash so yes that should work to incorporate the resistor for the flasher).

• Anywhere from one to say one hundred (100) ICs might be linked. I doubt it'll be used for more than 50 but it's important to note that ideally this circuit should be of reliable construction to operate in this manor with even 200 or 500 of these units connected with all the same cookie cutter requirements/constraints.'

• I'm hoping the current can be minimal, as with the design constraints, I am looking at using 30awg wire, possibly an armature wire for the two input and two output daisy feeders.

• Well I believe that is all. Like I say I did design a crude 'relay' based circuit to handle the "connection polarity" and that would power one relay and isolate the other and power the IC and that's where this magic comes in. But if using an IC the two relays can be simply replaced so it's not even beneficial adding a schematic/drawing.

Thank you very much for any assistance, and your time in reading this and conjuring some ideas.
 

ci139

Joined Jul 11, 2016
1,898
? 500 LED-s @ moderately ON = 500·16mA = 8A (·3.3V) ≈ 27W supply
you always need to "integrate over the entire system"

What is it you want to achieve ( ← that — against your available supply options ... )
 

Thread Starter

Iceking007

Joined Feb 20, 2019
14
So there's only going to be one led per the entire chain (that is active). To help with what is going on here, let's imagine that there are double pole relays interconnected between this assembly reversing and disconnecting the ICs at certain intervals (this isn't actually the case but I'm attempting to fill in the gray areas of uncertainty). When these relays close an IC is added and "it's" led is removed, when the contacts are open the IC is removed and LED is added. These contacts can also be switched by another 'polarity' relay swapping 'left from right', 'front from back', to the other. The led will always be on the end after the last IC 'opposite' the "supply source".

So:

SUPPLY-IC-IC-IC-IC-IC-LED (other ICs may physically be located here but are disconnected) ...IC-IC-IC-IC...
or
LED-IC-SUPPLY

The ICs each have a servo but that's not a constant draw and have capacitors to help feed them. They will only turn about 90° total swing probably, could be less, but not likely more. They activate something else, a very light load. I guess if you have to think of the servos as 'doing' something... let's say they turn a pot rheostat or some other analogue sensor device that would react to actual position. And no threy cannot be substituted, they physically need to have some sort of electromechanical actuator for this purpose that would interpret the voltage change in the system for a position. So if you change 3 volts they would move to the third position. Assuming the 6-12vdc range, they would then have "6" positions and be at "halfway".
The details as far as speed of this reaction, timing of change, etc all needs to be adjusted but we need the meat and potatoes before the whipping cream.

I have now done some external design adjustment. I have decided because everything would ideally be on the inside of this one IC or more likely a small PCB, that there are terminals A+/-(in), B+/-(out), C+/-(out), Y+/-(out), Z+/-(in).
Where:
A=source input "left"
B=output bus "left"
C=servo
Y=output bus "right"
Z=source input "right"

If this is the last IC then the LED would be connected to either "B" or "Y"; and the other would be the data bus to the other ICs (remember there are only two wires in and two wires out, so "A+" is the same wire as "B+". Likewise Y and Z are tied together and C is independent). If this is a middle IC then "B" and "Y" are both data bus and transmit the exact same information/signal (including power for the whole system), the other ICs in the system will continually monitor A and Z to register circuit continuity. Since the last IC is the only transmitter on the bus, other than the "Source power", all other ICs just monitor for continuity. If this is the first IC then only "B" or "Y" will be an active bus dependent of the source being the reciprocal of either "Z" or "A" respectively. Remember these are identical units, so IC #17 can take the place of IC #1 or IC #* really, and vise versa, as well as being flipped independently itself.

I'm getting home soon and might have some time to draft something up. I'll have to see about contacting a company to make me some prototypes so that I can get these into production.

Please let me know if you can offer any assistance.

Thank you, be safe.
 

Thread Starter

Iceking007

Joined Feb 20, 2019
14
Hello again,

Okay so I put a little time into scratching out some basic circuitry. Although I am (was) hoping for pre-manufactured/existing chips, I'm designing as much of the architecture as I can to both, aid in demonstrating my requirements for assistance and advice here, as well as comparing my needs with available products and help if I need to develop something from scratch.

So attached is roughly what I'm thinking currently. Already I have some changes as this is still just rough. I've only started populating components to the CPU, initially it contained both registers and clocks however I'm thinking it'll be best if that is separated; so the CPU requires it's own clock now.

As you can see I mostly focused on the Passthrough (Tx/Rx) controller. Initially I was planning on using Depletion N-Type MOSFETs, however finding a driver IC for those considering my system power is probably not going to be ideal, so I went with standard N channels. I was using pull up resistors initially but I think I'll just leave ALL control of the FETs to the driver. I'll probably add a separate led control chip in there also but not currently included.

Still looking for help and advice please, this isn't really a how to, but more a how do I? However having said that I have no problem if others are learning from this and following along. Please keep the advice coming in and I hope this helps you do that more effectively.

Thank you.

P.S. Also if you are following along, you might notice I changed some of the terminal/circuit labels, just a subtle difference.
IC Design Layout Rev 1.04.jpgPassthrough Controller Rev 1.04.jpg
 

ci139

Joined Jul 11, 2016
1,898
As you can see I mostly focused on the Passthrough (Tx/Rx) controller.
*** can you draw a signal -AND- control signal diagram of one ? command to servo ?

Don't answer the following : (it does not read out from schematics) how that command is rejected through up-by/in-line modules...
...(? by a serial command? then why there are multple (? sync. ?) clocks) : just describe the ***

or don't . . . if your actual question is about some other feature

(i perhaps decode your high volume input in some of the upcoming days .... it's really tricky to locate your actual concern ...)
 

Thread Starter

Iceking007

Joined Feb 20, 2019
14
***FOREWORD: As I generated this reply, my though process evolved, and the following is a log of that. If you would simply prefer to jump to the simplified current result, please skip down to the division in the page.***

Okay,

So I do not currently have specifications on the data bus (to which I believe you are referring). They will probably be digital, however the servo driver will most likely require analogue. Depends how all the details come together and what I require for data transfer.

Alright, obviously each "module" is going to do it's thing. So the "Input Monitors" will count the pulses on the System bus and they will register that count based on their own internal timer clock. This is necessary due to variances in the 'system clock'. So think of each unit powering up in sequence once it receives power. Now, the first unit will power up and set it's clock and output it's pulse signal. The second unit will power up with the first 3ms feed and then it will receive the pulse from #1, that will set the clock in #2 to sync the clocks as best as possible. There is the possibility that both Input Monitors can share a single clock; however the CPU will require it's own dedicated clock, it will need to maintain a consistent steady counter for it's internal timings (or so I think). The Input clock will reset to the input pulse (only for each sequence) so that it is timed to the system, again this might be a single clock sufficiently.

Once the system is started up, it will log which side is the source and which side is the system. The middle units will essentially just connect the bus and then react to system voltage for servo control, they will also monitor that the system is still intact by registering the pulses sent on the bus. The end unit is the only one doing any real work once the system is up and running (other than all the servo control), it will continually pulse it's address down the chain for continuity as well as divide the System bus from the led flasher, and flash that led.

It has just occurred to me that I wouldn't necessarily require individual addresses, if the bus is open to start, each unit would just require an arbitrary pulse to notify it that there are other units. So in essence I could just send out a single pulse every 10 ms or something, each unit would not need to address that just recognize that it is there and the system is intact. I should perhaps do that to simplify components eliminating the registers, comparators, and reduce memory requirements.

So to adjust the sequence of events:

Unit #1 will power up, it's clock will count and after 3ms recognize only steady power and no system pulse, it will then connect the bus to the downstream side for 2ms to allow overlap. The second unit will power up it's clock and receive say three 0.5ms pulses telling it where power is and it's not the first unit. It will connect the bus and repeat. Each unit will have to monitor current flow through the system to register when the bus is broken for the pulse interval, that is the only way I think that prior units will 'see' the pulse. When the last unit realizes there is no pulse because it is connected to an led then it will register as the last unit. In which case it will isolate the system bus, pulse for the previous units, and power the led.

I'm now thinking that I will use a simple resistor and transistor to make and break the bus pulse, I think the current draw from all the solid state circuitry would be too small and subtle to notice on the bus. Given all the capacitive nature, and potential length of the system. Only the last unit in the chain will have the resistor connected obviously.

So to start, each unit will send the pulses by disconnecting the bus which will notify the following unit, as well as pulse the resistor closed to notify the units behind that they are in the system. The last unit will do the same and see that no following unit pulsed the bus and thus it is the last unit.

Actually this is a good process; I severely apologize to everyone, as you might tell I am brain storming as I type this; this question has helped me rethink through my earlier system logic model. I have left all this rambling in because I feel to erase this all and pick up from where I am now would discombobulated to the discussion (and perhaps rude).

**********************************************************************************************************************************************************
(The following contains duplicate information of the above, it is designed as a more cohesive
description at this time and to save everyone from reading through the process above)
**********************************************************************************************************************************************************


So each unit turns on and has a 30ms pulse timer, the pulse timer sequens the register so only three consecutive pulses will be logged corectly. Each unit will pulse the bus when appropriate, three times, after 20ms of connecting the bus down system. Once the pulse is transmitted each unit will wait for the follow pulses. Follow pulses are seen on the bus as current flow down the bus through the resistor and back to source, they will also be counted in the pulse register for validity and 'event logging'. That tells the unit to disconnect the pulse timer as it is no longer required. All it will require is any sort of pulse or continuous feed to reset the timeout timer. The timeout timer activates the servo to Rest from it's current position (any position between Rest and Home). This timeout function will only be activated if the unit is proved not to be the last unit. The unit will prove to be the last unit if it does not receive a pulse back after 30ms once it has connected it's bus down the line. At which point it will log that, isolate the System Bus and pulse the bus and led independently.

NEW Process of events:
1) Unit turns on, waits 30ms for three system pulses.
-No pulses = First unit (it will never pulse the resistor across the bus as there is no purpose)
-Three pulses received = Unit in the middle of the chain or last unit (it will pulse the resistor across the bus as well as the bus FETs)
2) First unit connects the bus and sends three system pulses at 20ms and within 30ms (so 0.5ms on/off cycle means 3ms), then it waits, counting on the pulse timer for 30ms.
3) Next unit receives System Bus power, and the pulses. It pulses the bus. Previous unit receives the pulses and activates the timeout timer, the cycle continues.
4) The last unit powers up, repeats the cycle and does not receive a follow pulse. It then registers as the last unit and pulses the System Bus only via the resistor, (I suppose the resistor could be continually connected at this point). It isolates the System Bus from the LED and flashes.
5) All units monitor System Bus integrity, and system voltage supply (for servo activation).
6) If system voltage is reduced, disconnected, or System Bus integrity drops out, the servos are activated accordingly.
Alright, sorry for the long winded post. I hope that helps to clear some things up, thank you for that help ci139! ( :
 

ci139

Joined Jul 11, 2016
1,898
with the probable large scale system you need to address the contact resistance (if you go low power - as what i assume/understand you intend - you need to solder all connectors) . . . more over - if the system is industry targeted - the low power is tricky to implement''

internal clock for each item is a bit of overkill ← that unless such is/gets purposed by overall design as a "benefit" against design cost . . .

i do realize that sometimes the NEW approach even as theoretical may open up a future new technology . . . but you can't blindly hope the future will "pad" the "todays" shortcomings of such design

not trying to discourage you - but do consult your course master or involved parties

(i still haven't fully scanned your input . . . gonna PDF this damn thread or i never will = Page.tyle basic ... )
 

Attachments

Thread Starter

Iceking007

Joined Feb 20, 2019
14
Contact resistance might be an issue but I'm hoping not. My plan actually is to use magnetic contacts; but that doesn't need discussion, there are constraints there that I will have to live with and design around.

Lowe power is also a design constraint, this is not industrial for any consideration; at the moment this is just a private endeavor.

Each unit needs it's own internal pulse clock a timeout timer, as they need to function independently.

I will update drawings when able, if you prefer I can also attach a PDF.

Thank you, keep it coming!
 

ci139

Joined Jul 11, 2016
1,898
as i'm reading your 1-st post :

  1. ? if you think to control the servos with analog signal sent over the CHAINED BUS . . . then i think it's not "the best way to do this"
  2. https://www.google.com/search?q="small+signal"+mosfet+"source+to+drain+capacity"
    https://www.google.com/search?q="small+signal"+"signal+conditioning"+mosfet+minimizing+"switching+noise"
    . . .
  3. your timing strategy as each module receives the signal from previous is "potentially slow" because of ↑technicals↑
    (there might be a way though that each module acts as signal amplifier ← but such complicates the design)
    ...
    try sending the voltage signal over the entire "chain" . . . that "chain" is always on and the receiver (when adressed gets it's data)
  4. the LED is basically a high power consumer (unless you run it barely visible 1mA or strobed at low duty ← is a noise source unless it's decoupled from it's driver module ← the last again complicates the design)
  5. the self calibration of servos take time and power and must not affect the "PROCESS" -e.g.- what they actually do
    (the servo is a position feedback "system" how they ?calibrate? . . . to 'poorly defined' input signal ??? - you need to clear this out to yourself ...)
  6. ? why is required → "Once the system is started up, it will log which side is the source and which side is the system"

/!\ ►►► "I feel to erase this all and pick up from where I am now would discombobulated to the discussion (and perhaps rude)." ◄◄◄ /!\

↑↑↑ this is how you kill your ** ®-ly a GOOD idea = the GOOD Idea is not self-obvious at all ↑↑↑ -- so you have 2-options : either proceed carefully and slowly and repetitiously with your original idea . . . -OR- . . . run through all possible "configurations" to find (perhaps not so good) "BEST" substitute for** -- the last with a good chance of /!\/!\/!\ loosing (the connective (cognitive) relations set to) your ® Flash! Idea forever /!\/!\/!\
 
Last edited:

Thread Starter

Iceking007

Joined Feb 20, 2019
14
Alright,

So some very good information to think about as always. Attached are some rough updates of what I'm thinking now.

So you have many questions about the understanding of the Data Bus so let me try and clarify.
First of all, there are two "busses" in this project, one, the System Bus, and two the Data Bus. The System Bus is what I am referring to as the two wires that connect all the modules, they are (+) and (-) terminals either labeled "A" or "B". The Data Bus is solely internal, it is how the "CPU" gets and sends information to the other "Sub Processors" (ie the Passthrough Controller).

The CPU will simply receive information from the System Bus Registers, and send information to the Passthrough Controller and Servo Driver, it is essentially isolated from the System Bus. The Passthrough Controller simply connects the module to either/both sides of the System Bus, 'Pulses' the System Bus via the resistor or connection via MOSFETs, and Activates and connects the LED. The Servo Driver simply positions the servo accordingly.

The System Bus is to be a 12vdc circuit; the LED is 3vdc; and the servo 12vdc. Two large capacitors (5600uF) C1 & C2, are aid in application of the servo and LED respectfully.

The CPU needs to be aware of which orientation it is in the assembly; as this is dynamic, it too needs to adapt. This is critical because the last unit in the assembly needs to isolate the LED from the System Bus, this can be either side. Additionally all units need to be configured the same and replaceable so therefore each unit does need to track left from right.

Does that make sense?
 

Attachments

Thread Starter

Iceking007

Joined Feb 20, 2019
14
Additionally, yes servos may take time and power to calibrate, that is acceptable. As stated before, the servo control will have to be handled and customized at some point. It is not my intent or requirement for the servo to be immediate or fast acting, a certain amount of time delay is both acceptable and desired. The servo will be more of a slow control to ease it into position. I only mentioned a 'Calibration Period' because firstly, I am under the impression that servos don't really know where they are and need to "reset", and secondly because of 'component wear/adjustment'. As is their intent, the components won't wear heavily, however I do not wish to take extensive time in "adjusting" each servo to specific detail, I would just prefer hand that off to the controller and wipe my hands of it.
 

ci139

Joined Jul 11, 2016
1,898
as f as i get it you need to address two design problems
how exactly you
  1. distribute over the nodes (capacitors take time to charge)
  2. and mange the power (locally ? charge pumps ? Lo-Pwr SMPS ? have voltage overhead and regulate the one used by MCU)
  3. THE STARTUP of the SINGLE CELL
 

Thread Starter

Iceking007

Joined Feb 20, 2019
14
Hi ci139,

Okay so my TC time is only calculated at 2.8s for the current design of the LED capacitor (c2). That is more than acceptable for my application, anything under say 10s per unit would be sufficient but I could even live with a 30s start-up time (less than a minute would be ideal). I wonder if I can have some logic that will measure the charge on the QC for start-up only and then continue once it's fully charged?!

I'm not sure exactly what you mean by managing the power and the start up of the single cell?

I haven't finalized the design (obviously), but power draw is going to be fairly minimal and I believe I have enough capacitance (or the hope is to design in enough) to account for any higher draws. I am hoping that I can have a power friendly design where most of the unit is shut off as it's not required during normal operation. That is one reason I was hoping to use Depletion type Mosfets in the Passthrough controller.
 

ci139

Joined Jul 11, 2016
1,898
the startup of the single cell/module/ic is essential so it won't do anything it suppose not to do -- during it being un-powered up to until it's module has been gathered enough power from the "interface" (← this might be in a milliseconds range but it must be handled . . . including contacts strobing on live plugging . . . etc.)

power management is your hardest problem if you want to keep on a "low power profile"
as far as you have not specified your system control timings and realistic power demands - no one here can't suggest anything - because its all integral (=inter-dependent)

depletion mos-fets are (more) ESD sensitive - a good choice (maybe) but you must count extra budget for these if you can't handle and mount them properly . . . ← to achieve a proper and safe (protected) PCB design requires extra experience and components (you likely go out of your time and $ budget here)
 

ci139

Joined Jul 11, 2016
1,898
http://www.ti.com/product/LM7800
versus
http://www.ti.com/product/LP5907
+ a poor simulation for the last -- i don't think it survives 1W - it has internal shutdown tough . . .
. . . basically it's to illustrate that , how the number of required handles may go sky-rocketing . . . fast !
it seems the "logical" use for the LP5907 is after the SMPS to smooth down the ripple or to isolate power for the modules "downstream" . . .
LP5907 - Test - 1.gif← this one has a poor voltage regulation coz i first decided to use it with TL431 and then decided to make it low control power instead the following steps are my best guess to make it STABLE for ON/OFF and have a "decent" regulation (i don't know that chip . . . so i am learning as i go here) .LP5907 - Test - 2.png.LP5907 - Test - 3.png
.
.
+ the fix-up for the 1-st grid ↓
LP5907 - Test - 1b.png
.
.

↑↑↑ none of these are anything practical for your project. unless you charge a capacitor in front of these . . . on time or on demand
there are other voltage versions for the LP5907 - i just wanted to see if you can extend it's voltage range by "std." means
 
Last edited:
Top