Forum: Mikrocontroller und Digitale Elektronik VGA(DVI) zu SPI (Display) Konverter


von .Patrick. (Gast)


Lesenswert?

Hallo ihr,

ich bin seit ein paar Tagen auf der Suche nach einem Konverter von VGA 
(oder DVI/HDMI) auf SPI für ein SPI Display.
Das ganze soll dazu dienen, ein 1,8 Zoll großes Display mit 
SPI-Schnittstelle an den PC anschließen zu können und dieses als zweiten 
"Monitor" zu verwenden.
Gibt es da etwas vergleichbares oder hat das schon einmal jemand 
versucht zu programmieren?
Muss auch nicht analog VGA sein, kann auch DVI oder HDMI sein fürs 
Eingangssignal).

Das ganze war gedacht als Statusdisplay für einen (Home)Server mit 
Automationssoftware, der mit einem Raspbi laufen sollte.
Da ich aber ein reines Windows-Kind bin und Windows 10 IOT mir nicht 
wirklich ein nutzbares Windows zur Verfügung stellt, würde Ich auf die 
zuerst angedachte Lösung mit einem MiniITX-Board zurück greifen.
(Angedacht war die Nutzung des Raspbies aufgrund des geringen 
Stromverbrauchs)
Nicht wirklich nutzbar in der Hinsicht, das Ich mit Delphi meine 
(Win-)Programme programmiere, mir nach meinem jetzigen Stand aber keine 
normale Windows-Umgebung bei IOT gegeben ist, also in der Hinsicht 
Explorer, Desktop, Schnittstellen etc.

Ich danke schon einmal im Vorraus
Gruß
Patrick

von Planlos (Gast)


Lesenswert?

Ugh...

Erm...

Ahja...

Da hast du dir so ziemlich die komplizierteste Verbindungs-Möglicheit 
ausgesucht...

Dein SPI-Display per SPI anzuschließen kommt nicht in Frage?

Wie fit bist du in VHDL/Verilog?

von .Patrick. (Gast)


Lesenswert?

Ja, das hab ich durch Suchen im Netz schon raus gefunden, das dies wohl 
weniger gebräuchlich ist.

In wie fern meinst du das SPI-Display über SPI anschließen?
Ich könnte das Display z.B. über einen USB-SPI "Wandler" anschließen, 
dann könnte Ich aus der Software das Display sicherlich auch füttern mit 
Daten.
Nur wüsste Ich nicht wie Ich Windows dazu bekommen soll, das Display 
selbst als "aktiven Monitor" zu nutzen.

Mit VHDL kenne ich mich leider garnicht aus.

Meine Kenntnisse beschränken sich nur auf Delphi (Pascal) und ich nenns 
mal Grundkenntnisse Assembler für die 8bit Atmels.

von Dominik S. (dasd)


Lesenswert?

.Patrick. schrieb:
> Nur wüsste Ich nicht wie Ich Windows dazu bekommen soll, das Display
> selbst als "aktiven Monitor" zu nutzen.

Kurze Antwort : Gar nicht.
Das musst du dann aus deiner Applikation heraus tun.

von Markus H. (traumflug)


Lesenswert?

.Patrick. schrieb:
> In wie fern meinst du das SPI-Display über SPI anschließen?

Er meint wohl, dass der Raspberry Pi über einen SPI-Anschluss verfügt 
und dieser auch für die Bildschirmausgabe, inkl. Boot-Nachrichten, 
unterstützt wird:

https://www.youtube.com/watch?v=nMQJmVDgAl8

