Forum: Mikrocontroller und Digitale Elektronik AT42QT1070 - Hat jemand Erfahrung damit ?


von Achim S. (achims)


Lesenswert?

Hallo
Wer verwendet den AT42QT1070 oder hat Erfahrung damit gesammelt?
Es geht dabei um die Ansteuerung der 7 Pins.
Leider hat die Suche mit google zwar einiges gebracht. Meistens 
irgendwelche Shops oder fertige Module aus China. Datenblatt habe ich 
gefunden. Adresse dazu ist die 0x1B.
achim

von Falk B. (falk)


Lesenswert?

@Achim Seeger (achims)

>Wer verwendet den AT42QT1070 oder hat Erfahrung damit gesammelt?

Nö.

>Es geht dabei um die Ansteuerung der 7 Pins.

Hmm.

>Datenblatt habe ich gefunden.

Und dort steht NIX drin?

> Adresse dazu ist die 0x1B.

Lass mich raten? Es ist ein Touchsensor mit I2C Anschluss? Kann ja nicht 
sooo schwer sein.

von Achim S. (achims)


Lesenswert?

Hallo Falk
Im Datenblatt steht was drin und bin gerade am lesen, übersetzen und 
lernen.
Es stimmt genau, hat wieder mit dem I2C Bus zu tun. Warum nicht diesen 
IC nutzen? Bin auch an dem IC mit dem Kondensator dran. Dazu gibt es 
einige Beiträge.
achim

von Rudolph R. (rudolph)


Lesenswert?

Ich habe zumindest die AT42QT110 schon benutzt und auch wenn die SPI 
haben, das sollte ähnlich sein.
Und mal davon abgesehen, dass man die auch konfigurieren kann, die sind 
erstmal voreingestellt und im einfachsten Fall muss man die nur noch 
auslesen.

von Achim S. (achims)


Lesenswert?

Habe schon gelesen, das einiges eingestellt werden kann. Verstehe nicht 
so ganz wie es gehen soll und was so bewikt. Ein einfaches auslesen 
hilft weiter
achim

von Achim S. (achims)


Lesenswert?

Im Datenblatt des Herstellers steht es so drin:

1. The host initiates the transfer by sending the START condition
2. The host follows this by sending the slave address of the device 
together with the WRITE bit.
3. The device sends an ACK.
4. The host then sends the memory address within the device it wishes to 
read from.
5. The device sends an ACK if the address to be read from is less than 
0x80 otherwise it sends a NACK).
6. The host must then send a STOP and a START condition followed by the 
slave address again but this time accompanied by the READ bit.
Note: Alternatively, instead of step 6 a repeated START can be sent so 
the host does not need to relinquish control of the bus.
7. The device returns an ACK, followed by a data byte.
8. The host must return either an ACK or NACK.
a. If the host returns an ACK, the device subsequently transmits the 
data byte from
the next address. Each time a data byte is transmitted, the device 
automatically increments the internal address. The device continues to 
return data bytes until the host responds with a NACK.
b. If the host returns a NACK, it should then terminate the transfer by 
issuing the STOP condition.
9. The device resets the internal address to the location indicated by 
the memory address sent to it previously. Therefore, there is no need to 
send the memory address again when reading from the same location.

Wenn ich das ganze übersetzen lasse kommt das folgende dabei raus:

1.  Der Host wird die Übertragung durch Senden des START-Bedingung
2. Der Host folgt dies durch zusammen Senden der Slave-Adresse des 
Gerätes, mit dem Schreib-Bit.
3. Das Gerät sendet ein ACK.
4. Der Host sendet dann die Speicheradresse innerhalb des Gerätes ist 
es, aus dem gelesen wünscht.
5. Das Gerät sendet eine ACK, wenn die zu lesende Adresse von weniger 
als 0x80 andernfalls sendet eine NACK).
6. Der Host muss dann senden Altestelle und eine START-Bedingung, 
gefolgt von der Slave-Adresse
wieder, aber dieses Mal begleitet von der Lese-Bit.
Hinweis: Alternativ können anstelle von Schritt 6 eine wiederholte START 
können so geschickt werden der Host nicht
müssen die Kontrolle über den Bus aufzugeben.
7. Vorrichtung gibt ein ACK, gefolgt von einem Datenbyte.
8. Der Host muss entweder ein ACK oder NACK zurück.
ein. Wenn der Host gibt ein ACK, anschließend sendet das Gerät das 
Datenbyte aus die nächste Adresse. Jedes Mal, wenn ein Datenbyte 
übertragen wird, das Gerät automatisch erhöht die interne Adresse. Das 
Gerät weiterhin Daten-Bytes, bis die Rück Host antwortet mit einem NACK.
b. Wenn der Host gibt ein NACK, sollte es dann beenden Sie die 
Übertragung durch die Ausgabe der STOP-Zustand.
9. Das Gerät setzt die interne Adresse in den von der Speicheradresse 
angegeben ist zuvor an sie gesendet. Daher besteht keine Notwendigkeit, 
die Speicheradresse wieder zu senden beim Lesen von der gleichen Stelle.
Hinweis: Lesen Sie die 16-Bit-Referenz und Signalwerte ist kein 
Automatikbetrieb; Lesen das erste Byte eines 16-Bit-Wert nicht mit dem 
anderen Byte zu verriegeln. Als Folge Störungen in der berichteten Wert 
kann gesehen werden, wie Werte erhöhen 255-256, oder zu verringern von 
256
255.

Wahrscheinlich kann man sich sehr gut über de Wert solcher technischen 
Beschreibungen-übersetzungen streiten. Egal, versuch den sinn dieser 
Sache zu begreiffen und etwas in C damit zu macgen.

Wie ist eure Erfahrzung damit?
achim

