I2C Driver Tristate Pins

  • The PicoCOM2 allows the SDA SDC pins 32 & 33 to be pulled up or down, the PicoCOM4 seems to have these tied in one state.


    Can the driver be set to allow the pins to be tri state as is the case with the PicoCOM2, I need to use my board on 2 applications the first has an I2C single master tied to the I2C bus and the second has slaves tied to the bus i.e. dual purpose.


    I would like to control this in the registry on the PicoCOM4 board.


    The PicoCOM4 board causes my off board master to fail but the PicoCOM2 allows it to drive the lines correctly.


    No description in PicoCOM2 driver docs on how to enable / diasable I2C driver or lines.


    Cheers
    Rick

  • Whether a part is master or slave has no influence on the pull-ups. I2C needs always pull-up resistors as the signals are open.drain driven. The internal pull-up of the GPIOs is way too high, you need an external pull-up on SDL and SCK anyway. So whether the pins can provide two different states (pull-up and pull-down) on the PicoCOM2 is completely irrelevant, you need exactly one external pull-up on each of the two lines.


    Our I2C driver is currently only capable for being master! If you want to use the PicoCOM as slave, you are on your own.


    The I2C driver can (like all drivers) be disabled by setting a DWORD value FLAGS=4 in the I2C entry of [HKLM\Drivers\Builtin]. Then the lines can be used as digital I/Os using the DIO driver.

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • The SDA SCL lines are pulled up on the main board so they will reside high until pulled down via the processor. The PicoCOM2 allows these lines to be pulled down BUT the PicoCOM4 does not, they are held solid in the high state, there is a relevant difference between them as they are pin compatable SOM's. I need to know why they are different and how to release the lines e.g tri state them?


    The digital I/O registry settings are not present in the default intial registry loaded when a registry wipe is initated, I have set up the key / values as follows:-


    This did not free the lines, I also stopped the I2C driver but no success either.


    Any more ideas??


    Cheer
    Rick

  • Your observation is correct. The I2C lines on PicoCOM4 are allways high, as there are available pull-ups on the PicoCOM4 module itself (1K) - at least on the boards delivered so far. We are currently discussing this issue internally. To get the PicoCOM4 more compatible to PicoCOM2 it might be possible that we will remove these pull-ups again.
    We will inform you as soon as possible.


    Quote


    The digital I/O registry settings are not present in the default intial registry loaded when a registry wipe is initated, I have set up the key / values as follows:


    The DIO driver is not implemented in the current kernel release.

    Software developer, F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Sorry maybe I do not understand the problem correctly.


    On PicoCOM2 there are no pull-ups available on the module itself. Therefore it is required to pull-up the I2C lines externally (on your baseboard).
    On PicoCOM4 there are already pull-ups available (1k). But this only refers to the first sample boards delivered so far. We will not mount them anymore.


    I2C driver of PicoCOM(2 and 4) is only able to operate as master. If you send an I2C message using this driver the lines will be driven low correctly and the I2C frame will be transmitted on the bus.

    Software developer, F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Ok, sorry for the confusion.


    I do not use the I2C feature on the PicoCOM2 or 4 with this current base board as it has a second processor on the base board, this processor is the Master on I2C lines. Unfortunately these line have been connected to PicoCOM pins 32 & 33, this creates the situation where we have 2 Masters on the bus. The PicoCOM2 does not contend with the base board master but the PicoCOM4 does, that is the problem. I may have to re-make the base boards but I thought the COM4 would be compatable without any rework.


    Where are these pull ups so I can remove them on the PicCOM4?


    Thanks for all your replies its appreciated
    Rick

  • We will remove the onbard pullups in mass production. For customers using I2C we will update the manual to add pullups 1... 2.2 kOhm to 3.3V on baseboard. This additional pullups for I2C must be used, because internal pullups on chip are >20kOhm.
    For modification of your PicoCOM4 sample we will send you a personal message.


    KW

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Hello together we seem to have a simliar Problem with the I²C compatibility here.It woul be helpful if you could tell me wich resistors I have to remove.


    We have 2 1k pullups on our mainboard and the Picocom2 works fine with it.
    Picocom 4 is unable to communicate on that same board.


    It seems like we have some very early versions of the Picocom 4 here


    Thanks
    Thorsten

  • You get an personal message. On mass production boards this pullups are not mounted.

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.