32

If you're already familiar with digital multiplexer chips, good news! They can be used for analog signals as well. http://playground.arduino.cc/Learning/4051 The basic premise is exactly like with digital signal multiplexing. You use the 4051 chip as a "lane changer" and read the signal of whatever lane you tell the chip to switch to. the 4051 uses 3 ...


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.


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

Are you familiar with shift registers like 74HC595? It requires 3 pins from your RPI and you can control 8 output lines. You can easily cascade them effectively controlling n×8 output lines. Data is serially clocked into the shift register and once all 8 output bits are transferred, you latch the bits onto the outputs. I was about to add the datasheet here,...


10

It may be important to remember that the Arduino's ATmega chip itself is using an analog MUX. The Uno-based (ATmega328) chips only have a single ADC. The 6 analog inputs are actually a MUX that connects to that one ADC. This is why you can only read 1 analog input at a time. When expanding analog inputs, it may be necessary to consider how much time it ...


10

Correct: The voltage divider will not be necessary with the particular p-channel MOSFET, since its gate-source voltage is rated at +/-25 volts. The NPN transistor is necessary, because you would not want to expose the Arduino GPIO to 18 volts. What is even more necessary is a base resistor on the BJT. This is useful to ensure that the base-emitter current ...


10

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).


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.


7

Actually this is a very common arrangement. Each digit has its anodes connected together, and the segments for all digits have their cathodes connected. The controller enables one of the common anodes, drives the segments, and waits, then turns off the cathodes and moves on to the next common anode. This arrangement and control method is called multiplexing, ...


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

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

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