# Tag Info

24

How can this work without any multiplexer? It doesn't. The keypad board seems to have just switches, with maybe some diodes we can't see. However, the left board looks like it has a processor on it. Almost certainly, multiplexing is being done in firmware. The multiplexing algorithm works something like this: Drive one row high, the others low. Enable ...

21

The cathode of the LED must be connected to the ground not Vcc

14

Break the buttons into rows and columns, like is done with a keyboard. 12x12 will give 144 possible buttons, so should work. Then you'll need to use encoders to translate those lines into binary. 3 of 8-bit encoders will take in all 24 lines and give you 9 bits to connect to your microcontroller.

14

8 leds on/off have 2^8 = 256 possible states 5 control pins on/off have 2^5 = 32 possible states Since 32 < 256, and you can't use shift registers or i/o expanders, it would be impossible... But if the 5 control pins are the pins of a MCU, you need to use only one of them for controling the 4 * 2 multiplexing process. One of the pins can be 0V or +Vcc, ...

13

The front inverters are used to buffer the input signal. Without the front inverters inputs A and B would be 3 load units each instead of 1, since you would have to drive both the rear inverters as well as both of the and gates used with the input's term in the multiplexer logic.

13

Since you need isolation, you will need a relay for each appliance. Even if you didn't strictly need the isolation, it would be recommended since it might be hard to safely share the same voltage (ground) reference among all 7 appliances. I would locate the individual relays at each appliance and only bring the parallel combination of the relay contact ...

12

It depends on what you mean by "control". Are you confining yourself to simple combinatorial logic, or are serial protocols allowed? In theory, you could control an arbitrary number of outputs from a single pin by using something like the Dallas/Maxim 1-wire (serial) protocol to drive a set of I/O expander chips. Similar approaches can be used with I2C, SPI,...

11

The obvious answer is muxing, this means that you make electric path's dynamically. So just iterate through the whole matrix, one at a time, or as many ADC (Analog to Digital Converter) inputs as you have. If you got 3 ADC's then you can read one row at a time, then you change the inputs to a mux and voilla, you are now reading the second row, and then you ...

10

Use addressable LEDs like WS2812B or similar. You’d need only 1 pin (plus power and ground) to control hundreds of them. They are available individually or as part of an LED strip (which can usually be cut into smaller strips or individual LEDs).

10

Upgrade you MCU to one with more pins. It will be cheaper than adding more parts.

9

There is no* way to measure trace impedance with a simple multimeter. Measuring trace impedance requires, at minimum, an oscilloscope and an impulse generator of some sort. Here's an article about how you can measure the impedance of a cable (or PCB) with a signal generator. Doing "Proper" impedance measurements requires a special tool, called a network ...

9

If we redraw your circuit without the diodes, we have this: simulate this circuit – Schematic created using CircuitLab Now imagine you drive Column-1 High and Row-1 Low (and Column-2 and Row-2 are Hi-Z) because you're trying to activate L1 in one direction. You'll find that you'll also have current flowing through L2, L4 & L3 since the 3 of them ...

9

Without diodes... you'll get phantom rectangles. For instance in your example (2,2) (2,3), (3,2), and (3,3); you chose an ironic example by choosing a rectangle. If you actually press all four, it will work. But if you press any three corners of the rectangle, the fourth corner will also appear to be pressed, even though it's not. That keypad is ...

9

The operation of any multiplexer (MUX for short) is conceptually the same, be it analog or digital. In essence you have a set of numbered data inputs (usually a power of 2, say $N=2^n$ inputs named, say, $X_0, X_1,$ ... etc.), a set of digital selection inputs (in number of $n$) and an output. A mux works by sending one (and only one) data input ...

8

How do they work? They have integrated charge pumps to create internal supply voltages that are greater than ±25 V. Is it simple to build a circuit like this out of discrete parts? Possible? Yes. Simple? Not particularly.

8

