Systemreferenz
Gerätespezifische Konfigurationen, Flashdaten und elektrische Schnittstellenwerte des qdGate.
Zuletzt geändert: 16. September 2026
Diese Seite enthält die gerätespezifischen Werte für das qdGate.
Build-Konfigurationen
Für das qdGate stehen derzeit folgende Buildroot Defconfigs zur Verfügung:
| Zweck | Defconfig |
|---|---|
| Entwicklung | qdcorex_qdgate-dhcor-stm32mp1-develop_defconfig |
Flashlayout
Das vollständige Flashlayout für das qdGate ist:
flash_layout_emmc.tsvDie Datei beschreibt die zu flashenden Artefakte einschließlich TF-A, OP-TEE,
U-Boot, Partitionstabelle und der Images für die Partitionen und wird vom
Tool stm32programmer zum programmieren des Flashs verwendet.
Versorgung
| Parameter | Wert |
|---|---|
| Versorgungsspannung | 24 V DC |
| Versorgungsstrom für die Inbetriebnahme | min. 200 mA |
Schnittstellenübersicht
| Schnittstelle | Richtung | Zugriff / Anschluss | Referenz |
|---|---|---|---|
| Debug-UART | Eingang und Ausgang | Interne Debug-Schnittstelle | Debug-Schnittstelle |
| USB Client | Eingang und Ausgang | USB-C | - |
| Ethernet | Eingang und Ausgang | LAN 1 / LAN 2 | - |
| Digitale IOs | Eingang und Ausgang | GPIO / libgpiod | GPIO-Line-Namen und Signalpegel |
| Analoge Eingänge | Eingang | Linux IIO | Analoge Eingänge |
| I2C | bidirektionaler Bus | Linux-Gerät oder Service | I2C und SPI |
| SPI | Eingang und Ausgang | Linux-Gerät oder Service | I2C und SPI |
| RS485 | Eingang und Ausgang | Linux-Gerät oder Service | RS485 |
| LTE-Modem | Eingang und Ausgang | QMI und GPIO | LTE-Modem |
Schnittstellen- und Hardwaredetails
Debug-UART
| Parameter | Wert |
|---|---|
| Signalpegel | 3,3-V-TTL-UART |
| Übertragung | 115200 Baud, 8N1 |
RS-485
| RS485-Kanal | Anschluss | SoC-UART | Linux-Gerätepfad |
|---|---|---|---|
| RS485-1 | X2 | UART5 | /dev/ttySTM4 |
| RS485-2 | X12 | UART7 | /dev/ttySTM1 |
Ethernet
| Parameter | Wert |
|---|---|
| Standards | 10BASE-T, 100BASE-T, 1000BASE-T |
USB
| Schnittstelle | Elektrische Eigenschaften |
|---|---|
| USB Host | Versorgung angeschlossener Geräte bis 700 mA |
| USB Client | USB-C, unter anderem für den DFU-Modus |
Digitale IOs
| Betriebsart | Signalzustand | Pegel / Bedeutung |
|---|---|---|
| Ausgang | Low (0) | 0 V |
| Ausgang | High (1) | Versorgungsspannung an X1 |
| Eingang | offen | High / 1 |
| Eingang | gegen GND geschaltet | Low / 0 |
Keine externe Spannung an DIO-Eingänge anlegen
Die DIO-Eingänge dürfen nicht mit einer externen Versorgung oder einem aktiv getriebenen Spannungspegel beschaltet werden. Verwende ausschließlich einen potentialfreien Kontakt oder einen Ausgang, der die Leitung gegen GND ziehen kann.
Analoge Eingänge
Die analogen Messwerte des qdGate werden über das Linux-IIO-Subsystem als Rohwerte bereitgestellt. Die Zuordnung der Linux-IIO-Geräte und Kanäle ist:
| Signal | Messgröße | Messbereich | IIO-Gerät | Kanal | Sysfs-Rohwert |
|---|---|---|---|---|---|
| Analog 1 | Spannung* | 0–10 V | /sys/bus/iio/devices/iio:device0 | 2 | in_voltage2_raw |
| Analog 1 | Strom* | 4–20 mA | /sys/bus/iio/devices/iio:device0 | 3 | in_voltage3_raw |
| Analog 2 | Spannung* | 0–10 V | /sys/bus/iio/devices/iio:device1 | 6 | in_voltage6_raw |
| Analog 2 | Strom* | 4–20 mA | /sys/bus/iio/devices/iio:device1 | 7 | in_voltage7_raw |
| Temperatursensor | Temperatur | −20–100 °C | /sys/bus/iio/devices/iio:device0 | 1 | in_voltage1_raw |
* Die Messart wird über den zugehörigen GPIO umgeschaltet. Siehe Umschaltung zwischen Spannungs- und Strommessung.
Onboard Temperatursensor
Der verbaute Temperatursensor ist ein TDK NTCGS163JF103FT8 mit 10 kΩ bei
25 °C. Für eine genaue Temperaturberechnung ist die R-T-Kennlinie des
Herstellers
für genau diesen Typ zu verwenden. Für die im Schaltplan gezeigte Beschaltung
ergeben sich daraus folgende nominale Werte:
| Temperatur | NTC-Widerstand | ADC-Spannung |
|---|---|---|
| 100 °C | 0,975 kΩ | 266,515 mV |
| 25 °C | 10 kΩ | 1,500 V |
| 0 °C | 27,28 kΩ | 2,195 V |
| −20 °C | 67,79 kΩ | 2,614 V |
Der IIO-Rohwert ist zuvor mit *_scale in die ADC-Spannung U_ADC umzurechnen.
Aus der Spannung kann der NTC-Widerstand für die Beschaltung mit einem 10-kΩ-Pull-up
gegen 3,0 V näherungsweise berechnet werden:
U_ADC = U_mV / 1000 (U_ADC in V)
R_NTC = 10000 × U_ADC / (3,0 − U_ADC) ΩFür eine direkte Umrechnung von mV in °C kann zwischen benachbarten Tabellen- punkten näherungsweise interpoliert werden. Für eine höhere Genauigkeit sind die Werte aus der Herstellerkennlinie zu verwenden.
Umschaltung zwischen Spannungs- und Strommessung
Bei Analog 1 und Analog 2 wird die Messart über den jeweils zugehörigen GPIO-Umschalter gewählt. Der Umschalt-GPIO muss während der Messung auf dem gewünschten Pegel gehalten werden:
| Analoger Eingang | Umschalt-GPIO | Low (0) | High (1) |
|---|---|---|---|
| Analog 1 | AIN1_SELECT_CURRENT | Spannungsmessung | Strommessung |
| Analog 2 | AIN2_SELECT_CURRENT | Spannungsmessung | Strommessung |
Erst nach dem Umschalten und einer ausreichenden Einschwingzeit darf der
zugehörige IIO-Kanal gelesen werden. Beim Zugriff mit gpioset ist darauf zu
achten, dass die Leitung nicht unmittelbar nach dem Setzen wieder freigegeben
wird.
Beispiel für das Lesen der Rohwerte:
cat /sys/bus/iio/devices/iio:device2/in_voltage2_raw # Analog 1, Spannung
cat /sys/bus/iio/devices/iio:device2/in_voltage3_raw # Analog 1, Strom
cat /sys/bus/iio/devices/iio:device1/in_voltage6_raw # Analog 2, Spannung
cat /sys/bus/iio/devices/iio:device1/in_voltage7_raw # Analog 2, Strom
cat /sys/bus/iio/devices/iio:device2/in_voltage1_raw # TemperatursensorDie allgemeine Vorgehensweise für IIO-Zugriffe und die Umrechnung von Rohwerten ist unter Analoge Eingänge beschrieben.
GPIO-Line-Namen und Signalpegel
Der Linux-Device-Tree des qdGate vergibt über gpio-line-names sprechende
Namen für die verwendeten GPIO-Leitungen, die nachfolgend aufgelistet sind.
Für die Kommandozeilennutzung wird der Line-Name mit gpiofind in den aktuell
zugehörigen /dev/gpiochipX-Controller und Offset aufgelöst. Die
gpiochipX-Nummer ist laufzeitabhängig. Beispiele für gpioget, gpioset
und gpiomon stehen unter Digitale IOs.
DIO 1
| Line-Name | Hinweis | GPIO-Controller | Offset |
|---|---|---|---|
DIO1 | Digitaler IO 1 | gpiog | 4 |
DIO1_OE | Ausgangsfreigabe für DIO 1 | gpiof | 5 |
DIO1_OUTPUT_FAULT_N | Ausgangsfehler von DIO 1, active-low gemäß Namenskonvention | gpiof | 2 |
DIO 2
| Line-Name | Hinweis | GPIO-Controller | Offset |
|---|---|---|---|
DIO2 | Digitaler IO 2 | gpioh | 8 |
DIO2_OE | Ausgangsfreigabe für DIO 2 | gpioe | 4 |
DIO2_OUTPUT_FAULT_N | Ausgangsfehler von DIO 2, active-low gemäß Namenskonvention | gpioe | 9 |
DIO 3
| Line-Name | Hinweis | GPIO-Controller | Offset |
|---|---|---|---|
DIO3 | Digitaler IO 3 | gpiod | 0 |
DIO3_OE | Ausgangsfreigabe für DIO 3 | gpioi | 2 |
DIO3_OUTPUT_FAULT_N | Ausgangsfehler von DIO 3, active-low gemäß Namenskonvention | gpioi | 7 |
DIO 4
| Line-Name | Hinweis | GPIO-Controller | Offset |
|---|---|---|---|
DIO4 | Digitaler IO 4 | gpioa | 0 |
DIO4_OE | Ausgangsfreigabe für DIO 4 | gpioa | 3 |
DIO4_OUTPUT_FAULT_N | Ausgangsfehler von DIO 4, active-low gemäß Namenskonvention | gpioc | 15 |
LTE
| Line-Name | Hinweis | GPIO-Controller | Offset | Pegel / Bedeutung |
|---|---|---|---|---|
LTE_RESET | Reset des LTE-Modems | gpioe | 11 | active-low: 0 = Reset, 1 = Normalbetrieb |
LTE_POWER | Stromversorgung des LTE-Modems | tca6408 | 3 | active-high: 0 = aus, 1 = ein |
LTE_SIM_SELECT | Auswahl der LTE-SIM | tca6408 | 5 | 0 = Slot 1, 1 = Slot 2 |
LTE_SIM1_CD | Card-Detect für SIM 1 | tca6408 | 1 | active-high: 1 = SIM-Karte vorhanden, 0 = nicht vorhanden |
LTE_SIM2_CD | Card-Detect für SIM 2 | tca6408 | 2 | active-low: 0 = SIM-Karte vorhanden, 1 = nicht vorhanden |
LTE_MODEM_SIM_CD | Card-Detect des Modems | tca6408 | 4 | abhängig von der Konfiguration des Modems |
Analoge Eingänge
| Line-Name | Hinweis | GPIO-Controller | Offset |
|---|---|---|---|
AIN1_SELECT_CURRENT | Stromauswahl für analogen Eingang 1 | gpioe | 14 |
AIN2_SELECT_CURRENT | Stromauswahl für analogen Eingang 2 | gpioh | 9 |
Bedienung
| Line-Name | Hinweis | GPIO-Controller | Offset |
|---|---|---|---|
UI_USER_BUTTON | Benutzer-Taster | gpioa | 1 |
Beispiele mit qdGate-Line-Namen
Die Line-Namen können direkt über gpiofind für die libgpiod-Werkzeuge
aufgelöst werden:
# Zustand des Benutzer-Tasters lesen
gpioget $(gpiofind "UI_USER_BUTTON")
# DIO1 setzen und den Zustand bis zur Eingabe halten
gpioset --mode=wait $(gpiofind "DIO1")=1
# Auf einen steigenden Ausgangsfehler von DIO1 warten
gpiomon --rising-edge $(gpiofind "DIO1_OUTPUT_FAULT_N")Die Schreibweise mit n kennzeichnet in den Signalnamen üblicherweise ein
active-low-Signal. Sie ersetzt jedoch nicht die Prüfung der tatsächlichen
GPIO-Flags und der elektrischen Beschaltung.