von Rudolph R. (rudolph)


Lesenswert?

Sieht aus wie ganz normal I2C - da benutze ich lieber SPI.

von Achim S. (achims)


Lesenswert?

Sieht aus wie ganz normaler I2C Bus - stimmt.
Da ich bereits mehrere Module (ca. 20)am Bus habe, möchte ich dabei 
bleiben.
Versuche nur den Sinn solcher übersetzung raus zu bekommen.
achim

von Achim S. (achims)


Lesenswert?

Bisher habe ich fast immer so gemacht:
1
I2C_start
2
I2C_write(slaveaddress);
3
i2C_write(commandbyte);
4
I2C_write(databyte);
5
I2C_stop;
Leider bin ich mir bei solch toller übersetzung nicht sicher dabei.
Das andere dabei ist das schreiben. Es können verschieden Sachen 
eingestellt werden.
achim

von Konrad S. (maybee)


Lesenswert?

Achim S. schrieb:
> 1. The host initiates the transfer by sending the START condition

Der Host beginnt den Transfer durch Senden von START.

> 2. The host follows this by sending the slave address of the device
> together with the WRITE bit.

Der Host sendet daraufhin die Slave-Adresse des Device zusammen mit dem 
WRITE-Bit.

> 3. The device sends an ACK.

Das Device sendet ACK.

> 4. The host then sends the memory address within the device it wishes to
> read from.

Der Host sendet die Device-Speicheradresse, von der er lesen will.

> 5. The device sends an ACK if the address to be read from is less than
> 0x80 otherwise it sends a NACK).

Das Device sendet ACK, wenn die Lese-Adresse kleiner als 0x80 ist, 
andernfalls sendet es NACK.

> 6. The host must then send a STOP and a START condition followed by the
> slave address again but this time accompanied by the READ bit.
> Note: Alternatively, instead of step 6 a repeated START can be sent so
> the host does not need to relinquish control of the bus.

Der Host sendet ein STOP und ein START, gefolgt von der Slave-Adresse, 
diesmal jedoch mit READ-Bit.
Beachte: Als Alternative zu Schritt 6 kann der Host ein Repeated-START 
senden, so dass er den Bus zwischenzeitlich nicht freigeben muss.

> 7. The device returns an ACK, followed by a data byte.

Das Device sendet ACK, gefolgt von einem Datenbyte.

> 8. The host must return either an ACK or NACK.

Der Host sendet entweder ACK oder NACK.

> a. If the host returns an ACK, the device subsequently transmits the
> data byte from
> the next address. Each time a data byte is transmitted, the device
> automatically increments the internal address. The device continues to
> return data bytes until the host responds with a NACK.

Wenn der Host ACK sendet, dann sendet das Device daraufhin das Datenbyte 
von der nächsten Adresse. Nach jeder Übertragung eines Bytes erhöht das 
Device automatisch die interne Speicheradresse. Das Device überträgt 
Datenbytes bis der Host NACK sendet.

> b. If the host returns a NACK, it should then terminate the transfer by
> issuing the STOP condition.

Wenn der Host NACK gesendet hat, sollte er die Übertragung durch STOP 
beenden.

> 9. The device resets the internal address to the location indicated by
> the memory address sent to it previously. Therefore, there is no need to
> send the memory address again when reading from the same location.

Das Device setzt die interne Speicheradresse auf die Stelle zurück, die 
ihm zuletzt gesendet wurde. Deshalb muss beim erneuten Lesen von der 
gleichen Speicheradresse dem Device keine Lese-Adresse gesendet werden.

von achim (Gast)


Lesenswert?

Danke für deine Worte. Ist doch ein (grosser)Unterschied zu meiner 
versuchten Erklärung.
achim

von Konrad S. (maybee)


Lesenswert?

Naja, der Google-Übersetzer ist ganz brauchbar, wenn man wissen will 
wovon in etwa die Rede ist, z.B. chinesisches Datenblatt. Eine 
brauchbare, verständliche Übersetzung gibt es meist nur für einfache 
Sätze. Leider gibt es im Output keine Markierung für gute und schlechte 
oder gar falsche Übersetzungen. Das muss der Leser schon selbst 
rausfinden. ;-)

von Stefan (Gast)


Lesenswert?

Hier gibt es ein kleines Projekt mit dem Teil (mit Schaltplan):

http://www.seeedstudio.com/wiki/Grove_-_Q_Touch_Sensor

Das klärt schon mal wie der Chip angeschlossen werden muss.

Dann liefert Google mit "AT42QT1070 Arduino" ein Link zu einer Library. 
Wahrscheinlich gibt es sogar mehrere. Da kannst du dir die Konfiguration 
und das Auslesen der Daten abgucken.

Das alles setzt natürlich vorraus dass du I2C grundsätzlich am Laufen 
hast.

von achim (Gast)


Lesenswert?

Hallo Stefan
danke für die Info. Diese Seite kenne ich und habe es als Grundlage für 
eigene Sachen benutzt. Leider ist nur das Standalone Schaltung 
verwendet, ohne Anbindung an den I2C Bus. Dadurch erfolgt kein Schreiben 
der Register und Veränderung der Parameter.
Der Bus läuft mit den verschiedensten ICs ohne Probleme. Dazu zählen alt 
bekannte Teile mit dem PCF8574 und neue ICs mit dem z.B. PCA9536 und 
mehr, Display, übertragung auf 10m, Funkstrecken usw.
Nach dem anderen werde ich suchen.
Danke
achim

von atA (Gast)


Lesenswert?

Do any one have some kind of open-source lib in C for it's i2c ?
I'm in will to use CodevisionAVR as my compiler.

note that i already know there is arduino - IAR - atmel studio libs, i 
didn't mention them...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.