• TI Thinks Resolved

DAC8571: I2C to analog converter

Prodigy 30 points

Replies: 4

Views: 100

Part Number: DAC8571


I have an automation project that requires distance measuring. To cover the required measuring range, I select this distance sensor (https://www.sparkfun.com/products/14722). However, as I’m using an S7-1200 CPU 1215C PLC, I can’t connect the sensors directly to the PLC. To perform this connection, I did some research and found this DAC (http://www.ti.com/lit/ds/symlink/dac8571.pdf). I pretend to connect the output of the converter to an analog I/O module (0-10V). Is this connection possible?

Thank you in advance.

  • Hi Maria,

    I am not sure I understand your question correctly.  Are you looking to use the DAC8571 as an I2C master to read from your distance sensor, then output a voltage that can be connected to the analog input of your PLC?

    If that is the case, then you cannot.  The DAC8571 and sensor you have selected are both I2C slaves.  This means that you will still need a master on the bus, such as a microcontroller.  You could also see if you can get the PLC digital outputs to act as a master as well.



  • In reply to Paul_Frost:

    Thank you for your reply!
    Yes, that was my plan, but I understand now why it isn't executable. Thank you for your explanation!
    The distance sensor has a digital output and uses an I2C communication protocol. Please correct me if I'm wrong, but I think it's impossible to directly connect the sensor output to an I/O PLC module.
    Could you please recommend a microcontroller? Since I'm dealing with an industrial application, a robust solution is required.
    Besides that, this project requires a large number of sensors (up to 30), so I need a relatively affordable way to connect all those sensors to the PLC (it seems expensive to use a microcontroller per sensor).
    I don't understand how I can get the PLC digital output to act as a master. Could you please recommend any manuals/ documentation explaining how to accomplish that?
    Thank you in advance!

  • In reply to Maria Costa:

    Hi Maria,

    You could consider an MSP430FR5969, which we have used in industrial applications in the past.  The device could communicate to multiple I2C devices if they support multiple addresses.  If you mean that you will have one sensor per PLC, then I think a lower cost solution should be considered.  Otherwise, you could consider some other analog output sensors rather than the digital output.

    I am not an expert on these PLC modules, but I see that some list that they have digital I/O, so it may be possible that they support some lower-level communication like I2C or SPI.  Though I do not know for sure.



  • In reply to Paul_Frost:

    Thank you very much for your reply!
    I pretend to use only one PLC. Sorry if I didn´t clearly explain my idea.
    I think S7 -1200 doesn't support I2C or SPI communication protocols. For what I've seen (in other forums), the most common solution is converting the digital output to an analog output, and then connect the analog signals to analog I/O modules. For instance, if the project requires 30 sensors, then 4 I/O modules (8 analog inputs per module) are needed.
    I considered using other sensors that have analog outputs. However, I wasn't able to find any sensor that covers the whole required measuring range (if I decide to use sensors with analog outputs, I would need twice as many sensors, grouped in pairs. This solution would also require to double the number of I/O modules).
    I'm still trying to find which solution suits my project the best (in terms of robustness and affordability).
    If I go for the first option (sensors with I2C output), then I have the costs of the converters plus the microcontrollers (?). However, this solution requires fewer sensors as well as fewer I/O modules.
    The second option doesn't have the conversion problem. However, I/O modules are quite expensive.
    Could you please recommend any documentation on how to accomplish the digital to analog conversion? I don't understand how it works.