Hello,
We are trying to connect more than one LMP90100 on the SPI bus with different CS. SPI Handshake Control is set as 0x0 (default). DRDYB is multiplexed with SDO.
When single LMP is connected, we are getting the data correctly. But when 2 LMPs are there, SDO line never goes to LOW. It remains at 2.5V. DRDYB comes correctly but since the SDO is never low, it is not interpreted correctly. Is there any requirement for connecting more than one LMP on SPI bus?
Thanks in advance
Asutosh Shah
I have the same problem. i have 2 LMP9100 on the SPI bus with different CS. IF i solder 1 LMP90100 in the circuit only, i read data correctly, but if i solder 2 LMP90100, the SDO signal is low always.
Any suggestion? Help please.
Thanks in advance.
Hi,
Can you share the schematic of multiple LMP90100 connected to mcu ?
Regards,Murali
I attach the schematics
And other schematic page. i have 4 components in the same SPI bus, 2 LMP90100 and 2 ADG714/ADG1414.
Hi Murali,
I attached my schematic with 2 LMP90100 and 18F4620, please review it. And I have written manual SPI read/write function and these functions are working ok with other SPI devices as well as with LMP90100 (communicate with only one LMP90100 and no other devices on SPI BUS). If you have any idea please help me out. waiting for your reply.
5488.Multiple_LMP90100.pdf
This schematic is wrong, i think. you have tied the same SPI signals (CLK,SDO, SDI) to 2 optocouplers. Why do it? This signals are commons to all SPI slaves.
In my board, i write to LMP90100 (both), but i cannot read it. Help please!!! Any suggestion?
Hi Javier,
Both the analog inputs are isolated from each other.
asutosh
ADG1414's SDO is a Open Drain output and I see from your schematic that you dont have any pull up. You are connecting a CMOS output and a open drain output together but without any pull-up on the line. Hence you are not able to read from LMP90100.
Also, be aware that ADG1414 SDO can be used to daisy chain with other devices, Hence you need to check with the part if it makes the SDO line high-z when CSB de- asserted . If not, then you have to be careful about its state and the strength.
If possible, just remove the ADG1414 from the circuit(for testing) and read the data from LMP90100, it should work. Also, you can connect a weak pull-up on the SDO line as it is going to a cmos input of the icoupler.
Hi Asutosh,
From your schematic, I can see two things which are causing problems:
1. You have connected the SDO of the LMP to SDI of the MCU. But, the correct connection would be SDO of LMP(Slave) to SDO of MCU(Master). SDI of MCU(master) to SDI of LMP(slave).
MOSI-------MOSIMISO-------MISOSCLK------SCLK
2. You have separate isolators for SPI's of each LMP, then you are combining both at the mcu side. This will create issues on the SDO line at the out side of the icoupler because the isolator dosent have high z outputs. Its either high or low. Since you have pull-ups at the inputs of the isolator on the SDO line, isolator outputs on the SDO line will be high, now if any one of LMP90100 tries to bring the SDO low, the output of the isolator cannot take it to 0V as it cannot sink the current from the line which has been pulled-up by another output of the same kind. Hence this explains why you are observing 2.5V on the SDO !
Solution: You can have one MISO,MOSI,SCLK , CS1 and CS2 go from the MCU to the other side of isolation and then share the SPI bus with two LMP90100. This should solve the issue. Still maintaining the isolation between LMP90100 and the MCU.
But, If you want the two LMP90100's to be isolated from each other and the MCU.Then you will have to use two separate SPI's on MCU