Navigation

    LILYGO

    • Register
    • Login
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    AMOLED S3 Touch - I2C port interference with QWIIC port?

    Technical Discussion
    2
    5
    405
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      rs77can last edited by rs77can

      Does the touch display use the same I2C interface as is on the STEMMA / QWIIC connector?

      I am getting some random I2C error reading some devices.

      By the schematic, it appears that that is the case. I am using a mutex in FreeRTOS to access the I2C port between several tasks. Is there a way to make sure lvgl uses the same mutex before accessing the port?

      I am trying to solve it by adding a Take and Give for my mutex around each access to lv_task_handler(), but not sure if that is the way to go

      void do_lv_task_handler() {
        xSemaphoreTake(I2C_Mutex, portMAX_DELAY);
        lv_task_handler();
        xSemaphoreGive(I2C_Mutex);
      }
      
      teastain2 1 Reply Last reply Reply Quote 0
      • teastain2
        teastain2 @rs77can last edited by

        @rs77can AMOLED S3 Touch has two qwiic ports,
        GPIO 2,3 and
        GPIO 43, 44.
        I don't see a conflict on the schematic!
        https://github.com/Xinyuan-LilyGO/LilyGo-AMOLED-Series/blob/master/schematic/T-Display-S3-AMOLED-Touch.pdf

        Screenshot 2024-06-02 at 10.29.06 PM.jpg

        1 Reply Last reply Reply Quote 0
        • R
          rs77can last edited by

          @rs77can

          I was lopoking at these 2 pieces of the schematic

          touch.jpg Qwiic.jpg

          The top is the touch interface, and the bottom is the Qwiic port - they both seem to be using the same GPIO2/3

          U0RXD U0TXD (44/43) are the RS232 Serial connections - no?

          teastain2 1 Reply Last reply Reply Quote 0
          • teastain2
            teastain2 @rs77can last edited by

            U0RXD U0TXD (44/43) are the RS232 Serial connections...and... are the standard I2C ports on LilyGO T-Display S3 and T-HMI and several others.
            As you may know you inform the compiler with

            Wire.begin(43, 44); 
            

            I don't have a LilyGO T-Display S3 AMOLED Touch here!
            So I suppose the 6pin is the Touch and is between the Display and the board???

            You should check here:
            https://github.com/Xinyuan-LilyGO/LilyGo-AMOLED-Series/issues/9#issuecomment-1888466187

            And perhaps raise your own issue?
            @lewisxhe is very good but very busy
            cheers, Terry

            R 1 Reply Last reply Reply Quote 0
            • R
              rs77can @teastain2 last edited by

              @teastain2

              Thanks, I realize that I can change the definitions of Wire to the other pin, but then would the Touch display not function appropriately?

              I would prefer to define GPIO2 and GPIO3 as Wire1 and not Wire, and have the touch display use that interface. I would then define Wire as the new pins (as per your example above).

              Is there a software option to do this? I am using some libraries that are hardcoded to Wire, and don't want to manually change them myself.

              If not possible, the Mutex method around the lv_task_handler() seems to work well - the board has been running for about 2 weeks with no issues, and no bad data.

              1 Reply Last reply Reply Quote 0
              • First post
                Last post
              Powered by NodeBB | Contributors