Ultraschall-Objekterkennung mit TI PGA460 – Teil 5

5

06.11.2019 von plaintron

PGA460: Time Varying Gain und Threshold

Es geht weiter mit dem Reverse-Engineering der UART-Kommunikation zwischen der PGA460-GUI-Software und dem IC. Wir betrachten die Eingabemaske Time Varying Gain:

Time Varying Gain

T0 Start Time(us) to T4/T5 Delta(us) and Gain1(dB) to Gain5(dB)
55 0A 1A FC DE // write register 1A (TVGAIN6), set Bit2-7 (TVG_G5)
55 0A 19 71 6B // write register 19 (TVGAIN5), set Bit0-5 (TVG_G4) & Bit6-7 (TVG_G3) 
55 0A 18 D9 04 // write register 18 (TVGAIN4), set Bit0-3 (TVG_G3) & Bit4-7 (TVG_G2) 
55 0A 17 45 99 // write register 17 (TVGAIN3), set Bit0-1 (TVG_G2) & Bit2-7 (TVG_G1)
55 0A 16 FF DF // write register 16 (TVGAIN2), set Bit0-3 (TVG_T5) & Bit4-7 (TVG_T4)
55 0A 15 FF E0 // write register 15 (TVGAIN1), set Bit0-3 (TVG_T3) & Bit4-7 (TVG_T2)
55 0A 14 A3 3E // write register 14 (TVGAIN0), set Bit0-3 (TVG_T1) & Bit4-7 (TVG_T0)

Inital Gain(dB)
55 09 1B DB // read register 1B (INIT_GAIN)
55 0A 1B 08 D2 // write register 1B (INIT_GAIN), set Bit0-5 (GAIN_INIT)

Write Values
55 0A 1A FC DE // write register 1A (TVGAIN6), set Bit2-7 (TVG_G5)
55 0A 19 71 6B // write register 19 (TVGAIN5), set Bit0-5 (TVG_G4) & Bit6-7 (TVG_G3) 
55 0A 18 D9 04 // write register 18 (TVGAIN4), set Bit0-3 (TVG_G3) & Bit4-7 (TVG_G2) 
55 0A 17 45 99 // write register 17 (TVGAIN3), set Bit0-1 (TVG_G2) & Bit2-7 (TVG_G1)
55 0A 16 FF DF // write register 16 (TVGAIN2), set Bit0-3 (TVG_T5) & Bit4-7 (TVG_T4)
55 0A 15 FF E0 // write register 15 (TVGAIN1), set Bit0-3 (TVG_T3) & Bit4-7 (TVG_T2)
55 0A 14 A3 3E // write register 14 (TVGAIN0), set Bit0-3 (TVG_T1) & Bit4-7 (TVG_T0)

Read Values
55 09 00 F6 // read register from 00 (USER_DATA1)
//... up to
55 09 2B CB // read register 2B (EE_CRC)

55 09 40 B6 // read register from 40 (EE_CNTRL) 
//.. up to
55 09 4D A9 // read register 4B (DEV_STAT1)

55 09 5F 97 // read register from 5F (P1_THR_0) 
//.. up to
55 09 7F 77 // read register 7F (THR_CRC)

55 09 4C AA // read register 4C (DEV_STAT0) again?
55 09 4D A9 // read register 4D (DEV_STAT1) again?
55 09 1F D7 // read register 1F (PULSE_P2) again?
55 0A 1A FC DE // write register 1A (TVGAIN6) why?
55 0A 19 71 6B // write register 19 (TVGAIN5)
// down to 
55 0A 14 A3 3E // write register 19 (TVGAIN0) why?

Time Varying Gain beschreibt einen Satz von Zeit- und Verstärkungspunkten, die über die Laufzeit des Ultraschall-Signals verteilt sind. Damit ist es möglich, Signale mit längerer Laufzeit höher zu verstärken als Echos von nahen Objekten. Auch lassen sich mit dieser Funktion Störungen ausblenden oder abschwächen, etwa die Wandler-Resonanz ganz am Anfang der Signallaufzeit.

Die Verstärkung (Gain) lässt sich in einem von vier vorwählbaren Bereichen einstellen. Auswählbare Zeitintervalle von 100us bis 8000us ermöglichen eine Verschiebung der Verstärkungs-Koordinaten auf der Zeitachse. Obwohl alle Verstärkungswerte mit einem Befehl zum PGA460 übertragen werden können, wurde hier die separate Übertragung der einzelnen Gain-Register gewählt (TVGAIN0 bis TVGAIN6). Jede Änderung eines einzelnen Wertes führt zur Übertragung aller Gain-Register.

Inital Gain ist der Punkt Null der Gainstruktur und liegt in einem separaten Register. Bei einem TVG-Bulk-Write wird dieser nicht übertragen, weshalb er zusätzlich gesendet werden muss.

Der Button „Write Values“ löst die selbe Übertragung wie die Änderung eines einzelnen Wertes aus. Eigentlich hätte ich erwartet, dass hier auch der Init-Wert mitgesendet wird. In eigenen Anwendungen sollte man das berücksichtigen.

Auch der Button „Read Values“ hat ein unerwartetes Verhalten. Hier werden nicht nur die Gain-Register vom IC gelesen, sondern alle Register von 00 bis 7F. Das erklärt auch, warum die UART-Verbindung nach einem Klick auf diesen Button so lange aktiv ist. Anschließend werden ohne ersichtlichen Grund die Gain-Register zurück zum IC geschrieben sowie die bereits vorher gelesenen Status-Register erneut gelesen. Das schadet zwar alles nicht, ist aber auch nicht besonders sinnvoll und kostet unnötig Zeit.

 

