TftA I2C address configuration

Please also read : User Signature Row

This development arose from the address conflict between the ISL1220 real time clock and theTftA
colour graphics display - both of which were using I2C address 0x6F (hexadecimal 6F)
The ISL1220 is fixed at 0x6F. The TftA adress was coded into TftA and TrxAVR.
The solution to this conflict involved a flexible TftA address stored:

Hobcat's Setup Menu now contains an item : TftA I2C address which displays the window below:

     Hobcat's TftA I2C address editor window
This window, on opening, displays the TftA I2C address that is stored in TrxAVR.

On clicking the save button:

If there was a pre-existing address mismatch - then TftA will still be showing its opening
display with TftA version number etc.

There are two ways to fix this:

  1. Change the I2C address in TftA using the programmer. See : User Signature Row OR
  2. Enter the TftA I2C address as stored in TftA into TrxAVR using the above editor

In order to do option 2 above, you need to be able read the I2C address stored in byte 0
of the User Signature Row of TftA's Xmega processor.

TftA now displays this on its opening window ... which very conveniently remains on display
( for one minute ) if TrxAVR cannot drive TftA because of an address mismatch.
So you read the address from TftA, use Hobcat to send it To TrxAVR and then reboot.

TftA opening display showing the currently stored I2C address

We have provided two other features to avoid address mismatch distress:

  1. Previously, if TftA was not responding (as occurs in an address mismatch), the resulting recurrent
    TftA wait states made DSP load take upto 2 minutes and resulted in poor USB performance.
    (And you need USB + Hobact to fix the problem. )
    NOW, if TrxAVR's first communication attempt with TftA times out, the TftA display is abandonned thus
    allowing TrxAVR to otherwise start normally, albeit with no display, So after the usual 20 seconds,
    you have a 'TrxAVR ready' status in Hobcat and normal USB performance.
  2. Unused/erased User Signature Row bytes are 0xFF. This is the likely situation when you first upgrade
    to User Signature Row Usage. We have therefore coded for USRow byte 0 = 0xFF to yield the old 0x6F
    I2C address. Furthermore, 24LC512 address 0x7600 was previously unused and will be 0xFF.
    TtxAVR also interprets 0xFF as the old 0x6F ... and so you start with matching addresses.
    If not, then the fix is detailed above.

We suggest that every one uses I2C address 0x6B (hexadecimal 6B)


eDIPTFT43-ATP display from EA

Prior to the availability of TftA, few people purchased a eDIPTFT43-ATP display.
This has I2C addresss selection by jumper links. These will need changing to change the address.
We have suggested using address 0x6B. This is a seven bit address, ie not including the final R/W bit.
It is selected by grounding pin 10 ( SA2 = slave address 2)

Read the EA manual carefully to understand this:
BA0, BA1 and BA2 all high are translated to give upper byte (of 8 bit address) = 1101
SA0 and SA1 high and SA2 low directly give lower byte = 011x where x is the R/W bit.
Combining these: The 8 bit address = 1101 011x.
Shifting this one place to the right to give the '7 bit' address give 0110 1011 = 0x6B.