(Den Beweis der Boot-Nachrichten gibt's in anderen Videos)

von Planlos (Gast)


Lesenswert?

Markus H. schrieb:
> Er meint wohl, dass der Raspberry Pi über einen SPI-Anschluss verfügt
> und dieser auch für die Bildschirmausgabe,

Entweder so, oder wenn

.Patrick. schrieb:
> Lösung mit einem MiniITX-Board

dann eben daran.
Das MiniITX-Board wird kein direkt zugängliches SPI haben.

Das müsste man nachrüsten. z.B.
MiniITX::Seriell --> Atmel::UART <-> Atmel::SPI --> Display::SPI.

Auf dem PC ein (Delphi)-Programm, dass einem Atmel sagt, was auf's 
Display soll.

Über Seriell geht da sicher kein Video-Playback. Aber für ein paar 
Status-Displays und Bedienelemente wird's reichen.

In Delphi hättest du dann z.B. ein TBitmap mit Canvas zum Zeichnen der 
Oberfläche, welche du Pixel-/Zeilenweise (TBitmap.ScanLine) an den Atmel 
schiebst.
Wenn das zu Langsam wird, muss der Atmel mehr "Intelligenz" kriegen, und 
du aus Delphi direkt Zeichenbefehle statt nur Pixeldaten schicken.

von .Patrick. (Gast)


Lesenswert?

Markus H. schrieb:
> Er meint wohl, dass der Raspberry Pi über einen SPI-Anschluss verfügt
> und dieser auch für die Bildschirmausgabe, inkl. Boot-Nachrichten,
> unterstützt wird:

Ja genau, das war eingentlich ausschlaggebend dafür, das Ich mir das mit 
dem Statusdisplay überlegt hatte, denn mit Linux und das Raspberry ist 
es wohl kein Problem dem Linux zu sagen "hau deine Bildschirmdaten über 
SPI raus"
Man hat dann quasi das SPI-Display als ganz normalen Bildschirm.
Nur kenne ich mich bis dato nicht wirklich mit Linux aus, da müsste Ich 
mich von 0 an einarbeiten.
Genauso wie dann z.B. Lazarus, wäre ja die Delphi_Variante für Linux, 
nur ist die Ansteuerung von Schnittstellen usw. auch anders und die viel 
genutzte Windows_API fällt dann komplett im Programm weg.
Auch komplett einarbeiten.
Auch wenn nen LinuxServer Sinn machen würde.

Planlos schrieb:
> .Patrick. schrieb:
>> Lösung mit einem MiniITX-Board
>
> dann eben daran.
> Das MiniITX-Board wird kein direkt zugängliches SPI haben.
>
> Das müsste man nachrüsten. z.B.
> MiniITX::Seriell --> Atmel::UART <-> Atmel::SPI --> Display::SPI.
>
> Auf dem PC ein (Delphi)-Programm, dass einem Atmel sagt, was auf's
> Display soll.
>
> Über Seriell geht da sicher kein Video-Playback. Aber für ein paar
> Status-Displays und Bedienelemente wird's reichen.
>
> In Delphi hättest du dann z.B. ein TBitmap mit Canvas zum Zeichnen der
> Oberfläche, welche du Pixel-/Zeilenweise (TBitmap.ScanLine) an den Atmel
> schiebst.
> Wenn das zu Langsam wird, muss der Atmel mehr "Intelligenz" kriegen, und
> du aus Delphi direkt Zeichenbefehle statt nur Pixeldaten schicken.

Das waren meine ersten Gedanken das über nen Intel-Atom MiniITX Board zu 
erledigen, da gab es nur den Gedanken an das Statusdisplay noch nicht.
Und der Stromverbrauch ist dann eben das 10fache des Raspberrys.

Eine Möglichkeit wäre dann über diesen Umweg gegeben wie du es schreibst 
mit dem seriell-SPI.
Aber da wird vermutlich die Geschwindigkeit etwas knapp oder?
Auch wenns nur 128x160 Pixel sind, die Ich rüber schieben müsste.
Aber flüssig sollte es ja bleiben.

Mit dem TBitmaß und Canvas müsste Ich dann nicht mal arbeiten, Ich 
könnte einfach jede x-beliebige Pixelfarbe auf dem Desktop der 128x160 
Pixel abfragen und rüber schieben.
Aber da wären wohl Praxistests von Nöten.

Ich danke euch bis dahin mit den Denkanstößen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.