Navi: Unterschied zwischen den Versionen
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]] |