Maske Threshold

Threshold

Set P1 or P2 Time(us) T1-T12, Level L1-L12 and Offset
55 0A 6E 07 80 // write register 6E (P1_THR_15), set Bit0-3 (TH_P1_OFF)
55 0A 6D 90 F7 // write register 6D (P1_THR_14), set Bit0-7 (TH_P1_L12) 
55 0A 6C A6 E2 // write register 6C (P1_THR_13), set Bit0-7 (TH_P1_L11) 
55 0A 6B B4 D5 // write register 6B (P1_THR_12), set Bit0-7 (TH_P1_L10) 
55 0A 6A C3 C7 // write register 6A (P1_THR_11), set Bit0-7 (TH_P1_L09) 
55 0A 69 FF 8C // write register 69 (P1_THR_10), set Bit0-4 (TH_P1_L8) &
 Bit5-7 (TH_P1_L7) 
55 0A 68 FF 8D // write register 68 (P1_THR_9), set Bit0-1 (TH_P1_L7), 
Bit2-6 (P1_L6) and Bit7 (TH_P1_L5) 
55 0A 67 FF 8E // write register 67 (P1_THR_8), set Bit0-3 (TH_P1_L5) 
& Bit4-7 (TH_P1_L4) 
55 0A 66 FF 8F // write register 66 (P1_THR_7), set Bit0 (TH_P1_L4), 
Bit1-5 (TH_P1_L3) and Bit5-7 (TH_P1_L2) 
55 0A 65 FF 90 // write register 65 (P1_THR_6), set Bit0-2 (TH_P1_L2) 
& Bit3-7 (TH_P1_L1) 
55 0A 64 FF 91 // write register 64 (P1_THR_5), set Bit0-3 (TH_P1_T12) 
& Bit4-7 (TH_P1_T11) 
// ... down to
55 0A 5F C1 D4 // write register 64 (P1_THR_0), set Bit0-3 (TH_P1_T2) 
& Bit4-7 (TH_P1_T1)
55 09 4C AA // read register 4C (DEV_STAT0)
55 09 4D A9 // read register 4D (DEV_STAT1) 
55 09 1F D7 // read register 1F (PULSE_P2) UART_ADDR

 

Die Threshold-Kurve hat Einfluss auf die Objekterkennung bei einer Ultraschall-Messung. Echos, deren Pegel oberhalb der THR-Kurve liegen, werden erkannt, darunter liegende ignoriert. Durch geschickte Konfiguration der Kurve lassen sich so etwa Wandler-Resonanzen oder Reflexionen des Gehäuses ausblenden. Für weiter entfernte Objekte wird die Erkennungsschwelle gesenkt, damit leise Echos erkannt werden.

Eine weitere Funktion der TH-Intervalle liegt in der Steuerung der Verstärkung. Sowohl Digital Gain als auch Nonlinear Scaling lassen sich ab einem bestimmten Zeitpunkt aktivieren, der zwischen TH9 und TH12 liegt. Damit lässt sich also beispielsweise die Verstärkung ab einer gewissen Entfernung deutlich anheben, um separate Messungen für einen Nah- und einen Fernbereich zu erfassen.

Sobald im EVM-GUI ein Threshold-Wert geändert wird, werden alle THR-Register zum IC gesendet und anschließend die Statusregister ausgelesen. Die Verteilung der TH-Werte auf die THR-Register ist etwas unübersichtlich. Die TH-Pegel 1 bis 8 bestehen aus den 5 oberen Bits eines Bytes, die unteren drei Bits werden abgeschnitten. Damit ergibt sich eine Auflösung von 8 mit einem Maximalwert von 248. Um den oberen Bereich bis 255 trotzdem nutzen zu können, wird ein Offset-Wert eingestellt, der für die TH-Pegel 1 bis 8 gültig ist. Die TH-Pegel 9 bis 12 haben dagegen volle 8 Bit Auflösung und lassen sich entsprechend feiner einstellen. TH-Zeitintervalle haben eine Auflösung von 5 Bit.

Die Buttons „R“ für Read und „W“ für Write ensprechen in ihrer Funktion jenen im TVG-Fenster. Der Button „Copy to USER_DATA1-16“ schreibt die THR-Register eines Presets in den User-Bereich des PGA460, brennt diese jedoch nicht ins EEPROM. Um diese Werte später nutzen zu können, muss also noch ein EEPROM-Write ausgelöst werden.

Im nächsten Teil geht es dann um die Fenster „Diagnostics“, „Test Mode“ und „Interface“.

 

5 Kommentare zu “Ultraschall-Objekterkennung mit TI PGA460 – Teil 5

  1. […] Ultraschall-Objekterkennung mit TI PGA460 – Teil 5 […]

    Liken

  2. […] Ultraschall-Objekterkennung mit TI PGA460 – Teil 5 […]

    Liken

  3. […] Ultraschall-Objekterkennung mit TI PGA460 – Teil 5 […]

    Liken

  4. […] Ultraschall-Objekterkennung mit TI PGA460 – Teil 5 […]

    Liken

  5. […] Ultraschall-Objekterkennung mit TI PGA460 – Teil 5 […]

    Liken

Kommentieren

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Blogverzeichnis - Bloggerei.de

RSS Make:

  • Programmieren lernen in NRW: Fraunhofer IAIS verschenkt Mini-Computer an Kinder
  • Ausprobiert: Photogrammetrie-3D-Scanner-App Trnio
%d Bloggern gefällt das: