Navi: Unterschied zwischen den Versionen
aus Metalab Wiki, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Zur Navigation springenZur Suche springen
Dannym (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „= Navi = == Ziele == Linux-Navigationsgerät bauen mit ausschließlich Free Software. Einarbeiten in UART, SPI, I²C, SPI mit Linux >= 4.4 Spaß haben == Ha…“) |
Dannym (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
= | = Ziele = | ||
= | * Linux-Navigationsgerät fürs Auto bauen mit ausschließlich Free Software. | ||
* Einarbeiten in UART, SPI, I²C, SPI mit Linux >= 4.4 | |||
* Spaß haben | |||
= Hardware, abstrakt = | |||
* Stromversorgung | |||
* GPS | * GPS | ||
* FM-Radio | * FM-Radio | ||
* VAN-Controller | * VAN Bus Controller für Display etc | ||
= Hardware, konkret = | |||
* 5 V "Anker" Netzteil für Auto | |||
* MT3329 GPS Receiver | |||
* TSS463AA VAN Bus Controller | |||
* MCP2551 CAN Line Driver | |||
* RDA5807M FM Radio | |||
* TDA7850 4-Kanal-Audio-Verstärker | |||
* PT7313E Audio Filter | |||
* A20-OLinuXIno-LIME2 Host Computer | |||
= Verbindungen = | |||
* 5 V Netzteil für Auto: ISO-Stecker, USB | |||
* MT3329 GPS Receiver: UART | |||
* TSS463AA VAN Bus Controller: SPI | |||
* MCP2551 CAN Line Driver: UART | |||
* RDA5807M FM Radio: I²C, Antenne | |||
* TDA7850 4-Kanal-Audio-Verstärker: Cinch | |||
* PT7313E Audio Filter: I²C, Klinke | |||
* A20-OLinuXIno-LIME2 Host Computer: Ethernet | |||
== Hardware-Fallstricke == | |||
== FM-Antenne == | |||
* vorhanden am Auto etc | |||
* hat möglicherweise eingebauten Verstärker | |||
* schwierig zu finden (ist meist außerhalb des Autos) | |||
* Phantomspeisung zur Stromversorgung nötig? | |||
* Buchse? ISO oder DIN? Wahrscheinlich DIN. | |||
* Impedanz? 100 Ω? 50 Ω? | |||
== EMI == | |||
* ElectroMagnetic Interference | |||
* unsere Hardware stellt viele Hochfrequenzstörquellen dar | |||
* Störung von außen gibt’s vielleicht auch | |||
* Audioverstärker sollte nicht gestört werden | |||
* Faradayscher Käfig nötig (1 oder mehr) | |||
** Filterplatte mit Masse | |||
** min. 2 Lagen | |||
== Ghost in the Machine == | |||
* Pull-Up-Widerstände sind auf den Kommunikationsleitungen notwendig, damit kein Blödsinn gesendet/empfangen wird, wenn ein Gerät ohne Strom ist | |||
= Software = | |||
* Selbstgebastelte (wenn sinnvoll User-Space-) Treiber für die Hardware | |||
** http://svn.nomike.com/playground/trunk/Navi/ | |||
* MT3329 geht über gpsd schon | |||
** xgps-Testprogramm | |||
* Linux 4.4-rc2 | |||
** Hardware und Verbindungen müssen im Device-Tree-File eingetragen sein (d.h. eingetragen werden) | |||
* es existieren verschiedene Headerfiles für SPI. | |||
** Vorsicht! linux-headers-Paket im User Space installieren&verwenden, nicht /usr/src/linux/include | |||
** Device Tree | |||
*** offiziell sollten für Peripherie Device-Tree-Overlays verwendet werden (wird zusätzlich zum Board-Device-Tree-File geladen): | |||
*** Spezialsyntax __overlay__ { … } | |||
*** dtc -@ xxx.dts | |||
*** Linux Command Line: dtoverlay=xxx.dtb beim Booten | |||
*** geht nicht in Debian, weil "/plugin/" unbekannt | |||
*** Hack: Board-File editieren | |||
*** bei unserem Host: sun7i-a20-olinuxino-lime2.dts | |||
*** folgendes hinten anhängen und dann: make dtbs und die entstehende Datei sun7i-a20-olinuxino-lime2.dtb dem Bootvorgang zur Verfügung stellen | |||
<pre> | |||
&uart4 { | |||
pinctrl-names = “default”; | |||
pinctrl-0 = <&uart4_pins_a>; | |||
status = “okay”; | |||
}; | |||
&spi2 { | |||
status = “okay”; | |||
pinctrl-names = “default”; | |||
pinctrl-0 = <&spi2_pins_a>; | |||
van0: tss463aa@1 { | |||
compatible = “atmel,tss463aa”; | |||
reg = <0>; | |||
spi-max-frequency = <4000000>; | |||
spi-cpol; | |||
spi-cpha; | |||
}; | |||
}; | |||
&i2c2 { | |||
pinctrl-names = “default”; | |||
pinctrl-0 = <&i2c2_pins_a>; | |||
status = “okay”; | |||
}; | |||
&codec { | |||
status = “okay”; | |||
}; | |||
</pre> | |||
[[Kategorie:Projekte]] | [[Kategorie:Projekte]] |
Version vom 30. November 2015, 01:49 Uhr
Ziele
- Linux-Navigationsgerät fürs Auto bauen mit ausschließlich Free Software.
- Einarbeiten in UART, SPI, I²C, SPI mit Linux >= 4.4
- Spaß haben
Hardware, abstrakt
- Stromversorgung
- GPS
- FM-Radio
- VAN Bus Controller für Display etc
Hardware, konkret
- 5 V "Anker" Netzteil für Auto
- MT3329 GPS Receiver
- TSS463AA VAN Bus Controller
- MCP2551 CAN Line Driver
- RDA5807M FM Radio
- TDA7850 4-Kanal-Audio-Verstärker
- PT7313E Audio Filter
- A20-OLinuXIno-LIME2 Host Computer
Verbindungen
- 5 V Netzteil für Auto: ISO-Stecker, USB
- MT3329 GPS Receiver: UART
- TSS463AA VAN Bus Controller: SPI
- MCP2551 CAN Line Driver: UART
- RDA5807M FM Radio: I²C, Antenne
- TDA7850 4-Kanal-Audio-Verstärker: Cinch
- PT7313E Audio Filter: I²C, Klinke
- A20-OLinuXIno-LIME2 Host Computer: Ethernet
Hardware-Fallstricke
FM-Antenne
- vorhanden am Auto etc
- hat möglicherweise eingebauten Verstärker
- schwierig zu finden (ist meist außerhalb des Autos)
- Phantomspeisung zur Stromversorgung nötig?
- Buchse? ISO oder DIN? Wahrscheinlich DIN.
- Impedanz? 100 Ω? 50 Ω?
EMI
- ElectroMagnetic Interference
- unsere Hardware stellt viele Hochfrequenzstörquellen dar
- Störung von außen gibt’s vielleicht auch
- Audioverstärker sollte nicht gestört werden
- Faradayscher Käfig nötig (1 oder mehr)
- Filterplatte mit Masse
- min. 2 Lagen
Ghost in the Machine
- Pull-Up-Widerstände sind auf den Kommunikationsleitungen notwendig, damit kein Blödsinn gesendet/empfangen wird, wenn ein Gerät ohne Strom ist
Software
- Selbstgebastelte (wenn sinnvoll User-Space-) Treiber für die Hardware
- MT3329 geht über gpsd schon
- xgps-Testprogramm
- Linux 4.4-rc2
- Hardware und Verbindungen müssen im Device-Tree-File eingetragen sein (d.h. eingetragen werden)
- es existieren verschiedene Headerfiles für SPI.
- Vorsicht! linux-headers-Paket im User Space installieren&verwenden, nicht /usr/src/linux/include
- Device Tree
- offiziell sollten für Peripherie Device-Tree-Overlays verwendet werden (wird zusätzlich zum Board-Device-Tree-File geladen):
- Spezialsyntax __overlay__ { … }
- dtc -@ xxx.dts
- Linux Command Line: dtoverlay=xxx.dtb beim Booten
- geht nicht in Debian, weil "/plugin/" unbekannt
- Device Tree
- Hack: Board-File editieren
- bei unserem Host: sun7i-a20-olinuxino-lime2.dts
- folgendes hinten anhängen und dann: make dtbs und die entstehende Datei sun7i-a20-olinuxino-lime2.dtb dem Bootvorgang zur Verfügung stellen
&uart4 { pinctrl-names = “default”; pinctrl-0 = <&uart4_pins_a>; status = “okay”; }; &spi2 { status = “okay”; pinctrl-names = “default”; pinctrl-0 = <&spi2_pins_a>; van0: tss463aa@1 { compatible = “atmel,tss463aa”; reg = <0>; spi-max-frequency = <4000000>; spi-cpol; spi-cpha; }; }; &i2c2 { pinctrl-names = “default”; pinctrl-0 = <&i2c2_pins_a>; status = “okay”; }; &codec { status = “okay”; };