How do I use a third MCP4725?

Hello,

I would like to use three DACs and purchased 3 MCP4725s from sparkfun. The DAC on this breakout board seems to have 8 addresses it can be reached at, but the board together seems to only support 2.

The sparkfun documentation seems to point to two different addresses, 0x60 and 0x61, and two different board configurations of solder for the address pads and i2c pull-ups being either connected or disconnected.

Im still learning what all of this means logic/information-wise, but I was wondering if anyone could tell me if there is a third configuration for the solder of the GND/VCC pads and third address I could use with this particular board?

For instance could I try soldering the outer most addressing pads (instead of the bottom and middle or top and middle) and just use address 0x62? (Assuming the pull-ups are connected on only 1 out of three of the boards as directed by the documentation)?

Thank you for any guidance or documentation you can point me to!

For modules like that, you need only one I2C address, ever.

Connect a spare I/O line on the MCU to the address input A0 on each MCP4725 (center pin on the solder jumper), and set the IO pin to HIGH for any boards not addressed.

The module with LOW on that pin will be addressed at 0x60. Cycle through the sensors, setting the address pin of the active sensor LOW and the others HIGH.

I don’t have an MCP4725 to test, but it should be OK to leave the solder blob between A0 and GND (as the module is set by default), since according to the board schematic the pad labeled “GND” actually connects to GND through a 10K pulldown resistor.

However, if you have doubts, remove the solder blob and make the connection carefully, so that the center pad does not make contact with either of the other two pads. It is especially important that you do not connect an output pin set LOW to Vcc, or you will burn out that output pin.

It is a shame that Sparkfun engineers did not bring out the A0 connection to board edge connectors.

jremington:
For modules like that, you need only one I2C address, ever.

Connect a spare I/O line on the MCU to the address input A0 on each MCP4725 (center pin on the solder jumper), and set the IO pin to HIGH for any boards not addressed.

The module with LOW on that pin will be addressed at 0x60. Cycle through the sensors, setting the address pin of the active sensor LOW and the others HIGH.

I don’t have an MCP4725 to test, but it should be OK to leave the solder blob between A0 and GND (as the module is set by default), since according to the board schematic the pad labeled “GND” actually connects to GND through a 10K pulldown resistor.

However, if you have doubts, remove the solder blob and make the connection carefully, so that the center pad does not make contact with either of the other two pads. It is especially important that you do not connect an output pin set LOW to Vcc, or you will burn out that output pin.

It is a shame that Sparkfun engineers did not bring out the A0 connection to board edge connectors.

Hi, thank you for your response. I was able to narrow in on section 3.5 “Device Address Selection Pin (A0)” and think I may be reading it with new understanding based on your comment. Just to be sure I understand, conceptually, what you have told me and section 3.5 is saying is like this?

If we have 2 DACs one package fresh and the other with the alternate solder configuration and pullups disconnected, the I2C line connected to their SCL/SDA breakouts will set DAC-1’s A0 at 0x60 low and DAC-2’s A0 at 0x61 high when addressing DAC-1. Then vice versa when addressing DAC-2.

You are suggesting that, if I can find the A0 connection of the MCP4725 and solder this to a pin on the MCU, I can use both DACs package fresh, and set DAC-2’s A0 high/DAC-1 low, and the I2C will address DAC-1 at 0x60. Then, I can set DAC-1’s A0 high/DAC-2’S A0 low and the I2C line will now address DAC-2 at 0x60. Because of this method, any number of DACs can be used without altering the soldering configuration as long as we have a pin available that can manipulate the additional A0 pin on any additional MCP4625s.

Is this an accurate understanding? Thank you very much for your help.

Actually-- upon looking at figure 8-3 in the datasheet as well as 10, it looks like the A0 pin is middle pin in the group of pads labeled as “ADDR” on the top of the board, so to implement your solution I would have to de-solder that blob anyway?

Is this an accurate understanding?

Yes.

it looks like the A0 pin is middle pin in the group of pads labeled as “ADDR” on the top of the board, so to implement your solution I would have to de-solder that blob anyway?

As I clearly explained, A0 is the middle pad. As I ALSO explained, you do NOT need to remove the solder blob.

jremington:

it looks like the A0 pin is middle pin in the group of pads labeled as “ADDR” on the top of the board, so to implement your solution I would have to de-solder that blob anyway?

As I clearly explained, A0 is the middle pad. As I ALSO explained, you do NOT need to remove the solder blob.

You are totally right about that! Brain skipped over that section of text a few times. Thank you again for your advice, I will implement it!

jremington:
For modules like that, you need only one I2C address, ever.

Connect a spare I/O line on the MCU to the address input A0 on each MCP4725 (center pin on the solder jumper), and set the IO pin to HIGH for any boards not addressed.

The module with LOW on that pin will be addressed at 0x60. Cycle through the sensors, setting the address pin of the active sensor LOW and the others HIGH.

I don’t have an MCP4725 to test, but it should be OK to leave the solder blob between A0 and GND (as the module is set by default), since according to the board schematic the pad labeled “GND” actually connects to GND through a 10K pulldown resistor.

However, if you have doubts, remove the solder blob and make the connection carefully, so that the center pad does not make contact with either of the other two pads. It is especially important that you do not connect an output pin set LOW to Vcc, or you will burn out that output pin.

It is a shame that Sparkfun engineers did not bring out the A0 connection to board edge connectors.

Hey I just wanted to mention that I think I was able to address the two different DACs I have using your method [no change to the board except soldering a jumper to the blob already between GND and A0 pad], but the one that gets addressed first doesn’t maintain its settings once I move onto the next one.

If I just have one DAC and give it a square wave to cycle through, if I suddenly send a HIGH signal to the addressing area, it DOES maintain whatever voltage level it had last been on. I’m going to trouble shoot this further but wasn’t sure if there might be an obvious fix in your mind. If not, no worries, I will keep trouble shooting!

Sorry, I don’t understand what you are doing, or the question.