Posts by fs-support_AD

    Hello,


    can you check device address of your touch controller? (reg key HKLM\Drivers\builtin\touch_edt - reg value I2CDevAddr)


    I tested ETM070080ADH6 Display with froltech FT5406 touch controller and that worked fine.


    Here are my hardware configuration and registry settings:


    HW:
    - PCA5 Rev. 122 and SKIT Rev. 100
    - Display ETM070080ADH6 with FT5406 touch controller


    Used IO Pins:
    - I2C1
    SDA : SKIT-Pin9 , PCA5-Pin32
    SCL : SKIT-Pin10 , PCA5-Pin33
    - Touch
    IRQ: SKIT-Pin11 , PCA5-Pin40 , IO-Pin20 - ChangeIo value.
    RST: SKIT-Pin12 , PCA5-Pin41 , IO-Pin21 - ResetIO value
    GROUND: SKIT-Pin19
    additional extern VCC 3.3V


    Registry settings:
    - disable default touch controller - by setting Flags to 4
    in "HKLM\drivers\builtin\touch_sx865x"
    - enable EDT touch controller - by setting Flags to 8
    in "HKLM\drivers\builtin\touch_edt"
    - configure EDT touch controller.
    chageio = 20 (dec)
    resetio = 21 (dec)
    i2cdevice = "i2c1:"
    i2cdevaddr = "address of you touch controller"


    My serial out:

    Hello,


    can you check i2c lines. The message "I2CLIB: I2C_ReadRegister(): Message failed (flags=4)" means that the driver cann't receive i2c device acknowledge. That can be possible for example in followed cases:
    1) pullups not available
    2) one of the lines used by other driver
    3) configured i2c device is wrong


    Quote from "fs-support_AD"

    Next, CLK must be set high to select I2C and after that everything should work. But our CLK is high (pin 33) so I2C should be selected but we see no activity on the pins 32 and 33 when the screen is touched.
    Do you have external pullups? If no, you have to enable internal. (registry key HKLM\Drivers\BuiltIn\PicoCOMA5\I2C1_V120, IntPullUp to 1)

    We are using 35 for Reset and 40 for IRQ now. If I want to specify 40 in the registry, I can enter that as just decimal 40 or hex 0x28, is that correct?
    Yes. That is correct.


    Reason I ask this is because in the device map for fs_touch_edt.dll (fs_touch_edt.txt), it says 0x56 and 0x57 which is strange because those pins don't even exist And decimal 56 and 57 are LCD pins. Confusing ....
    This script is a example and you can use it as template. The value define pins from other board.


    Do I need to set the UseAsIO, DataDir etc registry entries etc for the RST and IRQ pins? Or does fs_touch_edt.dll do that for me?
    The driver does that do for you.


    From the documentation for the touch controller, it looks like, at startup, the RST line should be pulled briefly low so it should be set to initially be high - correct?
    Yes. You have to be sure, that RST don't be used by other drivers.


    Then the controller will react with an IRQ - does the PicoCom check for that IRQ before it does anything else on the touch interface?
    No, we dont check explicitly for this IRQ. The driver handles all IRQs on the same way.


    Next, CLK must be set high to select I2C and after that everything should work. But our CLK is high (pin 33) so I2C should be selected but we see no activity on the pins 32 and 33 when the screen is touched.
    Do you have external pullups? If no, you have to enable internal. (registry key HKLM\Drivers\BuiltIn\PicoCOMA5\I2C1_V120, IntPullUp to 1)

    You need e.g. the following touch connections:


    1) Is this how it should work; we specify I2C as device in the registry and we specify the irq and RST lines, with that fs_touch_edt.dll knows enough to talk to the FT%406 touch controller - correct?
    yes.


    2) if so, a number of questions: should the ChangeIO and ResetIO be specified in hex or decimal?
    both is possible, e.g. reg set val Flags dword 8 or reg set val Flags dword 0x8


    3) the i2C data goes low at reboot and stays ow, why is that?
    Do you have PicoCOMA5 Board Rev 1.10?