Hallo, ich versuche nun schon seit über einem Monat den Ultraschallsensor CH101 der Firma TDK mit dem ESP32-Board auszulesen. Leider habe ich noch keine Lösung gefunden. Die I2C-Verbindung ist bereits hergestellt worden. Kennt jemand den CH101 Sensor und kann mir helfen? Danke im Voraus. Viele Grüße nimo1012
Selbst keine Erfahrung damit, aber eventuell kannst Du die hier genannten Sourcen finden und Funktionalität nachbauen https://invensense.tdk.com/download-pdf/an-000154-ch-101-example-driver-hands-on/ Oder steht das unter NDA?
Hallo, der CH101 braucht ja erstmal seine Software per I2C, mit welcher er dann arbeitet. Der Speicher da drin ist flüchtig, weshalb er bei jedem Start wieder erst die Software braucht. TDK hat ein Beispielprojekt für einen Atmel-Mikroprozessor online, welches bei mir gut auf Anhieb funktionierte. Auf anderen Mikroprozessoren habe ich es leider noch nicht getestet. Aber sei gewarnt, der CH101 funktioniert faktisch gar nicht mit dem Original Ultraschallhörnchen drauf. Da kannst die Werte auch einfach Würfeln. Bei den von TDK online gestellten hat bei mir am besten das recht hohe ovale funktioniert, aber auch das ist noch nicht das Maximum, was der Sensor schaffen würde. Bei glatten Oberflächen wurden Reichweiten bis etwas über einem Meter erreicht, mit einem selbstdesignten Ültraschallhörnchen. Grüße Patrick
Hallo micha, ich habe mir die bereitgestellte Dokumentation und die Beispielprogramme schon sehr gründlich angeschaut. Leider ist das Beispielprogramm nur für bestimmte Atmel-Mikroprozessoren geeignet. viele Grüße nimo1012
Hallo Patrick, Mit welchem Atmel-Mikrocontroller hast du die Sensoren angesprochen? Ich habe mir das DK-CH101 Development Board gekauft. Jedoch können da leider nur 4 Sensoren direkt angeschlossen werden. Die Dokumentation zu diesem Board ist leider nur sehr spärlich. Es gibt keine Informationen über weitere Ein/Ausgänge. Für mein Projekt will ich 12 Sensoren ohne Ultraschallhörnchen anschließen, um einen möglichst großen Öffnungswinkel zu erhalten. Viele Grüße nimo1012
Niklas T. schrieb: > Für mein Projekt will ich 12 Sensoren ohne Ultraschallhörnchen > anschließen Ohne Hörnchen empfängst du nicht genug Echoenergie, weil die Impedanzanpassung fehlt.
Hallo Wolfgang, danke für die Information. Ich dachte gelesen zu haben, dass der Sensor auch ohne Ultraschallhörnchen nutzbar wäre. In dem Fall werde ich wohl eine Tube mit den angegebenen Maßen verwenden, um einen Öffnungswinkel von 180° zu erhalten. Viele Grüße nimo1012
Versuche nun auch schon seit zwei Wochen den CH101 bzw. CH202 ohne das
TDK Eval Board zum Laufen zu bekommen.
Leider gibt es von TDK nur ein Atmel Studio Projekt für einen SAMG55
Controller. Dieses Projekt kann ich einwandfrei importieren und Builden.
Aber der Transfer dieses Codes auf einen Arduino Due (SAM3X) übersteigt
bei Weitem meine Programmierkenntnisse. Das Problem ist: Das
Beispielprogramm "Hello Chirp" hat so ziemlich alles implementiert, was
man mit dem Sensor machen kann. Wenn man nur einzelne Messungen
antriggern und auslesen will, kann man vermutlich 90 % des Quellcodes
auskommentieren. Auch in dem Atmel-Studio Projekt sind vermutlich 90 %
toter Code wie z.B. SPI Bibliotheken mit drin.
Dann scheint es noch mehrere Abstraktionsschichten zu geben: Die
Sensorbibliothek hat generische Funktionen, die auf Atmel (ASF)
generische Funktionen zugreifen, die wiederum auf eine
Plattformspezifische Funktion zugreifen.
> Für jemand der sich nicht mit Atmel-Controller und Atmel-Studio auskennt die
Hölle...
Leider findet man im Internet nirgends einen abgespeckten Quellcode, den
man dann zu Fuß auf den SAM3X umschreiben könnte. Letztlich benötigt man
doch nur 2 logische I2C-Schnittstellen: Eine zum Flashen der
Sensorfirmware und eine zur anschließenden Kommunikation mit dem Sensor
und dann noch maximal 2 GPIOs für die Sensorplatine...
Kennt vielleicht jemand einen solchen Minimal-Quellcode?
Hallo allerseits ich versuche auch gerade einen CH201 auf einem ESP32 ans Laufen zu bekommen, ich nutze die aktuelle SonicLib von TDK (Version 4.9.0) - soweit ich mit dem I2C Analyzer sehe, wird der Sensor an sich gefunden und die SensorLib schreibt auch die Firmware über die Adresse 0x45.
Wenn dann aber irgendwann die Firmware gestartet wird (Kommando C2 02) sollte dann irgendwann die Funktion chdrv_group_wait_for_lock Erfolg haben und das passiert bei mir nicht.
Diese Funktion sendet einen Register-Read an den Sensor, nun auf Adresse 0x29 und mit Register Adresse 0x14. Das Schreiben der Adresse 0x29 wird mit einem ACK beantwortet, aber das nächste Byte, die Register-Adresse 0x14 mit einem NACK und weiter komme ich nicht.
Ich habe mich auch schon durch diverse Beispeile durchgesucht (zB https://www.arduinolibraries.info/libraries/c-hx01) aber auch dort nichts hilfreiches gefunden.
Kann hier evt jemand helfen ? - danke
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.