Hot answers tagged

2

These are really two different question: How to handle unused open drain pins, and How to properly terminate I2C bus lines For the first part it's easy: you simply do not connect them. Or you can also tie the to ground if it helps (usually for thermal conduction). The internal structure is simply a MOSFET with the source to ground and the drain… open (and ...


2

Assuming your mux leaves SDA high-Z on unselected segments and you have a pull-up on each segment, the unselected targets will not see the start condition and will ignore the transaction. Note that this all assumes that you never enable more than one segment at a time. Since each segment must be pulled up, enabling multiple segments may parallel too many ...


2

I²C doesn't care whether it has a steady clock or not; it can't even tell. All it cares is that there's a clock pulse that tells it when to send (or receive) the next bit of data. So this may be unusual, but I don't think it's necessarily a problem in itself. It may be symptomatic of a problem with your arduino or your code, however.


2

Isn't this the definition of itoa? #include <stdlib.h> char *itoa(int value, char *string, int radix); If it is, your code should be: char buff[8]; itoa(result, buff, 10); If the maximum value of the MSByte is 127 since the argument is unsigned but the function receives an integer. If the MSBit of the number you build with the OR operation is 1,...


1

The overhead from I2C or SPI or 1wire would be minimal and likely undetectable to a human. 16 or 32 bits at 400 kHz or higher is fractions of a second. Any noticeable delay would be from sharing the bus with an Ethernet device and your coding, interrupt handling, etc. Over all you need to test.


1

Your added labels on the scope trace seem to be swapped: the upper trace looks like data, the lower trace like clock. That aside, I2C doesn't much care about the spacing between pulses so long as they're no faster than the standard you intend to support (100kHz, 400kHz). Generally, SDA should only change state during the SCL low-time except for START and ...


1

I2C bus levels for the TDA7318 are on page 5 of the datasheet. It accepts 3V as the minimum logic high voltage. And besides the I2C bus is open-drain, so it is not the chips that determine the bus high voltage, it is the pull-up resistors that set the voltage, and on the Raspberry Pi the resistors are to 3.3V. There won't be 9V on the bus.


1

This is a rather vague and broad question, but I’ll attempt an answer. Ethernet IEEE 802.3 was originally and primarily intended for remote communication between devices using coax, twisted pair, fiber, and even radio. Ethernet may be used for local networks such as within a building, or regional metropolitan networks (MAN). Ethernet is also used for very ...


1

Ethernet is a way to connect, mostly, two computers, or a computer or many computers to a printer, or scanner, and so on. Ethernet specifies how its OSI Layer 2 is, and it can be implemented via several different OSI Layer 1: for example, 10BASE-T, 100BASE-T, 1000BASE-T are very similar, but with different speeds. Ethernet is used between computers, printers ...


1

This should clarify your doubts. As you know, we will only conduct current when there's a straight path to ground. Therefore, during your off/sleep scenarios you should check what the voltage levels should be.


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