Only one I2C port working

Discussion in 'UDOO NEO' started by Vinz87, Mar 3, 2016.

  1. Vinz87

    Vinz87 UDOOer

    Joined:
    Nov 11, 2015
    Messages:
    105
    Likes Received:
    19
    Hi, I succesfully connected a LCD device through I2C pins 34/35 (I2C port 4), I see it connected with command "i2cdetect -y 3" and I can properly control it.
    However, I can't see it connected, nor command it, if I plug it into the other 3 I2C ports; I tried all the pins written in the documentation, what could be the problem?
    Also, the brick temperature and barometer sensors work properly and appear connected to I2C port 2, if it's relevant.
     
  2. jas-mx

    jas-mx Active Member

    Joined:
    Dec 31, 2013
    Messages:
    407
    Likes Received:
    118
    I2C_3 isn't available because its internally connect to the hdmi controller and not exposed externally.

    The remaining 2 ports may not be available because the pins have been multiplexed to GPIO instead of I2C on the headers.
     
  3. Vinz87

    Vinz87 UDOOer

    Joined:
    Nov 11, 2015
    Messages:
    105
    Likes Received:
    19
    So the I2C ports have to be manually "enabled" to work as I2C ports? Is this reported in the online documentation? I don't remember having read it...

    Anyway, how do you specify a couple of pins to work as I2C port instead of GPIO port?


    Inviato dal mio iPhone utilizzando Tapatalk
     
  4. waltervl

    waltervl UDOOer

    Joined:
    Dec 12, 2015
    Messages:
    2,314
    Likes Received:
    580
    Here it is written http://www.udoo.org/docs-neo/Hardware_&_Accessories/I2C_bus.html that you have to use the device tree editor to set the gpio pins to i2c.

    I have to agree it is not written very specific so it is easy to miss. Also no mention that you have to use the DTE because the mentioned pins are set to gpio.
     
  5. Vinz87

    Vinz87 UDOOer

    Joined:
    Nov 11, 2015
    Messages:
    105
    Likes Received:
    19
    Ok I will give it a try, thank you.
    For Udoo guys, when do you expect to publish a final version of the documentation?


    Inviato dal mio iPhone utilizzando Tapatalk
     
  6. Vinz87

    Vinz87 UDOOer

    Joined:
    Nov 11, 2015
    Messages:
    105
    Likes Received:
    19
    I read the section about the Device Tree Editor; if I understand, a change in the device tree configuration is needed only if I want to use those ports in the Arduino side.
    Instead, I forgot to mention it before, I'm working from the Linux side, accessing I2C devices through Python and the quick2wire library.
    Shouldn't I be able to use those ports in Linux without any configuration change?
     
  7. waltervl

    waltervl UDOOer

    Joined:
    Dec 12, 2015
    Messages:
    2,314
    Likes Received:
    580
    The i2c ports can also be mapped to the pins as mentioned in the documentation but you have to do that yourself with the device tree editor. Most of the pins are mapped as standard gpio.
     
  8. waltervl

    waltervl UDOOer

    Joined:
    Dec 12, 2015
    Messages:
    2,314
    Likes Received:
    580
    Well I see now what your problem is, you can't do it with the GUI, you have to do it yourself.
     
  9. Vinz87

    Vinz87 UDOOer

    Joined:
    Nov 11, 2015
    Messages:
    105
    Likes Received:
    19
    I didn't tried yet to use the gui of device tree configuration, why do you say I can't remap the pins to the I2C ports as explained in the documentation?


    Inviato dal mio iPhone utilizzando Tapatalk
     
  10. waltervl

    waltervl UDOOer

    Joined:
    Dec 12, 2015
    Messages:
    2,314
    Likes Received:
    580
    I tried to do so :) You can remove them (for use within Arduino) but you only can place them back on the original pins, not on other pins.
    Only IC2 -4 (pin34/35) and IC2-2 (J10) are mapped to pins, and removable with the device tree editor. IC2-1 is not selectable in the device tree editor.


    [​IMG]
     
  11. Vinz87

    Vinz87 UDOOer

    Joined:
    Nov 11, 2015
    Messages:
    105
    Likes Received:
    19
    Ok, I was talking about switching from "GPIO behaviour" to "I2C behaviour", not about changing the pins. This is possible, isn't it? For which I2C ports?


    Inviato dal mio iPhone utilizzando Tapatalk
     
  12. waltervl

    waltervl UDOOer

    Joined:
    Dec 12, 2015
    Messages:
    2,314
    Likes Received:
    580
    Default all the A9 pins are set to "gpio behaviour" exept pin 34/35 (I2C-4) , 46/47 (UART1) and header J10 (I2C-2). So to have I2C coming out to other pins you have to redefine the pin from gpio to I2C. This could be done by the graphical Device Tree Editor but for I2C ports it is not configured to do so. For PWM, Canbus, UARTports etc it can be done but also limited in functionality.
     
  13. waltervl

    waltervl UDOOer

    Joined:
    Dec 12, 2015
    Messages:
    2,314
    Likes Received:
    580
    If you outcomment the I2C1 section in /opt/dtweb/public/boards/neo/board.js it should be possible to add the I2C-1 port. No guarantees :)
     
  14. Vinz87

    Vinz87 UDOOer

    Joined:
    Nov 11, 2015
    Messages:
    105
    Likes Received:
    19
    Ok now I understand.
    And this missing feature of the device configuration tree is to come in a future beta release or in the final version of Udoobuntu? This is obviously more a question for the Udoo company itself, let's see if someone of them let us know :)


    Inviato dal mio iPhone utilizzando Tapatalk
     
  15. Francesco

    Francesco Active Member

    Joined:
    Jun 23, 2015
    Messages:
    220
    Likes Received:
    110
    Hi. The I2C-1 bus can be accessed on J6 has you found out in the specs.
    Doing that will not export the I2C1 on J6, since the pincontrol will not be changed.
    The issue that left the export of I2C1 on J6 unimplemented is that the I2C1 must always be exported on CN3 (LVDS) for touch controls; we should then allows users to export it *also* on J6; however dtweb for the moment can only export a device on a single connector, and has to be improved.

    If you want to export I2C1 on J6 too, you must comment out the GPIO declaration of 26-27 and add to the i2c1 pinmuxing (in externalpins) the two declarations to export 26-26 as I2C1. It will be possible to do this in later versions of the device tree editor, but is unplanned for the moment.
     
    graugans likes this.
  16. Francesco

    Francesco Active Member

    Joined:
    Jun 23, 2015
    Messages:
    220
    Likes Received:
    110
    There is no "final", we continuosly improve it. If things are wrong/unclear on the documentation, issues and pull requests are welcome on https://github.com/UDOOboard/Neo-Docs
     
    graugans, Andrea Rovai and waltervl like this.

Share This Page