We are currently addind a 4G LTE module into our design and we need an open drain port to correctly drive PWR_ON and RESET pins to boot the module.
Is there any way to set Open Drain modes for the SCM20260E GPIO pins? If so, how can this be done?
Use an NPN transistor. You’ll probably find that the design specs for the modem indicate this as the preferred option. The modem is likely to be a different voltage than 3.3V so watch for this for some of the IO Pins.
Hi, there is in GpioController class.
Thanks for your replies.
I solved the issue by using the SetDriveMode(GpioPinDriveMode.OutputOpenDrain) as Dat Tran stated.
The thing is I was using an old version of the framework and the GpioPin.IsDriveModeSupported(pin,GpioPinDriveMode.OutputOpenDrain) method was returning false on every pin.
As it was reporting false on open drain outputs for every pin I thought OpenDrain mode was not supported until I read another post on the forum stating that It was a bug in the TinyCLR framework.
Once I updated the framework I managed to solve this issue
Indeed the modem RESET and POWER ON are driven by other voltages different than 3.3V.
That is why open drain mode had to be used as those pins are driven internally by a pull up resistor inside the modem.
We chose not to add a NPN transistor to simplify the hardware.