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
@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.
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
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.
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
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
Sieht aus wie ganz normal I2C - da benutze ich lieber SPI.
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
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
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.
Danke für deine Worte. Ist doch ein (grosser)Unterschied zu meiner versuchten Erklärung. achim
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. ;-)
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.