Author Topic: Question about FT5x06 controller (NHD-7.0-800480EF-ATXL-CTP)  (Read 3582 times)

DominusDRR

  • Newbie
  • *
  • Posts: 4
  • Karma: 0
    • View Profile
Hi.

I'm working with NHD-7.0-800480EF-ATXL-CTP module and a microcontroller.

I'm trying to get information from the touch controller.

I'm sending the first byte, suggested by the data sheet:

i2c_start();
i2c_tx(0x70); //Slave Address (Write)

But I get a NACK in the ninth bit of I2C communication, which means there is no response from the touch controller.

I've checked the electrical connections and all seems OK.

I'm not sure which value should be pull-up resistors on SCL and SDA.

Currently are 2.2K.

I2C communication works fine touch with another touch controller from another TFT (another manufacturer.)

Do you think that could be the problem?

Thanks

DominusDRR

  • Newbie
  • *
  • Posts: 4
  • Karma: 0
    • View Profile
Re: Question about FT5x06 controller (NHD-7.0-800480EF-ATXL-CTP)
« Reply #1 on: May 14, 2015, 03:39:36 PM »
I have read some similar thread and tried to initialize the PCAP controller, but it is still not working.

I share the code that manages the PCAP controller:

Code: [Select]

 LAT_RESET_PACP = 1;//digitalWrite(WAKE, HIGH);
 DelayMs(100);//delay(100);
 
 LAT_RESET_PACP = 0;//digitalWrite(WAKE, LOW);
 DelayMs(200);//delay(200);
 LAT_RESET_PACP = 1;//digitalWrite(WAKE, HIGH);
 DelayMs(200);//delay(200);//delay(200);


...

// PACP_ADDRESS = 0x70
I2C_FORMAT_7_BIT_ADDRESS(SlaveAddress, (unsigned char) PACP_ADDRESS, I2C_WRITE);

...

TxOK = 1;

DataSz = 2;

i2cData[0] = SlaveAddress.byte;

if(!SendStar(0))//Send a START
{
     while(1);
}

Index = 0;
       
while(TxOK && (Index < DataSz))
 {
            // Send a byte
            if (Send_A_Byte(i2cData[Index]))
            {
                Index++;
                if(!I2CByteWasAcknowledged(PCAP_I2C_BUS))
                {
                    DBPRINTF("Error: Sent byte was not acknowledged\n"); [b]// Here comes the program counter.[/b]
                 
                   TxOKa = 0x00;
                }

...



I also attached a picture from my for logic analyzer:




Paul_B

  • Administrator
  • Sr. Member
  • *****
  • Posts: 247
  • Karma: 16
    • View Profile
Re: Question about FT5x06 controller (NHD-7.0-800480EF-ATXL-CTP)
« Reply #2 on: May 14, 2015, 03:59:57 PM »
Hello,

Regarding your first post, can you please tell me if your MCU has built-in pull up resistors?

If so it is possible that it could be causing a weak pull-up.

Finally, I recommend you use 10k Ohm resistors. If you get no response we will continue to debug  8)

Thanks!


« Last Edit: May 14, 2015, 04:07:27 PM by Paul_B »

DominusDRR

  • Newbie
  • *
  • Posts: 4
  • Karma: 0
    • View Profile
Re: Question about FT5x06 controller (NHD-7.0-800480EF-ATXL-CTP)
« Reply #3 on: May 14, 2015, 04:40:25 PM »
Hi.

Thanks for answering.

The pull-up resistors are external.

Tomorrow I will replace 2.2k resistors for 10k.

I will also check if there are these internal resistors within MCU and if they are enabled in some way.

Also the touch panel connector is connected to a long cable (approximately 15 cm) to the PCB.

Do you think that you think could be the problem?


Paul_B

  • Administrator
  • Sr. Member
  • *****
  • Posts: 247
  • Karma: 16
    • View Profile
Re: Question about FT5x06 controller (NHD-7.0-800480EF-ATXL-CTP)
« Reply #4 on: May 14, 2015, 04:48:41 PM »
Hello,

To answer your question yes, it is definitely possible. If you have some shorter jumper wires on hand it wouldn't hurt to swap them out.

However, I do not believe this is the culprit  ;)

DominusDRR

  • Newbie
  • *
  • Posts: 4
  • Karma: 0
    • View Profile
Re: Question about FT5x06 controller (NHD-7.0-800480EF-ATXL-CTP)
« Reply #5 on: May 15, 2015, 10:04:11 AM »
Hi.

I analyzed the data sheets of the MCU and there are no internal pull-up resistors

I also put 10k resistors , but the microcontroller generates the Start , but fails to leave that state

Code: [Select]
do
    {
        Status = I2CGetStatus(PCAP_I2C_BUS); // Never leaves this infinite loop
    } while (!(Status & I2C_START));

where:


*******************************************************************************
  Function:
    I2C_STATUS I2CGetStatus ( I2C_MODULE id )

  Summary:
    This is a routine to provide the current status of the I2C module.

  Description:
    This routine provides a bitmask of the current status flags for the I2C
    module.

  Precondition:
    None.

  Parameters:
    id      - Identifies the desired I2C module.

  Returns:
    The return value is a bitmask generated by a bit-wise OR of the I2C_STATUS
    flags that are currently set.

  Example:
    <code>
    status = I2CGetStatus(I2C1);
    if(I2C_ARBITRATION_LOSS & status)
    {
        // Handle arbitration loss
        //...
        I2CClearStatus(I2C1, I2C_ARBITRATION_LOSS);
    }
    </code>

  Remarks:
  *****************************************************************************/



I put resistance of 5 k , and returns to the initial problem , similar to the resistance of 2.2 k


My next step will be to reduce the length of the cable.

 

NHD‐3.5‐320240MF‐ATXL#‐T‐1 Touch Signal

Started by jmasamotoBoard TFTs

Replies: 1
Views: 1990
Last post February 05, 2016, 08:05:40 AM
by Paul_B
NHD‐3.5‐320240MF‐ATXL#‐CTP‐1 Problem with standby mode

Started by guenterBoard TFTs

Replies: 0
Views: 1833
Last post June 16, 2016, 12:14:36 PM
by guenter
NHD‐4.3‐480272EF‐ATXL#‐CTP | FAN5333 | BBB | Nothing on the Display

Started by Alias_AliasBoard TFTs

Replies: 1
Views: 3199
Last post September 25, 2015, 03:09:24 PM
by Paul_B
NHD-5.0-800480TF-ATXL#-CTP why don't typical timing values work?

Started by jkelleherBoard TFTs

Replies: 2
Views: 2571
Last post August 31, 2015, 05:08:45 AM
by jmag999
NHD-5.0-800480TF-ATXL#-CTP electrical noise interfering with touch

Started by Les.GrantBoard TFTs

Replies: 3
Views: 2083
Last post July 07, 2016, 02:56:01 PM
by Paul_B