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
(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…“)
 
Zeile 1: Zeile 1:
= Navi =
+
= Ziele =
  
== 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
  
Linux-Navigationsgerät bauen mit ausschließlich Free Software.
+
= Hardware, abstrakt =
Einarbeiten in UART, SPI, I²C, SPI mit Linux >= 4.4
 
Spaß haben
 
 
 
== Hardware ==
 
  
 +
* 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

  • 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
&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”;
};