No connect means just that -- don't connect the terminal to anything. They often appear on devices because the manufacturer uses a standard form factor that has more terminals than are needed for that particular device.

8

You say a micro in the base unit needs to identify the board type, and that these plugin boards already have a IIC bus going to them. This is a no-brainer. Put some device the micro can detect on the IIC bus at a unused address. The easiest would probably be the cheapest and smallest IIC EEPROM you can find. In manufacturing you can write whatever ...

8

It's not too complex, I think, assuming you worked out the equation you wanted correctly (I'll assume you did okay there.) Start by looking at the equation for a 2-in MUX: \begin{align*} M_2(A,B,S) &= A\cdot \bar{S} + B\cdot S \end{align*} From this, you can derive some useful results:  \begin{align*} M_2(0,x,y) &= x\cdot y \\ M_2(x,0,y) &...

8

Analog multiplexers work just fine for I²C signals (if you keep the impedance and parasitic cpacitance small enough, which is usually not a problem). I²C multiplexers are more complex because they are controlled through the I²C bus itself. You need one if you do not have a spare GPIO pin to control it.

8

A digital encoder or Priority Encoder. They will often have $2^n$ inputs and $n$ outputs. Additionally there will be an any-active output and an enable input. You can combine multiple encoders together using these extra pins

8

Space Division Multiplexing sounds like snake-oil, but it's worth treating it as a topic for study, as there are costs and benefits when applying it. It's defined as pushing several independent channels of data over a shared medium. That encompasses both the 'is it really doing something?' of parallel wires, and the very clever 'how do they do that?' of ...

8

This notation means a bus line with the width noted by the number written next to it. In your case it is 2-bit wide bus. It is used to make the drawing less convoluted by reducing lines drawn.

8

Addressable RGB LED strips work with one single data pin.

7

100Hz on 32Channels sounds very perfectly doable. Presuming we are talking 8 to 12 bits, that's only 12 * 32 * 100 = 38400 bits per second of sampling work. Even 16bit or 32bit per channel wouldn't be a huge drain on sampling budget at only 100Hz, but going above 10 to 12bit with an average photoresistor is probably already more than over-engineering, they ...

7

The 74HC4051 has level shifters inside that allow you to use a logic supply that is GND to Vcc and another supply voltage Vee that is less than (or equal to) GND. This is a great advantage when you want to use dual supplies such as +/-5V for the analog electronics, and the digital signals are 0 to +5 (or +/-3.3V with digital logic 0/3.3V), and if you don't ...

7

I also found it hard to find a concise description of this notation. However, by plugging in some different values for n and k in Google searches for "n x k barrel shifter", I was able to find this PDF, which shows an 8x4 barrel shifter on page 27, where there are 8 inputs and 4 outputs. I'm not entirely sure what the value of an asymmetric barrel shifter ...

7

The RTL schematic shows you how it has interpreted your code. As you can see, it has the exact combination of AND gates and multiplexers that your code describes. If you want to know how it has mapped this into the FPGA resources, you need to look at the 'technology schematic'. Note that the technology schematic is hard to navigate unless you set the ...

7

The two chips are NOT the same: The TCA9544A is an I2C Mux. An I2C Mux multiplexes any one of N downstream ports to the upstream port (1 to 1). The TCA9546A is an I2C Switch. An I2C Switch connects one or more of the N downstream ports to the upstream port (1 to many). The control registers also differ.

7

Depending on your price range, you may want to consider using an FPGA between your Raspberry Pi and ADCs, such as the DE0-Nano Board, which has good support as an introductory FPGA dev board. This solution has the advantage of allowing you to write code which will clock multiple/many ADCs at the same time and format your data in a way which is presentable to ...

7

What you are looking for is a GPIO "expander" chip. There are many available, typically using I2C or SPI to connect to the microcontroller. The Microchip MCP23017(I2C)/MCP23S17(SPI) is just one example that I have used in the past. There are many others to choose from.

Only top voted, non community-wiki answers of a minimum length are eligible