05-18-2017 11:40 AM
Hi,
I am creating a program to communicate with some Maxim MAX3948 drivers. These drivers are connected to a 74HC4052D 4 channel multiplexer.
I am very new to I2C and this is my first application using it. I am having trouble communicating with the drivers as I am not sure how to differentiate between the drivers via the multiplexer. I have included the data sheets for both the driver and the multiplexer.
If any other information is required please let me know and I will gladly provide what I can. A resource to guide me will also be greatly appreciated.
Thank you for your consideration.
05-18-2017 12:37 PM
I'm using LabVIEW 2012 by the way
05-18-2017 01:52 PM
That MUX does not look like it is really designed for I2C. I would go with something more like a PCA9544ADW. This MUX is specifically made for I2C and works over the I2C bus. So you just send the command to this mux to have it switch to which of the 4 devices you want to talk to.
05-18-2017 05:16 PM
Thank you for your suggestion. The device included a LabVIEW .exe that was able to manipulate the modulation current and other aspects of the driver whilst using I2C. Therefore, the MUX must be compatible to pass on I2C communication to the drivers. I am curious how I can pass in a selector to the MUX to differentiate the channel/driver I am establishing a connection with. Attached is the driver protocol and the MUX pinout. In the device I am using, 1Z refers to the SCL connection whereas 2Z refers to the SDA connection.
05-19-2017 07:32 AM
The MUX uses digital lines for setting which lines are connected. So you should use 2 of the digital lines on the USB-8451 to control the MUX state. You could use a third digital line for the Enable.
05-19-2017 11:39 AM
Thank you for your response cross,
I am starting to get a better understanding of the approach I should be taking. (I have attached relevant files)
I should have prefaced that in the setup they provided us, with the working .exe in LabVIEW, they had P0.0 going to 2Z, (and following the MUXpinout file, 2Y0-2Y3 connect to the SDA lines of each driver), P0.1 wired to the VCC of each driver (4 lines all receiving the same signal), P0.2 is connected to 1Z, (and following the MUXpinout file, 1Y0-1Y3 connect to the SCL lines of each driver), P0.3 is connected to S0 and P0.4 is connected to S1.
I understand in this application that P0.1 as currently configured is providing power to the drivers. Is it reasonable to assume that P0.0 and P0.2 were configured to communicate SDA and SCL signals respectively? and P0.3 and P0.4 were configured to toggle the MUX state?
I have to communicate with the devices the same way they did, although a different approach is fine as long as I can relay data from the drivers to the 8451. Would you suggest using the SDA ports and SCL ports to communicate or would P0.0 and P0.2 work fine as long as they were configured correctly? Also, do you have any advice on how to do this in LabVIEW as I'm having difficulty with the implementation?
Thank you for all of your help and patience.
05-19-2017 01:26 PM
Sorry, P0.1 connects to CSEL of the drivers
05-30-2017 05:00 PM
Hi Miscreed,
I'm not entirely certain on the physical connections, but here are some documentation for using the LabVIEW API with your device.
Using I2C with LabVIEW and the USB-8451
http://www.ni.com/tutorial/5767/en/
How do I access my NI-8451 from LabVIEW
http://digital.ni.com/public.nsf/allkb/9C57E1D183B8FDF98625713A00805773?
I2C/SPI NI-845x Hardware and Software Manual
http://www.ni.com/pdf/manuals/371746e.pdf
Regards,
Alyssa H.
National Instruments