Question 1)
I am unsure what pullups resistor value to use on the I2C bus. In the past I have used 4.7K with another device, but that was with 5V and I am now using 3.3V (description of context below)
Question 2)
On branching of the I2C bus between several devices - do I understand correctly that from the perspective of a simple circuit diagram view (i.e. neglecting capacitance issues etc), all the connections from devices/MPU to the SDA bus connect at a single point, and all the connections to the SCLK connect at a second single point? (Whereby the pullup resistor then goes from this single point to Vcc).
If there are more than two devices on the bus, to what extent does it matter how they are connected to each other? Do they have to be wired in a single line, or can they be wired radially from a point or a mixture of radial with serial? Does this affect the value of the pullup resistor? Are there cases where I need more than one pullup resistor for each of SDA/SCLK?
Context
I am putting an MPU in an espresso machine with various temperature sensors, clock, bluetooth, and other controls. The environment is rather hot - likely to be of the order of 40 degrees centigrade (maybe more, mabe less) in the region where several of the devices will be. The machine is normally on 24 hours per day.
I am using an ATmega328 based MPU at 3.3V. Other devices on the I2C bus include one or more MCP9800 temperature sensors, RTC, SD card, and probably I will want to add something at some stage. RTC is probably 3231.
The various devices will be mounted on a piece of wood and wired together with loose wires. The MCP9800 is mounted on a piece of veroboard together with the pullups and the PSU, and I thought of putting sockets on the same board for connections to all the other devices on the bus, hence question 2 above - effectively this would be a radially wired bus centred on the MCP9800 rather than on the MPU. I would probably add a few extra MCP9800's, and from a wiring perspective it would probably make sense to daisy-chain some of them. [The thermal sensors in very hot zones will be DS18B20, which are not on the I2C bus].
The datasheet for the MCP9800, if I understand it correctly, seems to imply that is some cases there might be more than one pair of pullups (were it is talking about self-heating of the sensor).
I am unsure what pullups resistor value to use on the I2C bus. In the past I have used 4.7K with another device, but that was with 5V and I am now using 3.3V (description of context below)
Question 2)
On branching of the I2C bus between several devices - do I understand correctly that from the perspective of a simple circuit diagram view (i.e. neglecting capacitance issues etc), all the connections from devices/MPU to the SDA bus connect at a single point, and all the connections to the SCLK connect at a second single point? (Whereby the pullup resistor then goes from this single point to Vcc).
If there are more than two devices on the bus, to what extent does it matter how they are connected to each other? Do they have to be wired in a single line, or can they be wired radially from a point or a mixture of radial with serial? Does this affect the value of the pullup resistor? Are there cases where I need more than one pullup resistor for each of SDA/SCLK?
Context
I am putting an MPU in an espresso machine with various temperature sensors, clock, bluetooth, and other controls. The environment is rather hot - likely to be of the order of 40 degrees centigrade (maybe more, mabe less) in the region where several of the devices will be. The machine is normally on 24 hours per day.
I am using an ATmega328 based MPU at 3.3V. Other devices on the I2C bus include one or more MCP9800 temperature sensors, RTC, SD card, and probably I will want to add something at some stage. RTC is probably 3231.
The various devices will be mounted on a piece of wood and wired together with loose wires. The MCP9800 is mounted on a piece of veroboard together with the pullups and the PSU, and I thought of putting sockets on the same board for connections to all the other devices on the bus, hence question 2 above - effectively this would be a radially wired bus centred on the MCP9800 rather than on the MPU. I would probably add a few extra MCP9800's, and from a wiring perspective it would probably make sense to daisy-chain some of them. [The thermal sensors in very hot zones will be DS18B20, which are not on the I2C bus].
The datasheet for the MCP9800, if I understand it correctly, seems to imply that is some cases there might be more than one pair of pullups (were it is talking about self-heating of the sensor).