Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » VGA-Adapter für A7100 » Themenansicht

Autor Thread - Seiten: -1-
000
14.11.2023, 21:23 Uhr
Ordoban



Hallo,

mein neuestes Projekt hat gerade das erste Lebenszeichen von sich gegeben: Ein VGA-Adapter für den A7100.


Das ganze basiert auf einem ESP32 S3, aufgebaut erst einmal auf Steckbrett.



Für die Ausgabe auf VGA benutze ich den LCD/CAM Kontroller. Die Video-Signale vom A7100 lese ich über den SPI-Port ein. Der Adapter hat noch seine Macken. Zum Beispiel verliert es ab und zu Zeilen, so dass das Bild zuckt. Die erste Spalte fehlt, und zum rechten Rand hin geht die Pixelsynchronisation verloren. Das lässt sich aber alles in den Griff krigen.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
15.11.2023, 07:36 Uhr
erocdraH_XAM



Erst letztens hatte ich deine Experiment gesehen, wo du irgendwie mit dem Logic Analyzer ein Bild herbeigezaubert hattest.
Definitv sehr spannend!
Ich selbst habe aktuell "nur" einen A7150, mein Vater hat ein einfaches Kabel gelötet womit er an einem VGA LCD Monitor Problemlos Dargestellt wird. Jedoch Digitales Capturing an einem modernen System mittels VGA Capturing oder HDMI Capturing von einem VGA Rescaler, ist mir bei heute leider nicht gelungen. Für die Rescaler sitzt das Bild zu weit außerhalb des unteren Bildbereichs und wird zu mindestens 1/3 abgeschnitten. Die LCD Monitore zeigen das Robotron Bild ja auch immer im unteren Bildbereich an.
Den von dir Entwickelten aktiven Adapter will ich demnächst auf Basis der Platine von BICa5105 nachbauen und hoffe, dass der Rescaler damit dann klar kommt.
Andernfalls wäre die Frage ob die Methode, die du hier versuchst auch möglich wäre?
Oder gibt es einen Entwickler der mal endlich eine Digitale Grafikkarte für den A7150 Bus auf den Markt bringt.... Vielleicht schreiben wir mal AMD oder Nvidia an, wobei Intel ja jetzt auch im kommen ist

Dieser Beitrag wurde am 15.11.2023 um 07:36 Uhr von erocdraH_XAM editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
15.11.2023, 09:53 Uhr
RP



Die Frage ist nur für was brauche ich das?

VGA am A7150 ist ja kein Problem , die meisten Monitore speichern die verschobenen Frequenzen des A7150 und sonst ist es eine kurze Korrektur der Einstellungen am Monitor.

Der A7100 und EC1834 mit mon. Karte ist da schon eine Herausforderung.
VGA an der Grafikkarte geht nicht. Da ist Stefan mit seiner Lösung schon auf einen machbaren Weg.
Da die fast unverwüstlichen Robotron K7229 Monitore jetzt auch mit Bildröhren und Zeilentrafo Ausfall kaputt gehen.

Ich habe schon mehrere Hercules mono Monitore umgebaut, so das sie am A7100 gehen. Aber auch diese Monitore sind vom Aussterben bedroht und eigentlich zu schade für einen Umbau.

Eine völlig neue Grafikkarte für diese Rechner zu entwerfen und zu bauen wo zu ? der A7100 ist ohnehin zu nichten zu verwenden, fast alles was der kann, kann auch ein alter 8 bit Rechner.
Die Anwendungen für den A7150 sind auch sehr begrenzt.
So sind diese Rechner nur noch schöne funktionierende Ausstellungsstücke.

Rolf
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
15.11.2023, 10:10 Uhr
MarioG77

Avatar von MarioG77

@Rolf,

ich glaube diese Frage sollte man hier so nicht stellen... Viele Sachen hier haben einen fraglichen "Sinn" für außenstehende.
Ich finde das faszinierend, dass obiges anscheinend schon recht gut geht.
Wer weiß, welche Möglichkeiten das sonst noch bietet.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
15.11.2023, 11:44 Uhr
RP



Mario,

den Rechner reparieren und erhalten ist unser Hobby, ohne Monitor geht das kaum, da machen die Lösungen von Stefan für mich Sinn.
Die funktionieren ja auch im wesentlichen mit der original Hardware der Robotron Rechner.
Einen Umbau der Zeilentrafos im K7229 ist auch, aber sehr aufwendig, möglich. Das entfernen der Epoxidharz Masse vom original Zeilentrafo ist eine "scheiß" Arbeit. HV Wicklung entfernen und dann funktioniert das parallel schalten eines Dioden Splitt Trafos auch.

Rolf
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
15.11.2023, 12:30 Uhr
MarioG77

Avatar von MarioG77

Hi Rolf,

dann habe ich dich falsch verstanden...

Ich habe nämlich mit den anderen 1715 auch noch das Thema, dass ich kein volles Bild habe. Das wird dann in so eine Richtung gehen...

Ich bin ja schon glücklich, dass dich dank dir wenigstens einen 1715 Monitor habe.
Danke nochmal
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
15.11.2023, 17:21 Uhr
Ordoban




Zitat:
erocdraH_XAM schrieb
Die LCD Monitore zeigen das Robotron Bild ja auch immer im unteren Bildbereich an.


Das ist beim A7150 normal. Auf dem scheinbar leeren oberen Bildschirmbereich können auch Grafiken dargestellt werden.
Für den A7150 ist der Ansatz mit dem ESP32 nur schlecht zu gebrauchen. Der A7150 bringt die Farb-Signale schon als analoge RGB-Signale raus - exakt wie bei VGA. Die wieder in ordentliche digitale Signale umzuwandeln dürfte nicht einfach sein. Immerhin ist die Pixel-Frequenz etwa 24MHz.

Beim A7100 sind die beiden Farbsignale noch digital, netterweise open Kollektor - was mir die Umwandlung in 3,3V für den ESP32 erspart. Ja, der A7100 kann nur 4 Farben, wenn man schwarz als Farbe mit zählt.


Zitat:
MarioG77 schrieb
Ich habe nämlich mit den anderen 1715 auch noch das Thema, dass ich kein volles Bild habe. Das wird dann in so eine Richtung gehen...


Welche Art von Bildsignal hat denn der PC1715?
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
15.11.2023, 21:13 Uhr
Ordoban



Na also



Jetzt noch das ganze fest aufbauen.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
15.11.2023, 21:17 Uhr
Klaus



Hallo,

ich habe gerade den Sinclair QL auf dem Tisch… ja ich weiß, nix DDR…
Da mir die Bildausgabe RGB an SCART nicht so richtig gefallen hat, habe ich bei meiner Suche ein Projekt bei Github gefunden. Hier wird das RGB-Signal in VGA gewandelt.

https://github.com/holmatic/video_if_ql_vga

Da der Raspberry Pi PICO ja sehr preiswert zu haben ist, habe ich die kleine Schaltung für den QL mal in fliegender Verdrahtung aufgebaut.
Das Bild sieht sehr gut aus,... habe aber bisher nur mit einem recht alten Monitor getestet. Ich probiere morgen mal noch andere Monitore mit VGA-Eingang.

Nun habe ich leider von dem Raspberry bzw. vom Programmieren in C (oder C++) absolut keine Ahnung.

Vielleicht sind hier ja Profis, die herausfinden können, ob man die Software (Schaltung) auch modifizieren kann und so u.U. auch die alten DDR Rechner über den kleinen Konverter an VGA Monitore anschließen kann.

Ja ich weiß, da gibt es schon reichlich Konverter. Teilweise für sehr viel Geld. Der kleine Pico ist preiswert und schön klein.

Evtl. kann einer der Spezialisten sich das Projekt mal anschauen … ob da evtl. was für unsere alten Schätzchen machbar ist.

Viele Grüße,
Klaus

Dieser Beitrag wurde am 15.11.2023 um 21:18 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
16.11.2023, 09:50 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb

Zitat:
MarioG77 schrieb
Ich habe nämlich mit den anderen 1715 auch noch das Thema, dass ich kein volles Bild habe. Das wird dann in so eine Richtung gehen...


Welche Art von Bildsignal hat denn der PC1715?


Prinzipiell ist das ein Standard Monochrom Signal, aber frag mich nicht nach Details.
Zur Erzeugung wird ein Intel 8275 CRT Controller genutzt.
Ich habe bis jetzt dafür noch kein Projekt gefunden, was das Signal Sauber für moderne Monitore verarbeitet.

Prinzipiell wäre mir ein Adapter lieber, als den BWS nachzubauen (Aufgrund des Aufwand/Kosten).

In einer Elektor von diesem Jahr war eine Artikel-Serie zu Videosignalen und Projekte mit u.A. Pi Pico. Allerdings kann ich die Infos zu Videosignalen einfach nicht länger als 5 Minuten im Kopf behalten. Das ist irgendwie ein Thema für sich. Mein Respekt gilt allen, die damit arbeiten.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
16.11.2023, 10:12 Uhr
RP



Die PC1715 weichen alle geringfügig in der hor. und vert Frequenz von der TV Norm ab, aber jeder anders, das Problem haben auch einige alte CGA Karten. Alte Monitore und Fernseher gleichen das über die synchron Impulse aus.
Diese Unterschiede verschieben das Bild bei digitaler Aufbereitung des Video Signals des PC1715 in eine andere Richtung.
Deshalb stelle ich keinen reparierten K7222 und K7221 Monitor mit einen PC1715 ein, der BIC hat an der DSE das gleiche Signal für den K7222 mit 100% TV Norm, da stimmen die Bilder am Fernseher und am Monitor überein.

Rolf
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
16.11.2023, 12:49 Uhr
Heiko_P



Der CRT-Controller beim PC1715 muss nach dem Einschalten initialisiert werden, das passiert nach dem Laden des BIOS (deshalb bringt der 1715 nach dem Einschalten erst einmal kein Bild, sondern erst wenn das Betriebssystem erfolgreich geladen wurde). Bei der Initialisierung müssen u.a. Zeilen- und Bildfrequenz eingestellt werden. Hier gibt es zwischen den verschiedenen CP/M-Versionen Abweichungen, die sich beim Original-Bildschirm als Lageabweichung bemerkbar machen und am Monitor korrigiert werden können (oder man patcht die Werte im BIOS, sofern man die Stellen weiß ...). Die Einstellmöglichkeiten des CRT-Controllers bei der Initialisierung sind allerdings begrenzt, deshalb ist die Nutzung handelsüblicher VGA-Konverter nicht problemlos möglich.

Gruß
Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
18.11.2023, 19:48 Uhr
Ordoban



Sagt mal, wie genau waren denn die Schwingquarze in den DDR-Rechnern? Und wie genau sind die heute noch? Driften die von der Frequenz her weg, wenn die altern?
Der 16MHz-Quarz in der A7100-Grafikkarte ist soweit daneben, dass sich am Ende jeder Bild-Zeile die Pixel-Position verschiebt. Das liegt vermutlich nicht am Schwingquarz des ESP32, denn ich hatte das Problem auch schon bei der Software für den Logikanalyzer.
Ich habe das für mich im ESP32 per Software gelöst, aber das ist keine universelle Lösung für alle.
Gibt es eine Möglichkeit die Frequenz von Schwingquarzen zu justieren? Ich hätte nämlich die Möglichkeit in dem ESP32 die Frequenzen zu messen, und den Korrekturfaktor automatisch anzupassen. Um das ordentlich testen zu können, muss ich aber Quarze mit verschiedenen Abweichungen simulieren können.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
19.11.2023, 10:29 Uhr
RP



https://www.mikrocontroller.net/topic/520751

mal nachlesen, die Quarze waren und sind schon recht genau.

In den ersten IBM XT Rechnern und auf einigen CGA Karden sind Keramische Trimmer eingebaut um die Frequenz zu korrigieren.

Rolf
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
19.11.2023, 17:30 Uhr
Ordoban



Ahja. Danke, genau das hab ich gesucht
Also ist die Genauigkeit von einem Schwingquarz nicht nur vom Quarz abhängig, sondern auch von der Oszillatorschaltung. Von der einfachen Schaltung mit 74S04-Gattern würde ich nicht erwarten, dass die allzu genau ist. Für analoge Monitore war das auch kein Problem.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
23.11.2023, 22:21 Uhr
Ordoban



So, der feste Aufbau ist fertig und funktioniert. Eingebaut in einen Phönix Schraubklemmen-Stecker.
In dem Ding ist aber so extrem wenig Platz, dass ich die VGA-Beschaltung von Rot und Blau weggelassen habe. Grün sieht eh stilechter aus



Ich werde demnächst noch Schaltplan und Firmware-Quelltext auf Github packen.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
24.11.2023, 09:04 Uhr
MarioG77

Avatar von MarioG77

Wie hast du die R (u.a.) ohne Kurzschluss auf dem ESP32 Gehäusedeckel hinbekommen?
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
24.11.2023, 16:44 Uhr
Ordoban



Die 3 sichtbaren Widerstände sind mit den Drähten an den Kontaktflächen des ESP32 und alle zusammen an dem Festspannungsregler gelötet. Die liegen also nicht auf dem ESP auf, sondern haben einen halben Millimeter Abstand. Das ganze ohne Kurzschluss zu löten war schon eine Herausforderung. Ich habe dafür auch ausnahmsweise mal bleihaltiges Lötzinn verwendet. Mit bleifreiem hätte das vermutlich nicht geklappt.

Ich bin noch am überlegen, ob ich das noch als Leiterplatte planen und fertigen lassen sollte. Hättet ihr Bedarf für solche Adapter? Wenn ja: was würdet ihr bevorzugen: SMD oder klassisch?
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
24.11.2023, 17:44 Uhr
Heiko_P




Zitat:
Ordoban schrieb
Ich bin noch am überlegen, ob ich das noch als Leiterplatte planen und fertigen lassen sollte. Hättet ihr Bedarf für solche Adapter? Wenn ja: was würdet ihr bevorzugen: SMD oder klassisch?



Mich würde zuerst einmal die Schaltung und Software für den ESP32 interessieren, vielleicht lässt sich daraus auch etwas für den PC1715 "zaubern". Falls das klappen sollte wäre der Bedarf an Platinen sicher deutlich größer.

Gruß
Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
24.11.2023, 18:02 Uhr
MarioG77

Avatar von MarioG77

Für meine 2 1834 mit der Mono Karte könnte ich mir das vorstellen - wenn das da geht (Grün - klingt danach... )

Aber ja, wenn man damit was für die 1715 machen könnte, wäre ich so oder so auf jeden Fall dabei.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
24.11.2023, 18:33 Uhr
ambrosius



Ich wäre auch mit 2 Stck dabei.
--
viele Grüße
Holger
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
021
24.11.2023, 18:40 Uhr
Ordoban



Die Schaltung ist simpel.


Das Programm ansich auch: https://imoriath.com/downloads/privat/a7100/VGA_Adapter_main.c
Der Sync-Impuls löst im ESP32 einen Interrupt aus, der startet dann das Einlesen der Farb-Signale und des Sync-Signals an Digital-Ports über die SPI-Schnittstelle und DMA-Kontroller. Die SPI-Übertragung geht nur als Block. Der Block darf erst enden, wenn schon der nächste Sync-Impuls angefangen hat. Wir brauchen den aufgezeichneten Sync-Impuls zum Ausrichten des Pixel-Anfangs. Während schon die nächste Zeile in den nächsten DMA-Puffer gesaugt wird kopiert die CPU die Pixel in den VGA-Speicher.
--
Gruß
Stefan

Dieser Beitrag wurde am 24.11.2023 um 21:43 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
022
24.11.2023, 19:25 Uhr
MarioG77

Avatar von MarioG77

Klingt prinzipiell, als ob das machbar sein sollte... Sage ich so laienhaft...
Nur Mal kurz den Code überfliegend und über die 1715 Signale nicht 100% Bescheid wissend...

Prinzipiell hatte ich so was auch im Kopf.
Ich hatte aber eher an den RP2040 gedacht, weil man dessen Ports noch Hardwarenäher programmieren kann. Aber ein 1715 sollte ja nicht mehr Bild-Informationen liefern, als ein 7100.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
023
24.11.2023, 19:35 Uhr
Ordoban



Die wichtigste Frage wäre: sind die Farb-Signale beim 1715 analog oder digital?
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
024
24.11.2023, 19:45 Uhr
MarioG77

Avatar von MarioG77

Farbe? Nix Farbe.
Da ich im Servicehandbuch gerade keine direkte Aussage zur Bildinformation gefunden habe, habe ich im Schaltplan nachgesehen. Das Video Signal kommt aus einem NAND Gatter.
Ein zweites NAND liefert noch ein Signal für Intensität.

Ich wollte es vorher nicht sagen, aber dachte mir das schon...

Wir reden also über digitale Signale. Das dürfte jetzt nicht gerade schlecht sein...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
025
24.11.2023, 19:54 Uhr
Ordoban



Jap. Analoge Signale wieder digital einzulesen wird mit mehreren MHz schwer.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
026
24.11.2023, 20:57 Uhr
Rolly2



Beim 1715 sind die Signale "Video, Sync und Intensität" alle digital. Ausgegeben über 7437. Mit Farbe ist da nichts.
Habe im 1715 die VGA-Karte von Heiko drinnen, funzt sehr gut.
VG, Andreas

Dieser Beitrag wurde am 24.11.2023 um 21:10 Uhr von Rolly2 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
027
24.11.2023, 21:37 Uhr
schlaub_01



Ich hatte das vor vielen Jahren mal mit einem Spartan3 Demoboard ausprobiert am PC1715, aber das Problem war da, daß man eine sehr genaue Synchronisierung braucht, damit die Pixel nicht flattern. Ich hatte mich auf das Sync Signal mit einem Pixelzähler synchronisiert, aber auf dem Demoboard war auch kein für den Pixeltakt idealer Taktgenerator. Weiterhin habe ich auch Experimente mit einer 3-fach Überabtastung gemacht, bei der mindestens 2 Bits 1 sein müssen, damit das Pixel als gesetzt gilt, aber das brauchte auch keine wirkliche Verbesserung. Hatte das dann aber nicht weiter verfolgt. Es gab in der Richtung im Netz auch viele Experimente, z.B. C64, aber die waren auch nicht gerade wirklich perfekt. Das Bild vom ESP32 sieht aber auf den ersten Blick relativ sauber aus - ist die Frage, wie das dort gemacht wird. Auf jeden Fall hätte eine externe Lösung den Charme, daß man da an verschiedene Rechner einfach anpassen kann.
Aber Andreas hat da schon recht - eine digitale Lösung, quasi mit eigener Bildspeicherkarte ist immer am saubersten.

Viele Grüße,
Sven.

Dieser Beitrag wurde am 24.11.2023 um 21:40 Uhr von schlaub_01 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
028
24.11.2023, 22:09 Uhr
Ordoban



Das mit dem Pixelflattern hatte ich bei den ersten Versuchen auch. Zuerst hatte ich mit 16MHz abgetastet, exakt die selbe Frequenz wie der Pixeltakt im A7100. Das Problem ist, dass der Taktgeber der Abtastung mit dem Taktgeber der Grafikkarte nicht phasen-synchron läuft. Es kann immer mal passiern, dass die Abtastung genau zwischen 2 Pixeln passiert. Dann wird das Pixel mal hier und mal da erkannt.

Ich hab das so gelöst, dass ich mit der maximal möglichen Frequenz abtaste: mit 80MHz. Ich sample auch das Sync-Signal mit, und suche dann in den Samples die fallende Flanke des Sync (die genaugenommen schon zur nächsten Zeile gehört), und rechne dann bis zum ersten Pixel zurück. Durch die 5-fache übersamplung kann ich genau die Pixel in der Mitte treffen, und bekomme ein stabiles Bild - zumindest theoretisch. Wie ich schon geschrieben habe scheint die Pixel-Frequenz vom A7100 leicht daneben zu liegen. Das habe ich gelöst, indem ich 2 Samples nebeneinander Oder-verknüpfe. Es sind auch noch andere Arten der Frequenzanpassung möglich.

Im Prinzip müsste das System auch für den 1715 funktionieren, man muss "nur" die passenden Parameter rausfinden. Und irgendeine Art von "Autodetect" für die verschiedenen Parametersätze von den verschiedenen CP/M-Versionen schreiben.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
029
24.11.2023, 23:05 Uhr
schlaub_01



Der ESP32 ist natürlich gegenüber einem FPGA auch preislich in einer ganz anderen Liga und der Aufwand an der Stromversorgung ist auch sehr minimal. Hat schon seinen Charme. Die 1715 Parameter könnte man ja anhand des Sync Timings herausfinden und so viele Modi hat der 8275 nicht. Wäre alles sicher irgendwie machbar. Man müsste das nur alle paar Bilder machen, daß man beim Wechseln des Modus das auch irgendwie erkennt. Naja, wenn mal viel Zeit ist, kann ich mir das mal anschauen. Du hast ja die Quellen für die Bilderkennung schon in [21] abgelegt.

Viele Grüße,
Sven.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
030
25.11.2023, 13:30 Uhr
MarioG77

Avatar von MarioG77

Mal schauen, wie schnell ich mit dem D008 voran komme.
Über die Feiertage habe ich 2 Wochen frei, vermutlich überkommt mich das bis dahin...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
031
26.11.2023, 22:28 Uhr
MarioG77

Avatar von MarioG77

Da ich nach Urlaub und Krankheit jetzt doch Mal wieder im Büro schauen muss, ob mein Arbeitsplatz noch da ist, habe ich die Tage keinen Zugriff auf Werkstatt.
Also habe ich mir jetzt die Bildparameter Mal angeschaut.

Leider habe ich zum A7100 kaum Infos gefunden. Wenn ich mir die Daten vom Monitor anschaue, haben wir es da mit 22KHz Horizontalfrequenz zu tun.

Beim 1715 sind 2 verschiedene Monitore möglich. Wenn ich vom K7222.25 ausgehe, haben wir folgendes:
16KHz
Auflösung 80x24 (8x12 Pixel pro Zeichen): 640 x 288 (Plus ein paar weitere für Sync)
Punktfrequenz: 13,8MHz
Gesamtzeit für 1 Bild mit Strahlrücklauf (26 Zeilen): 19,5ms
Bildwiederholfrequenz: 51 Hz

Die Werte sind abweichend zum K7221.25 - vielleicht rühren einige Probleme ja auch daher. Ich finde keine Hardwareseitige Einstellmöglichkeit, also könnte das ja die vorgesehene Einstellung im BIOS sein.

Jedenfalls ist der Aufwand einiges niedriger, als beim A7100.
Man müsste in der Interruptroutine jetzt wohl nur die Anzahl der Daten im DMA Transfer entsprechend reduzieren. Wie genau habe ich aber noch nicht raus.

Die Routine, die die Daten dann für VGA aufbereitet muss dementsprechend auch für die Auflösung angepasst werden. Sollte kein Hexenwerk sein...
Schwieriger ist eher, einen passenden ESP32-S3 zu finden. eBay findet in DE nur die Developer Boards. Muss wohl bei mouser bestellen... Bei dem Stückpreis könnte/sollte man eine Sammelbestellung machen.
Welchen ESP32 Typ hast du da genau genommen Stefan? Ich vermute, mit 8MB RAM sollte das auskommen, oder?
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
032
26.11.2023, 22:29 Uhr
MarioG77

Avatar von MarioG77

Gerade habe ich das hier im CPA Handbuch gefunden:

Zitat:

Die Anpassung des Bildschirmformats erfolgt beim Kaltstartvor-
gang automatisch. Beim Bürocomputer wird dabei Bit 6 vom Port
0Ah abgefragt (16*64, wenn =1; 24*80, wenn =0). Da am PC1715
eine solche Hardware-Abfrage nicht möglich ist, erfolgt die
Abfrage folgendermaßen:
Bei der Systemgenerierung wird ein Bildschirmformat als
Anfangszustand vorgegeben (i.a. 24*80). Dies wird für die
Kaltstart-Meldungen zunächst angenommen. Beginnt der Nutzer
die Uhrzeiteingabe beim Kaltstart nicht innerhalb einer maxi-
malen Zeitspanne von 20 s, so wird angenommen, daß der Bild-
schirm nicht lesbar ist und auf das andere Format umgeschal-
tet. Der gleiche Effekt ist durch Betätigen von ESC statt
einer Zifferntaste erreichbar. Dies wiederholt sich solange,
bis die Uhrzeit eingegeben ist.
Ein falsches Bildschirmformat führt am PC1715 hardwarebedingt
zu einem nichtsynchronisiertem Monitorbild, beim richtigen
Format wird es (wieder) stabil.



Ist das nur bei CPA so?
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
033
26.11.2023, 22:55 Uhr
Rüdiger
Administrator



Zitat:
MarioG77 schrieb
Ist das nur bei CPA so?



Bei SCP wird das Bildschirmformat bei der Generierung festgelegt.
--
Kernel panic: Out of swap space.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
034
27.11.2023, 08:09 Uhr
MarioG77

Avatar von MarioG77

ok Danke...

Den ESP32-S3 gibt es auch bei tme.eu, wenn man sonst nichts von mouser braucht, muss man nicht erst 15 Stück bestellen...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
035
27.11.2023, 16:59 Uhr
Ordoban




Zitat:

Welchen ESP32 Typ hast du da genau genommen Stefan? Ich vermute, mit 8MB RAM sollte das auskommen, oder?


Ja, der VGA-Konverter kommt sogar mit dem internen RAM aus. Ich hab mir aber auch die 8MB-Variante (ESP32-S3-WROOM-1-N4R8CT-ND) geholt, um für spätere Projekte gerüstet zu sein. Es sollten auch Module mit weniger IO-Pins gehen. Für reinen Grün-Betrieb reichen 8 IO's. Es muss nur einer aus der S3-Serie sein. Bei S2 fehlt der TFT-Kontroller (für VGA), die C und H-Serien sind warscheinlich zu langsam.


Zitat:

Schwieriger ist eher, einen passenden ESP32-S3 zu finden. eBay findet in DE nur die Developer Boards. Muss wohl bei mouser bestellen... Bei dem Stückpreis könnte/sollte man eine Sammelbestellung machen.


Die gibts mittlerweile bei Reichelt. Es spricht auch nichts gegen so ein Entwickler-Board (außer dem Preis...). Da muss man sich wenigstens nicht mit den irre kleinen Anschlusspads rumärgern.


Zitat:

Leider habe ich zum A7100 kaum Infos gefunden. Wenn ich mir die Daten vom Monitor anschaue, haben wir es da mit 22KHz Horizontalfrequenz zu tun.


Beim A7100 sind das 21.7KHz, 50.3Hz, 16MHz und 640x400. Siehe https://www.tiffe.de/robotron/MMS16/Doku/A7150/ABG-K7072.pdf Seiten 4 und 14.


Zitat:

Jedenfalls ist der Aufwand einiges niedriger, als beim A7100.
...
Die Routine, die die Daten dann für VGA aufbereitet muss dementsprechend auch für die Auflösung angepasst werden. Sollte kein Hexenwerk sein...


Durch die krumme Pixelfrequenz wirst du mehr Aufwand in die VGA-Auswertung stecken müssen. Die Abarbeitung dieser Auswertung ist absolut zeitkritisch. Zu lange an einer Zeile herumzurechnen bedeutet von der nächsten Zeile überholt zu werden.


Zitat:

Man müsste in der Interruptroutine jetzt wohl nur die Anzahl der Daten im DMA Transfer entsprechend reduzieren. Wie genau habe ich aber noch nicht raus.


Zeile 106

Quellcode:

        .rxlength = 28720,                     // nur 28k Samples einlesen


Durch die längere Zeilen-Zeit wirst du die Anzahl der Samples eher erhöhen müssen. Die maximale Anzahl Samples für einen DMA-Transfer sind 4092 Bytes bzw. 32736 Bits. In meinem Programm wird das nur einmal beim Booten eingestellt. Wenn du das im laufenden Betrieb (z.B. in der Interruptroutine) verändern möchtest, dann am besten direkt in das entsprechende SPI-Register schreiben.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
036
27.11.2023, 22:03 Uhr
MarioG77

Avatar von MarioG77

ok, ich sehe schon, das wird kein Kinderspiel...

Das beste wäre, ich würde einfach mal einen ESP holen und etwas damit herum probieren.

Danke für die Infos so weit. Bestellung bei reichelt ist schon Mal raus.
Komme in den nächsten 2 Wochen leider nicht dazu, wird also ein Feiertagsprojekt...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
037
06.12.2023, 18:26 Uhr
MarioG77

Avatar von MarioG77

Endlich kam die Reichelt Bestellung an. Allerdings auch alle anderen (fehlende Teile für D008, tiny AC1...).
Denke, ich werde mich Hardwaremäßig schon Mal nebenbei an den Aufbau machen. Das müsste ja schnell gehen.
Die Software wird wohl das kniffligere sein...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
038
07.12.2023, 18:31 Uhr
Ordoban



Na dann mal ein paar Tips von mir dazu:
In den meisten Anleitungen wird das Programmieren der ESP32 mit Zusatz USB-UART Chip beschrieben. Den brauchen wir nicht, der S3 kann direkt über die eigene USB-Schnittstelle programmiert werden.
Spiel ruhig mit dem ESP32 rum. Lass mal ne LED blinken.

Für das VGA-Projekt:
In den Projekteinstellungen
a. Component config-->ESP System settings-->CPU Frequency--> auf 240MHz stellen (default 160 ist zu langsam)
b. Component config-->ESP System settings-->Also watch CPU1 interrupt-->Entfernen
c. Component config-->ESP System settings-->Enable Task Watchdog timer-->Entfernen (ansonsten resettet der ESP dauernd, weil wir eine Endlosschleife drin haben)
d. Compiler Options-->Optimization Level-->auf "Optimize for performance" stellen (sonst zu langsam)

Den VGA-Teil ausprobieren, z.b. Zeilen 227-230 so machen:

Quellcode:

for (int b=0;b<640*400;b++)  // VGA-Puffer leeren
{
    VGA_BUF[b]=(b & 255);
}


Schön bunt...

Die 3 Signale von der 1715-Grafikkarte und die 2 Debug-Pins vom ESP32 (GPIO10 und GPIO11) an den Logikanalyzer anschließen.
Die 3 Signale vom 1715 sehen eventuell so aus:


HSYNC sind kurze LOW-Impulse, VSYNC ist ein längerer LOW-Impuls, durch kurze HIGH Impulse unterbrochen.
Dazu die Reaktion des ESP32 auf GPIO10 ansehen. Der sollte nach VSYNC HIGH bleiben, und ab dem 28. HSYNC auf LOW gehen, wenn die SPI-Schnittstelle Daten einliest. (Der Pin ist genau genommen das Chipselect vom SPI)

Die Länge des Einlesens darf nicht zu kurz sein - der nächste HSYNC muss mit drauf sein. Es darf auch nicht zu lang sein, das Einlesen muss fertig sein, bevor das nächste gestartet werden kann.
Die Länge kannst du in Zeile 106 einstellen.
Ideal wäre ungefär so:

Als nächstes müsstest du herausfinden an welcher Sample-Position meistens der HSYNC beginnt - z.B. so:
Zeile 245+

Quellcode:

// Wir suchen den nächsten BSYNC-Impuls
for (int a=0; a<b; a++)
{
    if ((buf[a] & 0x04)!=0x04)
    {
        sync = a;  // gefunden!
        break;
    }
}
printf("Sync=%d\n",sync);
ABG_DMALIST[0] = 0x80ffffff;
ABG_DMALIST[3] = 0x80ffffff;
continue;


Das dürfte im Terminal ein paar Zahlen ausgeben. Von der, die du am häufigsten siehst, ziehst du ein paar ab (vlt 20?)und trägst die unter BSYNC_SUCHE_START in Zeile 35 ein.
Beachte, dass printf() relativ lange dauert, und es deshalb zum Stau im DMA-Puffer kommt. Irgendwie kommt dadurch die DMA-Engine zum Stop.

Jetzt wäre die Anpassung auf die Pixelfrequenz vom 1715 dran. Mein Vorschlag wäre Zeile 261+:

Quellcode:

for (int i=0;i<128;i++) // wir machen 5 Pixel pro Durchlauf, also 128*5 = 640 Pixel
{
    *vgapos = COLORS[((*bufpos)|(*(bufpos+1))) & 3];
    vgapos++;
    bufpos+=6;
    *vgapos = COLORS[((*bufpos)|(*(bufpos+1))) & 3];
    vgapos++;
    bufpos+=6;
    *vgapos = COLORS[((*bufpos)|(*(bufpos+1))) & 3];
    vgapos++;
    bufpos+=6;
    *vgapos = COLORS[((*bufpos)|(*(bufpos+1))) & 3];
    vgapos++;
    bufpos+=6;
    *vgapos = COLORS[((*bufpos)|(*(bufpos+1))) & 3];
    vgapos++;
    bufpos+=5;  // <--- die 5 statt 6 ist Absicht!
}


Dadurch hast du eine Austastfrequenz von 13,7931MHz (80MHz : 5 4/5). Ich hoffe mal, dass das die Pixel trifft.
Jetzt noch die Bildgrenzen ermitteln und einstellen:
Das erste Pixel pro Zeile wird mit BSYNC_PIXEL_ABSTAND (Zeile 34) eingestellt, herausfinden durch probieren.
Die erste sichtbare Bildschirmzeile in Programmzeile 53. Die sollte in der Doku vom 1715 stehen.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
039
07.12.2023, 20:01 Uhr
MarioG77

Avatar von MarioG77

ok, wow...
Besten Dank.

Vermutlich werde ich mir auf die schnelle was auf dem Breadboard zusammen stecken. Dann müsste ich schnell dabei sein.

Hoffentlich wird es nicht kälter. Das würde mich frustrieren, wenn mich die Temperatur jetzt abhält...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
040
08.12.2023, 16:24 Uhr
ambrosius



Hallo Mario,

da solltest Du vielleicht lieber über 'frostieren' sprechen.
--
viele Grüße
Holger
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
041
09.12.2023, 07:27 Uhr
Ordoban



Werkstatt zu kalt? Nimm halt ein Schmiedefeuer statt Lötkolben
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
042
09.12.2023, 18:09 Uhr
MarioG77

Avatar von MarioG77

Schmiedefeuer? Rauchig, könnte mit SMD aber funktionieren...
Aber dem Wetter nach wird frostieren kein akutes Thema sein.

Ich hab jetzt endlich VSCode und ESP-IDF so weit hingebogen, dass er den (original) Code kompiliert.

Sieht aber so aus, dass ich heute nicht mehr dazukomme, die Schaltung aufzubauen. Morgen steht schon wieder Weihnachtsfeier an. Da komme ich auch nicht weiter...
Tag bräuchte mehr Stunden.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
043
09.12.2023, 21:33 Uhr
felge1966



Wenn dir die 24 Stunden nicht reichen, nimm doch die Nacht dazu...

Gruß Jörg
--
http://felgentreu.spdns.org/bilder/jacob120.gif
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
044
15.12.2023, 19:31 Uhr
MarioG77

Avatar von MarioG77

Ein paar Drähte an den WROOM dran zu löten habe ich echt unterschätzt.
Die Pads sind eng beieinander, wenn man einen dickeren Draht für das Steckbrett braucht.

Braucht doch etwas länger Zeit, wenn das Provisorium "ordentlich" machen will.
Zum Glück habe ich keine Eile.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
045
15.12.2023, 20:00 Uhr
Ordoban



Ich hab das so gemacht, dass ich ein langes Stück blanken Draht um den WROOM gewickelt hab, immer genau mittig auf die Kerbe von den Anschlusspads. Dann alle Pads gleichzeitig verlötet. Wenn sich Brücken bilden, dann kann man die in Richtung Oberseite wegstreichen. Dann die Drähte bündig an der WROOM-Oberseite mit einem spitzen Elektronik-Seitenscheider aufscheiden - fertig.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
046
16.12.2023, 11:32 Uhr
MarioG77

Avatar von MarioG77

Ja, das ist smart...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
047
16.12.2023, 19:52 Uhr
MarioG77

Avatar von MarioG77

ok, Aufgebaut ist es.
Wenn man die Drähte nicht versucht flach dran zu löten, geht das deutlich besser.



Ich musste GPIO0 erst auf Low ziehen, damit ich flashen konnte. Jungfräulich war er nur am resetten.
Danach lief es auch mit GPIO auf H Pegel.

Morgen dann ein paar Tests.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
048
17.12.2023, 17:29 Uhr
MarioG77

Avatar von MarioG77

Hmmm.

Der crasht in der Schleife von Zeile 224-236 permanent.
Auf VGA erhalte ich im Moment auch noch kein Signal - der Monitor bleibt aktuell noch bei "No signal".

---- Eine Kaffeepause später ----

...Irgendwie hat das SDK seine Settings nicht mehr gehabt....

Jetzt crasht er nicht mehr. Bringt aber auch keine Sync Ausgabe.
Ebenfalls bleibt GPIO10 komplett ohne Lebenszeichen. GPIO11 tut aber was.

Das BSYNC kommt hingegen im LA. Ich muss alles nochmal genau prüfen. Nicht, dass ich irgendwas falsch angeschlossen habe oder am Steckbrett was nicht passt.

Für heute und die nächsten Tage war es das aber. Komme erst wieder Ende der Woche in die Werkstatt und dann geht es zuerst am D008 weiter.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
049
19.12.2023, 19:05 Uhr
MarioG77

Avatar von MarioG77

Wenn ich mir den Code so offline anschaue, sieht es doch so aus, als ob der zweite Core sich noch langweilt, oder?

Sollten also noch Leistungsreserven (vermutlich mit Einschränkungen) vorhanden sein.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
050
19.12.2023, 22:41 Uhr
Ordoban



Jap. Core #0 ist normalerweise für "Systemfunktionen" wie WLAN reserviert, während der Anwender-Code auf Core #1 läuft. Man kann aber auch Threads auf Core #0 starten. Empfohlen wird das nicht. Aber seid wann lasse ich mir von einem Chip-Hersteller vorschreiben, wie ich sein Produkt zu missbrauchen habe?

Die Idee das Bild nicht auf VGA, sondern über WLAN und HTTP oder VNC zu streamen hatte ich auch schon...
Immer eins nach dem anderen

Jetzt schaffe ich erst einmal einen bequemeren Weg für den Datenaustausch mit dem A7100 (Paralellportkabel klappt schon zu 50%), dann krigt das Ding einen IDE-Kontroller rein getackert, und dann... schau mer mal.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
051
20.12.2023, 17:14 Uhr
Ordoban



Sag mal, wie hast du denn die Umwandlung von 5V TTL auf 3,3V gemacht?
In #26 wird gesagt, dass die Signale aus 7437 kommen - das sind normale 5V TTL-Ausgänge. Bei A7100 sind das Open-Kollektor Ausgänge, da reicht es den Pullup-Widerstand auf 3,3V statt auf 5V zu machen. Am 1715 wird das nicht funktionieren, damit grillst du dir den ESP32.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
052
20.12.2023, 17:27 Uhr
Enrico
Default Group and Edit



Zitat:
Ordoban schrieb

Die Idee das Bild nicht auf VGA, sondern über WLAN und HTTP oder VNC zu streamen hatte ich auch schon...



Du machst mich fertig.

Das wäre genau das richtige für bzw. Vorträge.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
053
20.12.2023, 17:54 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
Sag mal, wie hast du denn die Umwandlung von 5V TTL auf 3,3V gemacht?
In #26 wird gesagt, dass die Signale aus 7437 kommen - das sind normale 5V TTL-Ausgänge. Bei A7100 sind das Open-Kollektor Ausgänge, da reicht es den Pullup-Widerstand auf 3,3V statt auf 5V zu machen. Am 1715 wird das nicht funktionieren, damit grillst du dir den ESP32.



Oh verflucht. Das kommt davon, wenn man es schnell aufbauen will. Daran hatte ich überhaupt nicht gedacht.
Vielleicht ist das der Grund, warum BSYNC nicht erkannt wird. Vielleicht ist der Eingang schon gegrillt.
Muss ich mir nochmal anschauen...

Das mit dem Streaming... Ja, in die Richtung ich auch Gedanken...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
054
20.12.2023, 18:02 Uhr
Ordoban



Ich hatte eine Diskusion gelesen, ob die ESP32-Eingänge 5V tollerant sind. Da war man sich nicht sicher. Die halten das wohl eine Weile aus, sind aber nicht dafür spezifiziert, haben Schutzdioden zum 3,3V-Potential.
Im Zweifelsfall kannst du auch auf andere Eingänge switchen. Die sind beim ESP32 recht universell nutzbar.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
055
20.12.2023, 18:10 Uhr
PIC18F2550

Avatar von PIC18F2550

Hallo Ordoban,
deine VGA RGB Pegel sind nicht Norm gerecht.
Ich musste bei meinem VGA Modul noch 1k Wiederstände gegen Masse löten.
Die beiden Anderen wurden in 470 und 240 geändert.

Das brachte auf allen Testmonitore die besten Farbwerte.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen

Dieser Beitrag wurde am 20.12.2023 um 18:17 Uhr von PIC18F2550 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
056
20.12.2023, 18:16 Uhr
Ordoban



Die Farb-Signale? Ich war davon ausgegangen, dass die im Monitor mit 75 Ohm terminiert sind.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
057
20.12.2023, 18:19 Uhr
PIC18F2550

Avatar von PIC18F2550

Das dachte ich bei meinem M105 Projekt auch.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
058
20.12.2023, 18:26 Uhr
Ordoban



Wie könnte man das besser machen? Meine Monitore haben definitiv Abschlusswiderstände drin. Wenn ich noch extra welche in die Schaltung setze, dann wird dann Bild viel dunkler. Einen RGB-Signal-Verstärker dran zu setzen bläht die Schaltung ganz schön auf.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
059
20.12.2023, 18:30 Uhr
PIC18F2550

Avatar von PIC18F2550

Das waren damals die Unterschiede.



--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen

Dieser Beitrag wurde am 20.12.2023 um 18:35 Uhr von PIC18F2550 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
060
20.12.2023, 18:37 Uhr
PIC18F2550

Avatar von PIC18F2550

Hast du einen CRT oder LCD?
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
061
20.12.2023, 18:46 Uhr
Ordoban



Das sieht etwas übersteuert aus. Ja, da sind extra Widerstände sinnvoll.

Das hier ist ein Dell U2412M LCD. Nichts brandneues, aber auch nix von "damals".
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
062
20.12.2023, 19:48 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
Ich hatte eine Diskusion gelesen, ob die ESP32-Eingänge 5V tollerant sind. Da war man sich nicht sicher. Die halten das wohl eine Weile aus, sind aber nicht dafür spezifiziert, haben Schutzdioden zum 3,3V-Potential.



Stimmt, jetzt wo du es sagst, erinnere ich mich auch, was in der Richtung gelesen zu haben.


Zitat:

Im Zweifelsfall kannst du auch auf andere Eingänge switchen. Die sind beim ESP32 recht universell nutzbar.


Im Zweifel wäre das mein Plan.
Aber bisher hatte ich so auch noch nichts gegrillt.
Ich gehe erst Mal davon aus, dass mein Problem woanders liegt.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
063
20.12.2023, 19:50 Uhr
Bert




Zitat:
Ordoban schrieb
Die Idee das Bild nicht auf VGA, sondern über WLAN und HTTP oder VNC zu streamen hatte ich auch schon...


Du muß man doch sicher mit Kompression arbeiten, oder?
Ich hab mal VGA-Signale digital und 'raw' in UDP-Pakete gesteckt und am anderen Ende vom Netzwerk angezeigt. Das hat irgendwo um die 150 MBit/s an Bandbreite verschlungen...

Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
064
20.12.2023, 19:54 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Bert schrieb
Du muß man doch sicher mit Kompression arbeiten, oder?
Ich hab mal VGA-Signale digital und 'raw' in UDP-Pakete gesteckt und am anderen Ende vom Netzwerk angezeigt. Das hat irgendwo um die 150 MBit/s an Bandbreite verschlungen...


Smarter...

Da sollte man nur Änderungen drüber senden und sicher nicht mit der Bildwiederholfrequenz des Monitors. So schnell sind die Rechner dann auch nicht...

Edit: das dürfte enorm an Rechenleistung sparen, die in dem Maße dafür nicht da sein wird.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 20.12.2023 um 19:55 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
065
20.12.2023, 20:29 Uhr
Ordoban



Ja, und du musst auch nicht mit TrueColor arbeiten. 2 Bit "Farben" reichen aus.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
066
24.12.2023, 15:38 Uhr
Enrico
Default Group and Edit



Zitat:
PIC18F2550 schrieb
Das dachte ich bei meinem M105 Projekt auch.


Was ist den daraus geworden?
Man davon ja gar nichts mehr gehört.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
067
24.12.2023, 15:40 Uhr
Enrico
Default Group and Edit



Zitat:
Ordoban schrieb
Die Farb-Signale? Ich war davon ausgegangen, dass die im Monitor mit 75 Ohm terminiert sind.


Im Commodore 1960 (Röhre) sind drin.
Genauer 120R || 200R Trimmer.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
068
28.12.2023, 16:18 Uhr
MarioG77

Avatar von MarioG77

Gerade sind Pegelwandler von Amazon angekommen.
Ich hoffe, die sind ausreichend. Morgen probiere ich mich mal wieder daran.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
069
29.12.2023, 12:26 Uhr
MarioG77

Avatar von MarioG77

Rein vom Prinzip müsste aber auch ein VGA Signal zum Monitor gehen, auch wenn kein Eingangssignal vorliegt. Oder sehe ich das falsch?

D.h. der Monitor sollte im Normalfall, wenn der ESP Spannung bekommt, doch auch einen Sync haben, da das - soweit ich es erkenne - ja von der ESP Hardware gesteuert wird und nicht vom Code.
Das passierte beir mir noch nicht.

Edit: Schaltung gerade mit dem Oszi geprüft.
HSYNC 60Hz und VSYNC 37kHz kommen aber raus...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 29.12.2023 um 13:09 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
070
29.12.2023, 16:05 Uhr
Enrico
Default Group and Edit


Müssten das nicht 50 Hz zu 31kHz sein?
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
071
29.12.2023, 16:13 Uhr
MarioG77

Avatar von MarioG77

800x600x60Hz
So kommt das, wie im Code vorgesehen, raus.
Die Werte passen zu der Auflösung.

Vielleicht fehlt im Stecker ja nur eine Masse.... War noch dabei zu prüfen.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
072
29.12.2023, 16:15 Uhr
Ordoban



37kHz ist schon korrekt, es sollte dieses Timing sein: http://tinyvga.com/vga-timing/800x600@60Hz
Bei allen anderen Auflösungen wollte der ESP32 ums verrecken kein stabiles Bild liefern. Von den 800x600 werden nur 640x400 genutzt.
Der Monitor sollte zumindest aus dem Energieparmodus raus kommen. Um was anderes als Schwarz zu sehen dann z.B. das hier:

Zitat:
Ich schrieb
Den VGA-Teil ausprobieren, z.b. Zeilen 227-230 so machen:

Quellcode:

for (int b=0;b<640*400;b++)  // VGA-Puffer leeren
{
    VGA_BUF[b]=(b & 255);
}


Schön bunt...



Edit:
Eventuell möchte dein Monitor 5V Sync Signale haben statt 3,3V. Vielleicht zum Testen irgendein 74er HCT Gatter als Verstärker dran pappen. Ich hatte das auch erst, um das als Fehlerursache auszuschließen. Am Ende hat sich herausgestellt, dass der Moni auch mit 3,3V klar kommt.
--
Gruß
Stefan

Dieser Beitrag wurde am 29.12.2023 um 16:22 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
073
29.12.2023, 16:59 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
37kHz ist schon korrekt, es sollte dieses Timing sein: http://tinyvga.com/vga-timing/800x600@60Hz
Bei allen anderen Auflösungen wollte der ESP32 ums verrecken kein stabiles Bild liefern. Von den 800x600 werden nur 640x400 genutzt.
Der Monitor sollte zumindest aus dem Energieparmodus raus kommen.


Genau das hatte ich eigentlich auch vermutet.


Zitat:

Um was anderes als Schwarz zu sehen dann z.B. das hier:

Zitat:
Ich schrieb
Den VGA-Teil ausprobieren, z.b. Zeilen 227-230 so machen:

Quellcode:

for (int b=0;b<640*400;b++)  // VGA-Puffer leeren
{
    VGA_BUF[b]=(b & 255);
}


Schön bunt...




Ja, den Code hatte ich momentan deaktiviert, aber hier wollte ich auch wieder ansetzen. Nicht, dass er ohne Signal nicht aus dem Standby kommt, halte ich aber für unwahrscheinlich.


Zitat:

Edit:
Eventuell möchte dein Monitor 5V Sync Signale haben statt 3,3V. Vielleicht zum Testen irgendein 74er HCT Gatter als Verstärker dran pappen. Ich hatte das auch erst, um das als Fehlerursache auszuschließen. Am Ende hat sich herausgestellt, dass der Moni auch mit 3,3V klar kommt.


Das ist ein guter Gedanke. Ich habe ja genügend Pegelwandler, das sollte kein Problem sein.
Bastel ich mal drauf.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
074
29.12.2023, 18:27 Uhr
MarioG77

Avatar von MarioG77

Irgendwie tut sich da noch nichts.
Mit der Code Änderung sehe ich auf jeden Fall den Pegel bei den RGB Ausgängen.

Vielleicht ist der TXS0108 nicht schnell genug. Im Oszi sieht der Pegel am Ausgang nicht (immer) nach 5V aus. Vielleicht liegt das aber auch am fliegenden Aufbau.

Vielleicht ist ein 74HCT08 oder 74HCT32 doch besser. Probiere ich morgen. Hab ich wegen D008 jedenfalls genug da.

3 verschiedene Monitore zeigen jedenfalls keinen Sync an...

Edit: bin gespannt, was es dann am Ende war...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 29.12.2023 um 18:27 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
075
29.12.2023, 18:37 Uhr
Ordoban



Ähhhm...

Quellcode:

#define PIN_NUM_VGA_VSYNC 17
#define PIN_NUM_VGA_HSYNC 18




*facepalm*

Tausch mal irgendwo HSYNC und VSYNC.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
076
29.12.2023, 18:48 Uhr
MarioG77

Avatar von MarioG77

ok, da habe ich tatsächlich auch schon geschaut, aber ich glaube, ich habe nicht nach Vertauschung geprüft.

Muss ich mir morgen nochmal ansehen.
Ich habe mit Oszi gemessen und die Adern laut Pinout von der VGA Buchse kontrolliert, aber manchmal auch nach deinem Plan...
Wer weiß, wo ich am Ende wirklich war...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
077
30.12.2023, 12:02 Uhr
MarioG77

Avatar von MarioG77

Hatte die SYNC Signale vertauscht.
Ein NEC Multisync 1970NXP bekam zumindest ein Sync (die anderen weiterhin nicht), aber kein Bild. Mir ist aber auch gerade GND an der Buchse abgebrochen.

Starrer Draht ist Mist. Ich muss da doch Mal etwas Litze dran löten. Wahrscheinlich am einfachsten, ein paar Jumper Wires opfern.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
078
30.12.2023, 14:25 Uhr
MarioG77

Avatar von MarioG77

ok, die geopferten Dupont-Kabel waren richtig.
Jetzt hab ich auch ohne Pegelwandler einen Sync am Fujitsu...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
079
30.12.2023, 15:18 Uhr
MarioG77

Avatar von MarioG77

Ach verflucht...
Weiter gesucht im Code/Monitorausgabe und über GPIO41/BSYNC2 stutzig geworden. Dann erst die kleine Brücke zwischen GPIO40/GPIO41 gesehen...


--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
080
30.12.2023, 15:44 Uhr
MarioG77

Avatar von MarioG77

Aber einen Interrupt bekomme ich leider immer noch nicht.
Vielleicht doch nochmal mit dem jungfäulichen Dev Board probieren, was ich mittlerweile da habe.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
081
30.12.2023, 17:29 Uhr
Ordoban



Woran erkennst du dass kein Interrupt ausgelöst wird? An dem Signal an Pin11? Der Pulst erst, wenn die Unterscheidung zwischen langem und kurzem BSYNC richtig funktioniert.
Wie lang ist denn der kurze Impuls (Zeilen-Impuls) beim 1715? Es könnte sein, dass der viel länger als beim A7100 ist, und immer als der lange Seiten-Impuls erkannt wird. Mach doch mal folgendes:


Quellcode:

// Interrupt: wird bei fallender Flanke von BSYN aufgerufen
static void IRAM_ATTR abg_bsync_interrupt(void *args)
{
    VGA_BUF[0]++;
    usleep(1);  // kurz warten. Je nachdem wie der ESP heute drauf ist, ist der kurze BSYN-Impuls noch nicht ganz vorbei
    if (gpio_get_level(PIN_NUM_ABG_BSYNC2)!=0)
    {
        VGA_BUF[10]++;
        // bsync Impuls ist vorbei - war ein VSYNC
        if (ABG_Scan_Line > 28)
        {
            REG_SET_BIT(GDMA_IN_LINK_CH1_REG, GDMA_INLINK_RESTART_CH1);  // das bewirkt, dass der DMA-Kontroller die Address-Tabelle neu einliest
            REG_SET_BIT(SPI_CMD_REG(2), SPI_USR);                        // neuen SPI-Transfer starten - die Parameter sind ja schon drin
        }
        ABG_Scan_Line++;
    }
    else
    {
        VGA_BUF[20]++;
        // bsync Impuls liegt immer noch an - ist ein HSYNC
        ABG_Scan_Line = 0;
    }
}


Damit siehst du 2 oder 3 bunt flackernde Pixel, wenn ein Interrupt ausgelöst wird.

Wenn das kurze BSYNC tatsächlich zu lang sein sollte, dann kannste ja mal das usleep größer machen.
--
Gruß
Stefan

Dieser Beitrag wurde am 30.12.2023 um 17:34 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
082
30.12.2023, 18:16 Uhr
MarioG77

Avatar von MarioG77

Mit dem Dev Board das sauber aufgebaut, aber trotzdem das gleiche Ergebnis.
Der Interrupt wird anscheinend nie aufgerufen, bzw. kein BSYNC erkannt.

Jetzt leuchtet dummerweise die RGB LED vom DevBoard laufend, das nervt, weil die so hell ist...

Also BSYNC wird aktuell noch nicht erkannt.

Ich habe mir jetzt mal die Doku vom 1715 und vom 7150 angeschaut.
Die Sync Impulse unterscheiden sich schon etwas. Ich muss mir den Code jetzt wohl nochmal näher anschauen, ob die Lösung dort liegt.

Im 1715 ist der Sync Impuls jeweils 6µS lang, beim 7150 1µS.
Die Zeilendauer liegt bei 66µS zu 46µS.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
083
30.12.2023, 18:18 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
Woran erkennst du dass kein Interrupt ausgelöst wird? An dem Signal an Pin11? Der Pulst erst, wenn die Unterscheidung zwischen langem und kurzem BSYNC richtig funktioniert.
Wie lang ist denn der kurze Impuls (Zeilen-Impuls) beim 1715? Es könnte sein, dass der viel länger als beim A7100 ist, und immer als der lange Seiten-Impuls erkannt wird. Mach doch mal folgendes:


Quellcode:

// Interrupt: wird bei fallender Flanke von BSYN aufgerufen
static void IRAM_ATTR abg_bsync_interrupt(void *args)
{
    VGA_BUF[0]++;
    usleep(1);  // kurz warten. Je nachdem wie der ESP heute drauf ist, ist der kurze BSYN-Impuls noch nicht ganz vorbei
    if (gpio_get_level(PIN_NUM_ABG_BSYNC2)!=0)
    {
        VGA_BUF[10]++;
        // bsync Impuls ist vorbei - war ein VSYNC
        if (ABG_Scan_Line > 28)
        {
            REG_SET_BIT(GDMA_IN_LINK_CH1_REG, GDMA_INLINK_RESTART_CH1);  // das bewirkt, dass der DMA-Kontroller die Address-Tabelle neu einliest
            REG_SET_BIT(SPI_CMD_REG(2), SPI_USR);                        // neuen SPI-Transfer starten - die Parameter sind ja schon drin
        }
        ABG_Scan_Line++;
    }
    else
    {
        VGA_BUF[20]++;
        // bsync Impuls liegt immer noch an - ist ein HSYNC
        ABG_Scan_Line = 0;
    }
}


Damit siehst du 2 oder 3 bunt flackernde Pixel, wenn ein Interrupt ausgelöst wird.

Wenn das kurze BSYNC tatsächlich zu lang sein sollte, dann kannste ja mal das usleep größer machen.



Ich hätte die Seite vor dem Post neu laden sollen...
Das usleep in der ISR verlängern ist eine gute Idee?
Ok, der Int sollte jetzt nicht vorher neu auslösen.

Probieren tue ich das...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
084
30.12.2023, 18:23 Uhr
MarioG77

Avatar von MarioG77

Oh ja! Es lebt...
Jetzt bekomme ich haufenweise Sync=0 und 3 Pixel

Edit:
An GPIO10/11 sind nun auch Lebenszeichen.
also weiter Ran tasten

Edit 2:
Für heute bin ich erst Mal zufrieden. Ich mache morgen weiter...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 30.12.2023 um 18:34 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
085
30.12.2023, 21:42 Uhr
Ordoban



Hmm...
"Sync=0" heißt, dass der nächste Sync-Impuls nicht mit in den Samples ist.


Zitat:

Die Zeilendauer liegt bei 66µS zu 46µS.


66µs ist verdammt lang. In den 4K DMA-Buffer passen bei 80MHz Sampletakt nur 51.15µs.
Du könntest versuchen, die Samplerate zu reduzieren:

Quellcode:

        .clock_speed_hz = SPI_MASTER_FREQ_40M,


Das könnte auch noch reichen, um ein klares Bild zu bekommen.

Nach Adam Riese / Eva Zwerg müssten 60µs bei 40MHz = 2400 Samples * 8Bit = 19200Bits sein. Die mal als Länge für SPI-Transfer (=Sample-Prozess) eintragen:

Quellcode:

.rxlength = 19200,


Damit müsste der PIN10-Impuls ein Stückchen mit dem BSYN überlappen. (wie in #38 zu sehen)

Das "Sync" sollte dann eine Zahl größer 0 ausspucken, ich vermute mal irgenwas zwischen 2200 und 2400.
Das
Quellcode:
printf("Sync=%d\n",sync);"

crasht dir auf jeden Fall den Pixelkopier-Prozess. Sobald du eine brauchbare "Sync="-Zahl hast solltest du das wieder rauswerfen.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
086
31.12.2023, 11:57 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
Das "Sync" sollte dann eine Zahl größer 0 ausspucken, ich vermute mal irgenwas zwischen 2200 und 2400.
Das
Quellcode:
printf("Sync=%d\n",sync);"

crasht dir auf jeden Fall den Pixelkopier-Prozess. Sobald du eine brauchbare "Sync="-Zahl hast solltest du das wieder rauswerfen.



2172/2173
Ich habe den Wert auf 2150 gesetzt:



Wir nähern uns...

Mit deinen Angaben komme ich jetzt immer besser in die Funktionsweise rein.
Ich habe noch das 5fache Oversampling drin. Das dürfte hier nicht mehr passen.
Das sind jetzt 2,89.
Ob da in der Verarbeitung der Zeilen (Timing) noch was geändert werden müsste, müsste ich mir auch nochmal anschauen. Aber das ist vermutlich das Oversampling.

Edit: es sind auch nur 2 Farben, nicht 4. Evtl. ist da auch noch was anzupassen.
Edit2:
da wir ja (nicht nur) theoretisch das INTENS Signal haben, könnte man es evtl. dabei belassen.
Grundsätzlich sind die 13,8MHz vielleicht eher ein Thema...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 31.12.2023 um 12:14 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
087
31.12.2023, 12:25 Uhr
Ordoban



40MHz : 13,7931MHz = 2,900000725
Das klingt nach ner schönen runden Zahl... 2 9/10.
Wird die Kopier-Schleife nur etwas länger:

Quellcode:

for (int i=0;i<64;i++) // wir machen 10 Pixel pro Durchlauf, also 64*10 = 640 Pixel
{
    *vgapos = COLORS[((*bufpos)|(*(bufpos+1))) & 3];
    vgapos++;
    bufpos+=3;
    *vgapos = COLORS[((*bufpos)|(*(bufpos+1))) & 3];
    vgapos++;
    bufpos+=3;
    *vgapos = COLORS[((*bufpos)|(*(bufpos+1))) & 3];
    vgapos++;
    bufpos+=3;
    *vgapos = COLORS[((*bufpos)|(*(bufpos+1))) & 3];
    vgapos++;
    bufpos+=3;
    *vgapos = COLORS[((*bufpos)|(*(bufpos+1))) & 3];
    vgapos++;
    bufpos+=3;
    *vgapos = COLORS[((*bufpos)|(*(bufpos+1))) & 3];
    vgapos++;
    bufpos+=3;
    *vgapos = COLORS[((*bufpos)|(*(bufpos+1))) & 3];
    vgapos++;
    bufpos+=3;
    *vgapos = COLORS[((*bufpos)|(*(bufpos+1))) & 3];
    vgapos++;
    bufpos+=3;
    *vgapos = COLORS[((*bufpos)|(*(bufpos+1))) & 3];
    vgapos++;
    bufpos+=3;
    *vgapos = COLORS[((*bufpos)|(*(bufpos+1))) & 3];
    vgapos++;
    bufpos+=2;  // <--- die 2 statt 3 ist Absicht!
}


--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
088
31.12.2023, 12:37 Uhr
MarioG77

Avatar von MarioG77

Wieder etwas näher dran:


Wir müssen nun viel später anfangen, die Zeile auszulesen. Das dürfte zu früh sein.
Allerdings könnte auch oben am Bildanfang was fehlen.

Ich versuche gerade die Timings aus dem Datenblatt zu verstehen...

Allerdings gibt es auch noch einen 2. Wert bei 10,7MHz. Ich will versuchen herauszubekommen, mit was ich es eigentlich zu tun habe.
Wobei die Bildfrequenz am Oszi mit 50,x Hz (statt 55Hz) gemessen wurde, d.h. ich müsste bei den 13,8 MHz schon richtig sein.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
089
31.12.2023, 12:41 Uhr
Ordoban



den Startwert für die Zeile kannste hier einstellen:

Quellcode:

#define BSYNC_PIXEL_ABSTAND 3235


Das müsste bei dir deutlich unter 2150 sein.

Edit: wenn da noch die 3235 drin stehen, dann erklärt das die Streifen in der linken Bildschirmhälfte. Das sind keine aufegzeichneten Pixel, sondern irgendwelche Variablen, die im Speicher vor dem Puffer liegen.

Edit2:
Das fängt auch oben zu spät an. Da könntest du die Zahl hier reduzieren:

Quellcode:

        if (ABG_Scan_Line > 28)


--
Gruß
Stefan

Dieser Beitrag wurde am 31.12.2023 um 12:46 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
090
31.12.2023, 12:55 Uhr
MarioG77

Avatar von MarioG77

Danke.
Der bei 2000 sieht direkt ganz gut aus:



Ich schätze da fehlt jetzt in Zeile 1 die halbe Zeile (6 Pixelzeilen).

Die Zeilenanzahl stimmt. Es sind 24 Zeilen.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
091
31.12.2023, 13:05 Uhr
Ordoban




Zitat:
MarioG77 schrieb
Ich schätze da fehlt jetzt in Zeile 1 die halbe Zeile (6 Pixelzeilen).


das wäre dann
Quellcode:
if (ABG_Scan_Line > 22)



Zitat:
MarioG77 schrieb
Die Zeilenanzahl stimmt. Es sind 24 Zeilen.


Die Zeilenanzahl beim 1715 dürfte dem ESP ziemlich egal sein. Bei dem haben wir 400 Pixel Platz. Wenn das lange Sync schon vorher kommt, dann bleiben unten Zeilen schwarz.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
092
31.12.2023, 13:25 Uhr
MarioG77

Avatar von MarioG77

Ich meinte nur, das nicht mehr viel fehlt...

Danke. Du bist so schnell mit antworten, da habe ich nicht Mal Zeit, den Code zu studieren

Mache nach dem Mittag weiter.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
093
31.12.2023, 14:15 Uhr
Ordoban



Dabei fällt mir grad ein: Was passiert, wenn aus irgendwelchen Gründen beim Pixelkopieren das ABG_Scan_Line außerhalb 28-428 ist? Die Pixel werden über irgendeinen fremden Speicherbereich drüber gebügelt. Schlecht. Da müsste sicherheitshalber noch eine Abfrage rein.

Ich hab auch grad gesehen, dass die 28 oben nicht die einzige Stelle ist.
Hier auch nochmal:

Quellcode:

uint8_t* vgapos = (uint8_t*)((ABG_Scan_Line-23)*640 + (int)VGA_BUF);


Eventuell sollte man das auch zu einer Konstanten machen.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
094
31.12.2023, 14:17 Uhr
MarioG77

Avatar von MarioG77

Ja, der crasht dann.
Ich war auch gerade am Suchen, ich war der Meinung, diese Zeile auch schon überscrollt zu haben.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
095
31.12.2023, 14:37 Uhr
MarioG77

Avatar von MarioG77

Nun:



Ich habe jetzt folgendes:

Quellcode:

#define BSYNC_PIXEL_ABSTAND 2050 // Zeitabstand zwischen dem ersten Pixel und der fallenden Flanke des nachfolgendem BSYN-Impulses in 40MHz-Samples
#define ABG_LINE_START 22 // wo beginnt die erste Ausgabezeile nach BSYNC?




Quellcode:

if (ABG_Scan_Line > ABG_LINE_START)




Quellcode:

uint8_t* vgapos = (uint8_t*)((ABG_Scan_Line - ABG_LINE_START-1)*640 + (int)VGA_BUF);



Jetzt müsste man an den Farben nochmal optimieren. Ich vermute, da sollte die Reihenfolge nur gedreht werden, was die mittleren Werte und Schwarz angeht - ist nur Grün angeschlossen:


Quellcode:

uint8_t COLORS[] = {0b00101010, 0b00010101, 0, 0b00111111};  // Farbdefinition



daraus wird das:


"Farblich" schon mal ok, finde ich.

Jetzt wäre noch das Sampling zu verfeinern. Man sieht, dass die Pixel noch nicht sauber getroffen werden.


Coole Sache Stefan!

Edit:
vollständiger Code ist hier zu finden:
https://github.com/mgoegel/pc1715-esp32s3-vga
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 31.12.2023 um 14:40 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
096
31.12.2023, 14:42 Uhr
Ordoban



Sieht aus, als ob die Pixel-Verschiebung rechts und links vorkommt. Eventuell das BSYNC_PIXEL_ABSTAND mit 1999 oder 2001 probieren.
--
Gruß
Stefan

Dieser Beitrag wurde am 31.12.2023 um 14:42 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
097
31.12.2023, 14:50 Uhr
MarioG77

Avatar von MarioG77

Das ändert das Bild zwar etwas, aber ich befürchte das reicht nicht ganz.
Es sieht so aus, als ob die krumme Frequenz daran schuld ist.

Je nach BSYNC_PIXEL_ABSTAND verschiebt sich ein Bereich in der Mitte, der fast perfekt ist.

Dazwischen sind Bereiche, wo es nur die linken, rechten oder beiden Pixel eines Buchstaben betrifft.

Edit: Ist auf einem Bild schwer festzuhalten.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 31.12.2023 um 14:50 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
098
31.12.2023, 15:15 Uhr
Ordoban



Dann könntest du noch mit sowas spielen:

Quellcode:

                bufpos+=2;  // <--- die 2 statt 3 ist Absicht!
                if (i==32) bufpos++;  // oder auch mal bufpos--; probieren


Das Problem bei solchen extra Anweisungen ist, dass die Rechenzeit verbrauchen. Du müsstest das Pin 11 im Auge behalten.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
099
31.12.2023, 15:20 Uhr
MarioG77

Avatar von MarioG77

ok, Danke für den Tipp.
Ich werde da morgen weiter machen.

Ich habe da noch ein anderes Projekt, was ich mangels D008 Teile, angehen will...

Falls ich mich heute nicht mehr melde, schon Mal einen Guten Rutsch!
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
100
31.12.2023, 15:21 Uhr
Ordoban



Danke, dir auch. Und auch allen, die sonst so mitlesen
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
101
01.01.2024, 17:59 Uhr
MarioG77

Avatar von MarioG77

Gesundes Neues!

Stefan, wie bist du eigentlich auf 13,7931 MHz gekommen?
Die Frequenz ist 13,824MHz. Deshalb wird es etwas krummer. Der Faktor ist 2,893...

Hab heute nur die Pläne geprüft... Morgen geht es technisch weiter.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
102
01.01.2024, 18:52 Uhr
Ordoban



Oh, das war 80MHz : 5 4/5, und damit so nahe an 13,824 wie möglich. Hab ich wohl mit der Annäherung weitergerechnet.

Auf lange Sicht müssen wir einen Weg suchen, universell mit so krummen Taktraten auszukommen.
Die aktuellen Zahlen in den Programmen funktionieren mit meinem A7100 und hoffendlich irgendwann deinem PC1715. Aber wie sieht das mit anderen A7100 oder PC1715 aus, wenn da vielleicht die Frequenzen einen Hauch daneben liegen?
Ich hab schon eine Idee, aber ich komm heute nimmer dazu die umzusetzen.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
103
01.01.2024, 19:42 Uhr
PIC18F2550

Avatar von PIC18F2550


Zitat:
Enrico schrieb

Zitat:
PIC18F2550 schrieb
Das dachte ich bei meinem M105 Projekt auch.


Was ist den daraus geworden?
Man davon ja gar nichts mehr gehört.


SRN hatte von mir eine aufgebaute zum testen bekommen, aber er hatte für mich nicht Reproduzierbare Fehler.
Danach verschwand er von der Bildfläche ohne die geliehen Sachen zurückzugeben und ist seitdem nicht mehr erreichbar.
Das hat sich nicht nur auf das M105 Projekt ausgewirkt sondern auch auf M042, M102, M107 und M109.
Mal sehen ob dieses Jahr was wird.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
104
01.01.2024, 19:52 Uhr
Enrico
Default Group and Edit


Eigenartig......
Ev. kriege ich ne Antwort?
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
105
01.01.2024, 20:03 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
Oh, das war 80MHz : 5 4/5, und damit so nahe an 13,824 wie möglich. Hab ich wohl mit der Annäherung weitergerechnet.


ah ok.


Zitat:

Auf lange Sicht müssen wir einen Weg suchen, universell mit so krummen Taktraten auszukommen.
Die aktuellen Zahlen in den Programmen funktionieren mit meinem A7100 und hoffendlich irgendwann deinem PC1715. Aber wie sieht das mit anderen A7100 oder PC1715 aus, wenn da vielleicht die Frequenzen einen Hauch daneben liegen?
Ich hab schon eine Idee, aber ich komm heute nimmer dazu die umzusetzen.



Ja, sobald ich für meinen eine Idee habe, wollte ich damit an einem Bastel-1715 Board weiter probieren.

Hobi hatte mich gefragt, ob ich nicht einfach den Quarz auf eine schönere Frequenz umbaue, wie bei dem einem Z1013 Thema.

Dort wollte man an die Pixel mit einem Kondensator verwaschen. Vielleicht ist ja eine SW-Interpolation in dem Grenzbereich möglich, dann würde das vielleicht nicht so auffällig flackern.
Nur so ein Gedanke, habe ich noch nicht intensiver Nachgedacht.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
106
02.01.2024, 12:37 Uhr
MarioG77

Avatar von MarioG77

Evtl. könnte man ja eine lookup Table einbauen.
Die Frist kaum Rechenzeit, nur etwas Speicher - und den haben wir ja im Flash.
Die könnte man ja ggfs. je nach Bedarf berechnen.

Ich habe die Schleife wieder auf eine Zeile je Pixel (also 640 Aufrufe) reduziert. Es beginnt sich ein Muster abzuzeichnen.
Jedes 5. Zeichen hat in der Mitte einen klaren Pixel. Dank des RAM Test EPROMS habe ich ein einfaches Testbild.

Sonst ähnelt das Bild meines Bastel Boards sehr dem des Rechners. Mit deinem Aufbau ist das Bild deutlich stabiler, als mit BAS & GBS8200.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
107
02.01.2024, 15:50 Uhr
Enrico
Default Group and Edit



Zitat:
PIC18F2550 schrieb

Zitat:
Enrico schrieb

Zitat:
PIC18F2550 schrieb
Das dachte ich bei meinem M105 Projekt auch.


Was ist den daraus geworden?
Man davon ja gar nichts mehr gehört.


SRN hatte von mir eine aufgebaute zum testen bekommen, aber er hatte für mich nicht Reproduzierbare Fehler.
Danach verschwand er von der Bildfläche ohne die geliehen Sachen zurückzugeben und ist seitdem nicht mehr erreichbar.
Das hat sich nicht nur auf das M105 Projekt ausgewirkt sondern auch auf M042, M102, M107 und M109.
Mal sehen ob dieses Jahr was wird.



Er hat mir gentwortet.

Quellcode:

Wenn Du was schreiben möchtest, dann schreib nur, daß er mich gern anrufen kann (er hat meine Nummer) oder auch eine Mail schreiben kann.


Lt. Ihm kam von Dir keine Antwort.

Was wie wo, müsstest Ihr schon mal selber klären.....
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
108
02.01.2024, 16:38 Uhr
Ordoban




Zitat:
MarioG77 schrieb
Evtl. könnte man ja eine lookup Table einbauen.


Jap, so ungefähr ist auch mein Ansatz.

Zitat:

Die Frist kaum Rechenzeit, nur etwas Speicher - und den haben wir ja im Flash.


Der externe Flash ist relativ langsam, besser in den internen RAM kopieren - die 640 Bytes haben wir noch.

Zitat:

Die könnte man ja ggfs. je nach Bedarf berechnen.


Genau. Die Pixelfrequenz vorgeben und daraus die Schrittweite für alle Pixel berechnen. Man könnte auch ein paar Taster an den ESP anschließen und die Frequenzen/Einstellungen per Menü machen.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
109
02.01.2024, 17:37 Uhr
PIC18F2550

Avatar von PIC18F2550

Enrico,
lass uns hier weiter reden, es gehört hier nicht rein.

https://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=18716&highlight=Srn
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen

Dieser Beitrag wurde am 02.01.2024 um 17:38 Uhr von PIC18F2550 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
110
02.01.2024, 17:45 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb

Zitat:
MarioG77 schrieb
Evtl. könnte man ja eine lookup Table einbauen.


Jap, so ungefähr ist auch mein Ansatz.

Zitat:

Die Frist kaum Rechenzeit, nur etwas Speicher - und den haben wir ja im Flash.


Der externe Flash ist relativ langsam, besser in den internen RAM kopieren - die 640 Bytes haben wir noch.


Ah ich meinte für fertige Tabellen zum mitliefern.
Ich habe heute schon Mal angefangen - und speicher auf dem Heap reserviert, die Tabelle initialisiert.
Grundsätzlich funktioniert das...


Zitat:

Genau. Die Pixelfrequenz vorgeben und daraus die Schrittweite für alle Pixel berechnen. Man könnte auch ein paar Taster an den ESP anschließen und die Frequenzen/Einstellungen per Menü machen.


Da hatte ich heute noch so meine Probleme.

Verstehe ich den Code so korrekt, dass du pro Pixel die ersten 2 Samples verarbeitest und das 3. ignorierst?

Quellcode:

for (int i=0;i<64;i++) // wir machen 10 Pixel pro Durchlauf, also 64*10 = 640 Pixel
{
    *vgapos = COLORS[((*bufpos)|(*(bufpos+1))) & 3];
    vgapos++;
    bufpos+=3;
    *vgapos = COLORS[((*bufpos)|(*(bufpos+1))) & 3];
    vgapos++;
    bufpos+=3;
...


--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
111
02.01.2024, 18:00 Uhr
Ordoban




Quellcode:

#define ABG_PIXEL_FREQUENZ 13824000.0f // PC1715
// #define ABG_PIXEL_FREQUENZ 16010000.0f // A7100
#define ABG_PIXEL_START 0.2f
...
uint8_t* PIXEL_STEP_LIST;
...
void setup_abg()
{
...
    PIXEL_STEP_LIST = heap_caps_malloc(640, MALLOC_CAP_DMA | MALLOC_CAP_32BIT | MALLOC_CAP_INTERNAL);
...
    double weite = 40000000.0f / ABG_PIXEL_FREQUENZ;
    double step = ABG_PIXEL_START;
    int last = (int)step;
    for (int i=0;i<640;i++)
    {
        step += weite;
        PIXEL_STEP_LIST[i] = ((int)step) - last;
        last = (int)step;
        printf(" %d",PIXEL_STEP_LIST[i]);
    }
    printf("\n");
}
...
        // und nun die Pixel in den VGA-Puffer kopieren
        if (sync>0 && ABG_Scan_Line>=ABG_START_LINE && ABG_Scan_Line<=ABG_START_LINE+400)
        {
            uint8_t* bufpos = (uint8_t*)((sync - BSYNC_PIXEL_ABSTAND) + (int)buf);
            uint8_t* vgapos = (uint8_t*)((ABG_Scan_Line-(ABG_Scan_Line+1))*640 + (int)VGA_BUF);

            for (int i=0;i<640;i++)
            {
                *vgapos = COLORS[*bufpos];
                vgapos++;
                bufpos+=PIXEL_STEP_LIST[i];
            }
        }



Ausgabe:

Quellcode:

3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3




Zitat:

Verstehe ich den Code so korrekt, dass du pro Pixel die ersten 2 Samples verarbeitest und das 3. ignorierst?


Ja, genau. Der Trick bei den krummen Frequenzen ist, die richtige Anzahl Samples auszulassen. Die Auswertung von 2 Samples nebeneinander hatte ich nur gemacht, weil die Pixel-Impulse beim A7100 relativ kurz sind (vermutlich ist der Pullup-Wiederstand immer noch zu groß).

Edit: malloc vergessen
--
Gruß
Stefan

Dieser Beitrag wurde am 02.01.2024 um 18:06 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
112
02.01.2024, 19:07 Uhr
MarioG77

Avatar von MarioG77

Irre, wie du den Code hier so raushaust...

Bei den COLORS war noch das AND 3 nötig.



Aktuell sieht es so aus.
Wir kommen schon ziemlich nahe, aber einige Pixel springen immer noch nach links oder rechts.
Mal schauen, ob mir morgen noch was dazu einfällt.

Wobei ich sagen muss, dass die invertierte Darstellung (ohne das "AND 3") auf den ersten Blick Super aussah.

...

Ich habe das gerade nochmal auf meinem aufgebauten 1715 angeschlossen.
Beim Hochfahren sah das erst noch schlimm aus, aber nachdem ein paar Sekunden vergangen waren und der Rechner warm wurde, stabilisierte sich das Bild.
Es war absolut klar.

Leider scheint sich das mit der Zeit irgendwie zu ändern. Dann wird das Bild plötzlich wieder schlechter - für eine Weile.

Der Takt scheint da mit der Zeit nicht ganz sauber zu sein. Möglicherweise müssen wir die Konstante mit dem Pixel-Start als Variable betrachten.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
113
02.01.2024, 19:08 Uhr
MarioG77

Avatar von MarioG77

ok, das Bild ist nicht so gut gelungen... Man erkennt da nicht wirklich was.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
114
02.01.2024, 20:02 Uhr
Ordoban



Joa, das "& 3" hatte ich vergessen

Das mit der Tabelle scheint gut zu funktionieren. Rechenzeit zwischen 2/3 und 3/4 der verfügbaren Zeit.

Ich hab bei mir auch mal mit 40MHz Samplerate probiert, und das Ergebnis ist viel schlechter. Ich denke das wird auch bei dir ein Problem sein. 80MHz Samples sind ein MUSS. Blöd ist halt die Beschränkung der Puffer-Länge durch den DMA-Kontroller.
Eine mögliche Lösung wäre es, pro Zeile 2 DMA-Puffer zu nehmen. Damit wird allerdings das Puffer-Handling etwas umständlicher.

Dass die Pixel-Frequenzen driften ist mir nun auch aufgefallen. Ich hatte ja immer 2 Samples zusammen gefasst, weil bei meinen bisherigen Versuchen immer Pixel geflackert / gewabert haben. Entweder am rechten Rand oder am linken. Und jetzt läuft es mit glatten 16MHz.

Ich denke mal, das nächste wird sein, ständig die Zeit zwischen den SYNC-Interrupts zu messen, auf die Pixel-Frequenz umzurechnen, und auf die Tabelle zu übertragen.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
115
02.01.2024, 20:14 Uhr
MarioG77

Avatar von MarioG77

Was meinst du mit "viel schlechter", bei deinem Versuch mit 40 MHz?
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
116
02.01.2024, 20:30 Uhr
Ordoban



Der Text war kaum zu erkennen. Das lag aber an einem falschen Parameter. Inzwischen ist das 40MHz-Bild genauso gut.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
117
02.01.2024, 20:47 Uhr
Ordoban



Mir ist übrigends noch eine Schwachstelle meiner Schaltung aus #21 aufgefallen: der 78L33 ist zu schwach. Sobald die VIDs und BSYN über die Pull-Up's Strom ziehen, sackt die 3,3V auf 2,6V ab, und das VGA-Bild fängt an etwas zu flimmern. Ich werde wohl entweder stärkere Festspannungsregler bestellen müssen, oder die Spannungsversorgung der Pull-UP's und ESP auf 2 78L33 aufteilen.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
118
03.01.2024, 10:08 Uhr
MarioG77

Avatar von MarioG77

Guter Hinweis, da habe ich überhaupt nicht weiter geschaut.
Ich habe da ja einen BSS138 als Pegelwandler drin.
Muss mal messen, wie das bei mir ausschaut.

Hab gerade mal beim 78L33 nachgeschaut - 100mA sind für einen ESP32 vielleicht generell etwas wenig, wenn man da vielleicht später das RF Modul wirklich zuschalten möchte...
Im ungünstigsten Fall geht der Peak da laut Datenblatt auf 355mA.


Zitat:

Ich denke mal, das nächste wird sein, ständig die Zeit zwischen den SYNC-Interrupts zu messen, auf die Pixel-Frequenz umzurechnen, und auf die Tabelle zu übertragen.


Vielleicht könnte man das in einem 2. Thread monitoren.

Beim 1715 werden ja eh nur 288 Zeilen genutzt, da wäre noch Platz auf dem Monitor, zumindest fürs debugging, so eine Art OSD...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
119
03.01.2024, 10:48 Uhr
PIC18F2550

Avatar von PIC18F2550

Wie wäre es in einer Zeile einen Pixelvergleich 2 aus 3 zu machen.
Oder noch zusätzlich ein Vergleich 2 aus 3 mit älteren Bildern?

Du könntest die Auflösung am Monitor auch ein Vielfaches des PC machen.
Da fällt das geflacker nicht so auf.

Die besste Variante wäre es einen internen Takt der Graphigkarte anzuzapfen um damit die Pixelabfrage zu syncronisieren.

Kannst du in deiner Anwendung einen Kern für dich reservieren?
Wenn ja so ist ein Assemblercode besser als C da sich das Timing besser berechnen läst.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
120
03.01.2024, 15:40 Uhr
MarioG77

Avatar von MarioG77


Zitat:
PIC18F2550 schrieb
Wie wäre es in einer Zeile einen Pixelvergleich 2 aus 3 zu machen.
Oder noch zusätzlich ein Vergleich 2 aus 3 mit älteren Bildern?


Hatte ich auch drüber nachgedacht, aber noch keine konkrete Idee, wie man das sinnvoll macht.
Vermutlich würde ich hier etwas rumprobieren, aber Stefan kommt womöglich in 5 Minuten mit einer Lösung um die Ecke...


Zitat:

Du könntest die Auflösung am Monitor auch ein Vielfaches des PC machen.
Da fällt das geflacker nicht so auf.


Tatsächlich kein schlechter Gedanke.


Zitat:

Die besste Variante wäre es einen internen Takt der Graphigkarte anzuzapfen um damit die Pixelabfrage zu syncronisieren.


Ich weiß jetzt nicht, ob der 1715 als solches die Signale so Präzise liefert, wie der Takt läuft. Es könnte ja wegen DRAM Refresh evtl. auch Verzögerungen geben.
Ich habe das im Servicehandbuch noch nicht alles verstanden - es sind so viele Zusammenhänge.


Zitat:

Kannst du in deiner Anwendung einen Kern für dich reservieren?
Wenn ja so ist ein Assemblercode besser als C da sich das Timing besser berechnen läst.


Stefans Aussage zum Core klang so. Ich habe mich mit den Details des ESP32 noch nicht so tief auseinander gesetzt.
Ob ich mit Assembler besser bin, wage ich zu bezweifeln - klar, Zumindest hätte man dann einen berechenbaren Zeitraum.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
121
03.01.2024, 17:15 Uhr
Ordoban




Zitat:
PIC18F2550 schrieb
Wie wäre es in einer Zeile einen Pixelvergleich 2 aus 3 zu machen.
Oder noch zusätzlich ein Vergleich 2 aus 3 mit älteren Bildern?


Dafür wird die Rechenleistung des ESP nicht reichen. Zumindest, wenn man die originale Bildwiederholfrequenz beibehalten will.


Zitat:
PIC18F2550 schrieb
Du könntest die Auflösung am Monitor auch ein Vielfaches des PC machen.
Da fällt das geflacker nicht so auf.


Die einzige VGA-Auflösung, mit der ich bisher ein stabiles Bild erreicht habe, war 800x600x60Hz (Weil da die Pixelfrequenz genau 40MHz ist). Alle anderen gehen gar nicht, oder geben wabernde Bilder. Die Schnittstelle, die wir hier für VGA benutzen ist eigendlich für LCD's gedacht.


Zitat:
PIC18F2550 schrieb
Die besste Variante wäre es einen internen Takt der Graphigkarte anzuzapfen um damit die Pixelabfrage zu syncronisieren.


Die Idee ist gar nicht schlecht. Dann kann die Taktrate im A7100 oder PC1715 schwanken wie sie will - Die Samplerate im ESP schwankt dann halt mit, und ist vor allem Phasen-synchron. Der einzige Nachteil ist, dass man dafür auf der "historischen" Hardware rumlöten muss. Das wird nicht jeder wollen.

Zitat:
PIC18F2550 schrieb
Kannst du in deiner Anwendung einen Kern für dich reservieren?


Man kann den Sheduler, und somit alle anderen Threads auf einem Core abwürgen. Wirktlich "ungestört" ist man auch damit nicht. Irgend etwas verzögert ab und zu die Ausführung der ISR, was dazu führt dass ab und zu ganze Zeilen flackern. Bei der Stecker-Version hatte ich das gelöst, indem ich in dem Fall die Zeile nicht in den VGA-Puffer kopiere, und den Inhalt der vorherigen Frames drin stehen lasse. Ich werde demnächst mal probieren ob es besser ist das BSYNC zu pollen statt über ISR.

Zitat:
PIC18F2550 schrieb
Wenn ja so ist ein Assemblercode besser als C da sich das Timing besser berechnen läst.


Die Anzahl der CPU-Takte für ein Programm ist trotzdem nicht planbar. Hier teilen sich 2 Cores, und ein verdammt arbeitswütiger DMA-Kontroller die verschiedenen Busse zu den verschiedenen RAM's. Die haben zwar alle Caches um sich nicht gegenseitig auszubremsen, aber dadurch wird das ganze von den CPU-Takten echt unberechenbar. Ja. Mehrzahl: Busse und RAM's. Die Architektur der ESP's ist beunruhigend kompliziert.

Zitat:
MarioG77 schrieb
Vermutlich würde ich hier etwas rumprobieren, aber Stefan kommt womöglich in 5 Minuten mit einer Lösung um die Ecke...


Gib mir 10...

Auch wenn es vielleicht nicht so aussieht: für mich sind die ESP32 auch neu. Dieses VGA-Wandler-Dingens ist das erste Projekt was ich damit mache. Genauso C: das ist zwar nicht mein erstes C-Projekt, aber sonst schreib ich mein Zeugs in C#, Java, Delphi/Pascal.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
122
03.01.2024, 19:57 Uhr
Ordoban




Quellcode:

// Interrupt: wird bei fallender Flanke von BSYN aufgerufen
static void IRAM_ATTR abg_bsync_interrupt(void *args)
{
    usleep(1);  // kurz warten. Je nachdem wie der ESP heute drauf ist, ist der kurze BSYN-Impuls noch nicht ganz vorbei
    if (gpio_get_level(PIN_NUM_ABG_BSYNC2)!=0)
    {
        if (ABG_Scan_Line > 2)
        {
            bsyn_clock_diff = XTHAL_GET_CCOUNT() - bsyn_clock_last;
        }
        bsyn_clock_last = XTHAL_GET_CCOUNT();
...
...
...
    while (1)
    {
        printf("%ld\n",bsyn_clock_diff);
    }




Ergebnis:

Quellcode:

11037
11073
11019
11019
11016
11052
11091
11019
11019
11016
11073
11094
11019
11019
11016
11142
11019
11019
11019
11019
11136
11037
11019
11019
11019
11061
11097
11019
11019
11019
11061
11088
11016
11019
11019
11088
11097
11019
11019
11019
11184
11064
11016
11019
11019
11232
11049
11019
11019
11019
11304
11091
11019
11019
11019
11352


also 240MHz : 11019 = 21,78056 kHz
Im Datenblatt steht 21,7 kHz. Kommt hin.
Jetzt müsste man wissen, wie viele Pixel insgesamt pro Zeile sind.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
123
03.01.2024, 20:52 Uhr
PIC18F2550

Avatar von PIC18F2550

http://www.tinyvga.com/vga-timing
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
124
03.01.2024, 20:54 Uhr
Ordoban




Zitat:
PIC18F2550 schrieb
http://www.tinyvga.com/vga-timing



Welches davon spuckt die ABS-K7071 vom A7100 aus?
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
125
03.01.2024, 21:11 Uhr
PIC18F2550

Avatar von PIC18F2550

Keiner
Nur als vergleich wie weit die Systeme auseinander liegen.

Die Horizontale Pixelzahl kann man im Textmodus aus Zeichenzahl × horizontale Zeichenpixel
die anzahl der sichtbaren pixel berechnen.

Aus der Zeilenfrequenz und dem verhältnis hell und ausgeblentetenr Zeile in verbindung der sichtbaren Pixel kommt mann auf die Pixelfrequenz.

Beim berechnen immer die Rundungen des Rechners beachten!
Es ist manchmal besser die werte vorher mit 1000 oder mehr zu erweitern.
Bei 800 pixel währe eine erweiterung um ab 2400 sinnvoll.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen

Dieser Beitrag wurde am 03.01.2024 um 21:11 Uhr von PIC18F2550 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
126
04.01.2024, 18:59 Uhr
Ordoban



Jetzt klappt die automatische Einstellung der Pixelfrequenz.

Im ISR:

Quellcode:

// Interrupt: wird bei fallender Flanke von BSYN aufgerufen
static void IRAM_ATTR abg_bsync_interrupt(void *args)
{
    usleep(1);  // kurz warten. Je nachdem wie der ESP heute drauf ist, ist der kurze BSYN-Impuls noch nicht ganz vorbei
    if (gpio_get_level(PIN_NUM_ABG_BSYNC2)!=0)
    {
        if (ABG_Scan_Line == 10)
        {
            XTHAL_SET_CCOUNT(0);
        }

        if (ABG_Scan_Line == 210)
        {
            bsyn_clock_diff = XTHAL_GET_CCOUNT();
        }

        // bsync Impuls ist vorbei - war ein VSYNC
        if (ABG_Scan_Line > ABG_START_LINE)
        {
            REG_SET_BIT(GDMA_IN_LINK_CH1_REG, GDMA_INLINK_RESTART_CH1);  // das bewirkt, dass der DMA-Kontroller die Address-Tabelle neu einliest
            REG_SET_BIT(SPI_CMD_REG(2), SPI_USR);                        // neuen SPI-Transfer starten - die Parameter sind ja schon drin
        }
        ABG_Scan_Line++;
    }
    else
    {
        // bsync Impuls liegt immer noch an - ist ein HSYNC
        ABG_Scan_Line = 0;
    }
}




Vor der Pixelkopier-Schleife:

Quellcode:

        int a=100000;
        while ((next[0] & 0x80000000) != 0)  // darauf warten, dass der DMA-Kontroller den Transfer in den Puffer fertig meldet - der löscht das höchste Bit
        {
            if (bsyn_clock_last != bsyn_clock_diff && ABG_Scan_Line == 0)
            {
                // 200 Zeilen
                // *240 MHz CPU-Takt
                // :40 MHz Sample Rate
                // = 1200
                // *ABG_PIXEL_PER_LINE
#ifdef PIN_NUM_DEBUG_COPY
        gpio_set_level(PIN_NUM_DEBUG_COPY,1);
#endif
                bsyn_clock_last = bsyn_clock_diff;
                double weite = bsyn_clock_diff / (1200.0f * ABG_PIXEL_PER_LINE);
                double step = ABG_PIXEL_START;
                int last = (int)step;
                for (int i=0;i<640;i++)
                {
                    step += weite;
                    PIXEL_STEP_LIST[i] = ((int)step) - last;
                    last = (int)step;
                }
#ifdef PIN_NUM_DEBUG_COPY
        gpio_set_level(PIN_NUM_DEBUG_COPY,0);
#endif
            }

            if (a==0)                         // Die Wartezeit ist abgelaufen!
            {
                for (int b=0;b<640*400;b++)  // VGA-Puffer leeren
                {
                    VGA_BUF[b]=0;
                }
                a=100000;
            }
            a--;
        }



Edit: der Vollständigkeit halber:

Quellcode:

#define ABG_PIXEL_PER_LINE 736.0f
...
volatile uint32_t bsyn_clock_diff = 0; // ~2210000
volatile uint32_t bsyn_clock_last = 0;



Edit2:
Ich hab auch noch herausgefunden wie man das Linienflackern los wird: in den Projekteinstellungen unter "Component config-->ESP System Settings" den "Interrupt watchdog" deaktivieren.
--
Gruß
Stefan

Dieser Beitrag wurde am 04.01.2024 um 19:08 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
127
04.01.2024, 19:08 Uhr
MarioG77

Avatar von MarioG77

Cool!
Ich probiere es morgen aus. Heute den ganzen Tag am KC Gehäuse gefummelt.

Ein Gedanke:
Könnte man den VGA Puffer leeren, nicht auch in der Kopierschleife mit erledigen?
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
128
04.01.2024, 19:14 Uhr
Ordoban




Zitat:
MarioG77 schrieb
Könnte man den VGA Puffer leeren, nicht auch in der Kopierschleife mit erledigen?


Nein. Die Kopierschleife wird ja erst abgearbeitet, wenn das BSYN einen Interrupt ausgelöst hat und Pixel über SPI eingelesen sind. Wenn der Oldtimer aus ist, dann kommt bein BSYN mehr, und die Kopierschleife wartet ewig auf was neues zum kopieren. Dann würde das letzte Bild ewig im VGA Puffer stehen bleiben.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
129
04.01.2024, 20:02 Uhr
MarioG77

Avatar von MarioG77

Achso - klar. Ich dachte, die wird vorher immer ausgeführt, macht aber keinen Sinn - wir überschreiben das ja immer.

...wenn man immer nur halb hin schaut...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
130
05.01.2024, 14:33 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
Jetzt klappt die automatische Einstellung der Pixelfrequenz.

Im ISR:

Quellcode:

// Interrupt: wird bei fallender Flanke von BSYN aufgerufen
static void IRAM_ATTR abg_bsync_interrupt(void *args)
{
    usleep(1);  // kurz warten. Je nachdem wie der ESP heute drauf ist, ist der kurze BSYN-Impuls noch nicht ganz vorbei
    if (gpio_get_level(PIN_NUM_ABG_BSYNC2)!=0)
    {
        if (ABG_Scan_Line == 10)
        {
            XTHAL_SET_CCOUNT(0);
        }

        if (ABG_Scan_Line == 210)
        {
            bsyn_clock_diff = XTHAL_GET_CCOUNT();
        }

        // bsync Impuls ist vorbei - war ein VSYNC
        if (ABG_Scan_Line > ABG_START_LINE)
        {
            REG_SET_BIT(GDMA_IN_LINK_CH1_REG, GDMA_INLINK_RESTART_CH1);  // das bewirkt, dass der DMA-Kontroller die Address-Tabelle neu einliest
            REG_SET_BIT(SPI_CMD_REG(2), SPI_USR);                        // neuen SPI-Transfer starten - die Parameter sind ja schon drin
        }
        ABG_Scan_Line++;
    }
    else
    {
        // bsync Impuls liegt immer noch an - ist ein HSYNC
        ABG_Scan_Line = 0;
    }
}





da scheint noch was zu fehlen...

Quellcode:

C:/projects/esp-1715-vga/components/vga-adapter-1715/vga-adapter-1715.c:91:13: error: implicit declaration of function 'XTHAL_SET_CCOUNT'; did you mean 'XCHAL_HAVE_CCOUNT'? [-Werror=implicit-function-declaration]
   91 |             XTHAL_SET_CCOUNT(0);
      |             ^~~~~~~~~~~~~~~~
      |             XCHAL_HAVE_CCOUNT
C:/projects/esp-1715-vga/components/vga-adapter-1715/vga-adapter-1715.c:96:31: error: implicit declaration of function 'XTHAL_GET_CCOUNT'; did you mean 'XCHAL_HAVE_CCOUNT'? [-Werror=implicit-function-declaration]
   96 |             bsyn_clock_diff = XTHAL_GET_CCOUNT();
      |                               ^~~~~~~~~~~~~~~~
      |                               XCHAL_HAVE_CCOUNT
C:/projects/esp-1715-vga/components/vga-adapter-1715/vga-adapter-1715.c:100:29: error: 'ABG_START_LINE' undeclared (first use in this function)
  100 |         if (ABG_Scan_Line > ABG_START_LINE)
      |                             ^~~~~~~~~~~~~~



btw: ich meine, das XTAL (Crystall) ist ohne "H"


Zitat:

Edit2:
Ich hab auch noch herausgefunden wie man das Linienflackern los wird: in den Projekteinstellungen unter "Component config-->ESP System Settings" den "Interrupt watchdog" deaktivieren.


probiere ich im nächsten Versuch gleich mit...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
131
05.01.2024, 16:25 Uhr
Ordoban



Joa, da fehlt der include:

Quellcode:

#include <xtensa/core-macros.h>


den ABG_START_LINE hattest du ABG_LINE_START genannt. Heißt die Grafikkarte im PC1715 auch ABG?
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
132
05.01.2024, 17:38 Uhr
MarioG77

Avatar von MarioG77

ok, das tut prinzipiell.
Leider hat sich gerade mein Bastelboard verabschiedet. Die Strombegrenzung am Netzteil schlägt zu...

Am 1715 bekomme ich ein Bild, prinzipiell auch stabil, aber leider passt das Pixel Timing nicht.
Die Zeichen sind krisselig. Allerdings stabil - das ändert sich im Verhalten nicht über die Zeit.

Ich würde mir das morgen nochmal anschauen.

Der 1715 hat keine Grafikkarte als solche. Das ist onboard mit dem 8275 fest aufgebaut.
Ich wüsste da jetzt keine "richtige" Bezeichnung. Ich kann mit ABG leben...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 05.01.2024 um 17:40 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
133
05.01.2024, 21:01 Uhr
Ordoban



Wer hatte hier das OSD-Menü zum debuggen bestellt?


Hier der ganze Quelltext nochmal komplett:
https://imoriath.com/downloads/privat/a7100/VGA_Adapter_main_V2.c
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
134
06.01.2024, 15:01 Uhr
MarioG77

Avatar von MarioG77

Krasse Sache.
Mal schauen, ob ich da heute noch zu komme...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
135
07.01.2024, 20:16 Uhr
MarioG77

Avatar von MarioG77

Leider doch nicht mehr geschafft - war schon fast dabei, aber dann merkte ich, dass du im neuen Code die GPIO neu belegt hast. Da brauche ich doch ein paar Minuten mehr.

Wird wohl bei mir erst frühestens nächste Woche, wenn es nicht mehr so kalt ist. Die Isolierung meiner Werkstatt reicht leider nicht aus.

Immerhin tut mein Bastel Board doch noch...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
136
30.01.2024, 19:51 Uhr
MarioG77

Avatar von MarioG77

So, heute endlich hier Mal weiter probiert.
Hat mich jetzt etwas Zeit gekostet, bis ich wieder ein Bild hatte.
Musste erst Mal wieder alle Parameter finden, die angepasst werden müssen.
Vielleicht ein paar weitere Konstanten definieren...

Meine Kurzhubtaster funktionieren eher schlecht am Breadboard. Da muss ich mir was besseres basteln.

Vom Bild her aber noch keine perfekte Einstellung gefunden - zumindest an meinem Test-Board. Muss ich in die Bedienung vom OSD erst einarbeiten.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
137
31.01.2024, 19:35 Uhr
MarioG77

Avatar von MarioG77

Eine kleine gelötete Tastatur später ist das schon angenehmer.

Hier mal die letzten Änderungen von mir:
https://github.com/mgoegel/pc1715-esp32s3-vga/blob/main/components/vga-adapter-1715/vga-adapter-1715.c

Ich habe die entsprechenden defines/Variablen angepasst, um das Zielsystem einfacher definieren zu können.

Auch das Delay im Interrupt muss ja passen...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
138
10.02.2024, 16:58 Uhr
MarioG77

Avatar von MarioG77

@Stefan:
Muss mal schauen, ob ich deine neuesten Änderungen Morgen testen kann...
Habe die Tage auch über eine andere Herangehensweise nachgedacht...

Evtl. etwas Mathematisch, zumindest für den 1715 und seiner krummen Frequenz. Vielleicht kann man das da etwas optimieren im Code optimieren.

Ich denke Mal, die Konstanten kann man über das OSD vielleicht umdefinieren und vielleicht auch den Code in einer Firmware passend unterbringen.
Oder vielleicht einfach per Jumper beim Booten auswählen, welche Variante laufen soll.

Ein weiterer Gedanke, falls ich mit der krummen Frequenz bei 40 MHz nicht hinkomme, vielleicht einen 2. DMA Buffer zu nehmen.
Auch vielleicht einzelne Bilder auslassen um Zeit für die Verarbeitung zu bekommen, falls nötig.
Ich vermute, hohe Frameraten spielen keine große Rolle...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
139
10.02.2024, 20:33 Uhr
Ordoban



Mathematisch... jaaa... sowas haben wir im Prinzip schon. Wir messen ja die Anzahl der CPU-Takte für 200 Zeilen (Zeile 210-219). Daraus wird dann die Schrittweite für die Pixeltabelle errechnet, und zwar im Sub-Sample Bereich (Zeile 500-517). Damit sollte sich das Problem mit den krummen Frequenzen erledigt haben. Das einzige was die Formel braucht ist die korrekte Anzahl Pixel pro Zeile. Die setzt sich aus den sichtbaren Pixeln, der Zeit vorher, der Zeit nachher und der Zeit vom Sync-Impuls zusammen.

Es ist auch möglich Parameter vom Programm aus im Flash zu speichern.

Man könnte auch anhand der gemessenen Anzahl CPU-Takte pro Zeile zwischen A7100 und PC1715 switchen. Wobei ich nicht weiß wie das mit den verschiedenen Parameter-Sätzen für den PC1715 aussieht.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
140
11.02.2024, 15:17 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
Mathematisch... jaaa... sowas haben wir im Prinzip schon. Wir messen ja die Anzahl der CPU-Takte für 200 Zeilen (Zeile 210-219). Daraus wird dann die Schrittweite für die Pixeltabelle errechnet, und zwar im Sub-Sample Bereich (Zeile 500-517). Damit sollte sich das Problem mit den krummen Frequenzen erledigt haben. Das einzige was die Formel braucht ist die korrekte Anzahl Pixel pro Zeile. Die setzt sich aus den sichtbaren Pixeln, der Zeit vorher, der Zeit nachher und der Zeit vom Sync-Impuls zusammen.


Ja, es reicht leider noch nicht aus, die Abweichungen zu kompensieren.
Prinzipiell kann man alle Pixel stabil angezeigt bekommen, allerdings immer in Gruppen von ca 20 Pixeln.
D.h. ich habe etwa 2,5 Zeichen die ok sind und dann wieder knapp 2,5 Zeichen, die schwimmen.

Die CPU Takte für die Zeilen dürften die Varianzen innerhalb der Zeile nicht erfassen.
Am 1715 haben wir pro Pixel 72,3ns vs 25ns Abtastung. Das verschiebt sich da nach ein paar Pixeln. Am Ende der Zeile haben wir 48ns Abweichung.
Das ist zwar theoretisch kein ganzer Pixeltakt, aber zwischendrin leider sichtbar.

Auf dem Foto kann man das Schemenhaft erkennen.


Ich habe ein Video gemacht, an dem erkenne ich hoffentlich das Muster und kann diese Woche vielleicht eine Kompensationstabelle berechnen lassen.


Zitat:

Es ist auch möglich Parameter vom Programm aus im Flash zu speichern.


klar, macht Sinn.


Zitat:

Man könnte auch anhand der gemessenen Anzahl CPU-Takte pro Zeile zwischen A7100 und PC1715 switchen. Wobei ich nicht weiß wie das mit den verschiedenen Parameter-Sätzen für den PC1715 aussieht.


Du meinst für unterschiedliche PC1715 oder A7100<->PC1715?

Diesen Monat bin ich jetzt viel unterwegs, da komme ich meist nur am Wochenende kurz in meine Werkstatt.
Vielleicht kann ich aber offline Abends etwas Hirnschmalz rein stecken.

Nebenbei: mir ist im OSD immer noch nicht klar, wann ich welchen Wert verändere...
Die Anzeige wechselt zwar, aktualisiert aber nicht - erst wenn man den Modus wechselt.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 11.02.2024 um 15:20 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
141
11.02.2024, 15:22 Uhr
MarioG77

Avatar von MarioG77

Achja: das Schema der Abweichung scheint zwischen dem reparierten 1715 und meinem Bastel-Board sehr ähnlich zu sein...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
142
11.02.2024, 16:38 Uhr
Ordoban




Zitat:
MarioG77 schrieb
Ja, es reicht leider noch nicht aus, die Abweichungen zu kompensieren.
Prinzipiell kann man alle Pixel stabil angezeigt bekommen, allerdings immer in Gruppen von ca 20 Pixeln.
D.h. ich habe etwa 2,5 Zeichen die ok sind und dann wieder knapp 2,5 Zeichen, die schwimmen.


Das sieht ganz nach einer inkorrekten "Pixel pro Zeile" Einstellung aus.

Zitat:
MarioG77 schrieb
Die CPU Takte für die Zeilen dürften die Varianzen innerhalb der Zeile nicht erfassen.
Am 1715 haben wir pro Pixel 72,3ns vs 25ns Abtastung. Das verschiebt sich da nach ein paar Pixeln. Am Ende der Zeile haben wir 48ns Abweichung.
Das ist zwar theoretisch kein ganzer Pixeltakt, aber zwischendrin leider sichtbar.


Wenn die Pixelfrequenz innerhalb einer Zeile so variieren würde, dann müsstest du das auch bei dem original Monitor als Wabern sehen.

Zitat:
MarioG77 schrieb
Auf dem Foto kann man das Schemenhaft erkennen.



Ja, mit schöner Regelmäßigkeit breitere (und vermutlich flackernde) Spalten von Pixeln -> "Pixel pro Zeile" Einstellung falsch. Vielleicht 25 mehr probieren.

Zitat:
MarioG77 schrieb
Du meinst für unterschiedliche PC1715 oder A7100<->PC1715?


Ich meinte die unterschiedlichen Bildschirmmodie bei unterschiedichen SCP/CPA Versionen, wie in #032 und #033 von dir beschrieben.

Zitat:
MarioG77 schrieb
Diesen Monat bin ich jetzt viel unterwegs, da komme ich meist nur am Wochenende kurz in meine Werkstatt.
Vielleicht kann ich aber offline Abends etwas Hirnschmalz rein stecken.

Nebenbei: mir ist im OSD immer noch nicht klar, wann ich welchen Wert verändere...
Die Anzeige wechselt zwar, aktualisiert aber nicht - erst wenn man den Modus wechselt.


Häää? Mit den Tasten links und rechts wechselst du welchen Wert verstellt wird, der wird dann blau. Mit hoch und runter drehst du den Wert hoch und runter. Das hat sofort Effekt im Bild und auch in der OSD-Anzeige.
Was meinst du mit "Modus wechseln"? Kann es sein, dass du die Blaue Farbe nicht siehst?
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
143
11.02.2024, 16:56 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
Das sieht ganz nach einer inkorrekten "Pixel pro Zeile" Einstellung aus.

ok, dann muss ich nochmal probieren....


Zitat:
Häää? Mit den Tasten links und rechts wechselst du welchen Wert verstellt wird, der wird dann blau. Mit hoch und runter drehst du den Wert hoch und runter. Das hat sofort Effekt im Bild und auch in der OSD-Anzeige.
Was meinst du mit "Modus wechseln"? Kann es sein, dass du die Blaue Farbe nicht siehst?

Oh... Darauf bin ich nicht gekommen. Die habe ich weg gespart, beim Testaufbau....
Mal schauen, was dann raus kommt...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
144
11.02.2024, 18:02 Uhr
MarioG77

Avatar von MarioG77

ok...

Da haben wir die Einstellung:



Den Pixel Abstand muss man hin und wieder nachjustieren +1/-1.
Rechts gibt es noch einen etwas unscharfen Bereich, wenn man genau hinschaut.
Aber sonst ist Bild super klar...

Glückwunsch und Danke!

Beim OSD müsste man vielleicht noch etwas die Eingabe optimieren - wenn man die Taste gedrückt hält, den Zähler weiter hoch zählen, das sollte sicher simpel sein.
Ich schätze, bevor ich das programmiert habe, hast du das schon hochgeladen (weil ich jetzt noch was anderes fertig machen muss).
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
145
11.02.2024, 18:28 Uhr
Ordoban



Sehr gut


Zitat:
MarioG77 schrieb
Den Pixel Abstand muss man hin und wieder nachjustieren +1/-1.


Das liegt daran, dass der Pixel-Abstand in Samples ist. Wenn sich die Pixel-Frequenz verändert, dann werden die Pixel in der Zeile gestreckt bzw gestaucht. Die Abtastrate wird schon automatisch mit gestreckt bzw. gestaucht, der Startpunkt aber nicht. Das wird dann das nächste sein, was ich in die Zange nehme.


Zitat:
MarioG77 schrieb
Rechts gibt es noch einen etwas unscharfen Bereich, wenn man genau hinschaut.
Aber sonst ist Bild super klar...


Das krigt man bestimmt auch noch...


Zitat:
MarioG77 schrieb
Beim OSD müsste man vielleicht noch etwas die Eingabe optimieren - wenn man die Taste gedrückt hält, den Zähler weiter hoch zählen, das sollte sicher simpel sein.
Ich schätze, bevor ich das programmiert habe, hast du das schon hochgeladen (weil ich jetzt noch was anderes fertig machen muss).


Ja, so ein bischen Komfort muss sein
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
146
17.02.2024, 12:11 Uhr
MarioG77

Avatar von MarioG77

Jetzt habe ich mir mein VS Code endlich so eingerichtet, dass er nicht mehr über die includes meckert...

Habe mir das mit der NVS Partition (Datenspeicher im Flash) schon Mal angeschaut.
Ich denke, das Menü muss noch ein wenig erweitert werden...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
147
17.02.2024, 13:14 Uhr
Ordoban



Und ich bin von Eclipse auf VS Code umgestiegen. Ich hatte Eclipse nur genommen, weil ich es von meinem anderen großen Hobby-Projekt (Imoriath) gut kenne. Für Java funktioniert Eclipse super, für C++ degegen nicht.

Ich hab das auto-repeat in die Tasten eingebaut, und die automatische Pixel-Abstand-Anpassung. Mit dem Ergebnis bin ich aber noch nicht ganz zufrieden. Der Bereich, in dem das ein gutes Bild gibt, ist extrem schmal. Eine Einstellung Plus oder Minus gibt immer flimmernde Pixel.

Ich werde das demnächst nochmal mit 80MHz Samplerate probieren. Dann muss ich aber den DMA-Puffer-Mechanismus erweitern.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
148
17.02.2024, 13:34 Uhr
MarioG77

Avatar von MarioG77

Ah ok, Danke für die Info.
Dann schaue ich mir das mit dem Speichern der Profile an.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
149
18.02.2024, 11:12 Uhr
MarioG77

Avatar von MarioG77

Ich sollte mein repo und den die main.c vielleicht umbenennen.
Ich hätte nicht gedacht, dass du da direkt mit einsteigst. Ich wollte nur die Code Basis offen und nachvollziehbar halten.

Das fiel mir gerade so beim NVS Code ein. Der Namespace sollte generischer sein.

Bevor ich da was ändere - mach einen Vorschlag. Du bist der Initiale Autor
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
150
18.02.2024, 13:54 Uhr
Ordoban



Ja, benenn ruhig um.

Es wär vielleicht auch gut, eine Lizenz-Klausel hinzuzufügen. In meinen Augen zwar Platzverschwendung, aber dann kann uns keiner ans Bein pissen. Welche, ist im Prinzip egal. Ich nehm meist die BSD-Lizenz. Die ist schön kurz.

Ich war gerade dabei das ganze wieder auf 80MHz Samplerate umzubauen. Das gibt tatsächlich ein besseres Bild. Die Pixel neigen nicht so sehr zum flimmern. Bei 40MHz ist nur eine einzige Einstellung flimmerfrei, bei 80MHz sind es mehrere nebeneinander. Für den A7100 klappt 80MHz gut, für den PC1715 aber nicht. Man kann mehrere DMA-Buffer aneinander hängen. Da hatte ich gedacht, der DMA-Kontroller würde dann automatisch auf den nächsten Buffer gehen wenn der eine voll ist. Tut er auch - aber nicht innerhalb eines Transfers. Vor Beginn jeden Transfers überprüft der, ob die Daten in den das aktuelle Buffer-Segment passen. Wenn nicht, nimmt der halt das nächste. Wenn die Daten insgesamt größer sind als 4K, dann fängt der DMA-Kontroller gar nicht erst an.

Das schmeißt die Planung für das nächste Projekt über den Haufen: Streaming über Wlan. Ich hatte vor, zuerst einen komplette Frame in einem Stück über SPI einzulesen, und den dann erst in ein Bild zu zerlegen. Da braucht man nicht auf das Timing zu achten. Die Framerate über Wlan ist am Ende egal. Jetzt muss ich das Einlesen doch wieder in einzelne Zeilen Splitten.

Wie auch immer. Benenn die main.c um, dann kann ich den Teil committen, der einigermaßen geht.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
151
18.02.2024, 15:08 Uhr
MarioG77

Avatar von MarioG77

Ok, ich habe das 1715 jetzt aus den Verzeichnissen/Dateien eliminiert.

Das Repo hat eine neue URL, ich hoffe, dein Fork wurde entsprechend angepasst:
https://github.com/mgoegel/robotron-esp-vga.git

BSD Lizenz ist drin.

Mit dem NVS Kram habe ich gerade erst angefangen.
In dem Zug habe ich die Konstanten vorgesehen, durch globale Variablen zu ersetzen.
In der Hoffnung, dass das keine negativen Auswirkungen auf die Performance hat...

Dann sollte man ohne Reboot zwischen A7100 und PC1715 wechseln können.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 18.02.2024 um 15:08 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
152
19.02.2024, 19:47 Uhr
MarioG77

Avatar von MarioG77

Ich habe die Modusumschaltung eingebaut. Testen tue ich morgen.
Der nächste Schritt ist dann das Speichern der Werte.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
153
19.02.2024, 22:07 Uhr
Ordoban



Ich hab das mit meinem Zeugs zusammengeführt. Klappt für den A7100 soweit OK.
Ab und zu zuckt das Bild. Woran das liegt versuche ich morgen herauszufinden.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
154
20.02.2024, 08:06 Uhr
MarioG77

Avatar von MarioG77

ok, hab's bei mir eingebunden.
Test heute Abend. Bin gespannt. Muss wohl doch langsam mal den 1834 mit MON auf dem Tisch ausgraben...

Nebenbei: den Modus hatte ich im Menü nicht als Start Wert vorgesehen, um den nicht versehentlich umzuschalten. Hab ich auch nicht dazu kommentiert. Von der Reihenfolge her macht das natürlich an erster Stelle mehr Sinn.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
155
20.02.2024, 18:47 Uhr
MarioG77

Avatar von MarioG77

Man, VSCode kann echt frustrierend sein...
ESP-IDF auf Rechner A auf Laufwerk E: installiert und auf Rechner B auf Laufwerk C:...

Heute geht auch nichts... Blöde VS Config Sync.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
156
20.02.2024, 19:52 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
Ich hab das mit meinem Zeugs zusammengeführt. Klappt für den A7100 soweit OK.
Ab und zu zuckt das Bild. Woran das liegt versuche ich morgen herauszufinden.


ok, Ich habe es endlich kompiliert bekommen.
Die Startwerte für den PC1715 habe ich angepasst.

Der Pixelabstand schwankt da zwischen 154.40 und 154.60.

Muss mal beobachten, ob das Sprunghaft oder langsamer passiert.

Das mit dem Zucken kann ich bestätigen. Gefühlt der Ersatz einer flimmernden Röhre...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
157
20.02.2024, 19:55 Uhr
Ordoban




Zitat:
MarioG77 schrieb
Das mit dem Zucken kann ich bestätigen. Gefühlt der Ersatz einer flimmernden Röhre...



Ok, dann verkaufen wir das als Feature. Fehlt nur noch das leise Pfeifen eines Zeilentravos
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
158
21.02.2024, 20:12 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb

Ok, dann verkaufen wir das als Feature. Fehlt nur noch das leise Pfeifen eines Zeilentravos


Gute Idee...

Ich habe gerade das Speichern/Laden der Einstellungen eingebaut.
Das Menü ist um eine weitere Seite erweitert (nach rechts).

Ich hab es heute nicht mehr testen können. Mache ich morgen, falls du nicht schneller bist.

Habe gestern die Farben beim 1715 auch noch auf Grün geändert - das sieht einfach besser aus.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
159
21.02.2024, 20:27 Uhr
Rolly2



Entspricht auch mehr dem Original. So sollte das auch sein. Ich lese das nun schon von Anfang an mit. Ging es da nicht um eine Möglichkeit, einen TFT an den 7100 anzuschliessen?
Für den 1715 gibt es ja schon diese Möglichkeit, Heikos VGA-Karte. Diese könnte man überarbeiten und ohne Farbe gestalten,also nur "GRÜN". Der Aufwand, den ihr Beiden betreibt, ist ja beträchtlich. Der Fred ist auch relativ lang und damit unübersichtlich geworden.

VG, Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
160
21.02.2024, 21:59 Uhr
Ordoban



Ja, es ging anfangs nur um den 7100, wir haben das auf den 1715 erweitert, weil das vom Videosignal gut passt. Ich kenne "Heikos VGA-Karte" nicht, aber ich vermute mal, dass die auch ganz schön aufwändig ist, und die Teile schwer zu bekommen sind. Die ESP32-S3 sind spottbillig und gut zu bekommen. Der Rest ist Software...

Ich weiß nun eingermaßen woher das Bildzucken kommt. Das liegt daran, dass Interrupts beim ESP32 durch den C-Unterbau relativ große Latenz haben. Vor allem ist diese Latenz nicht gleich. Manchmal dauert es viel länger bis unser ISR aufgerufen wird. Es gibt auch die Möglichkeit Interrupts mit höherer Priorität zu nutzen, dadurch wird die Latenz klein und gleichmäßig. Allerdings muss der ISR dann in Assembler geschrieben werden. Ich hab mir schon die Beispiele dazu angesehen, und das Beispiel-Projekt bei mir zum laufen gebracht. Jetzt noch unseren ISR in Assembler umsetzen... das wird lustig. Das ist kein Z80
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
161
22.02.2024, 09:45 Uhr
MarioG77

Avatar von MarioG77

Ja, genau das ist auch mein Antrieb.

Ich möchte mir schon auch noch so eine BWS Karte mal zulegen. Die dürfte aber deutlich teurer und aufwendiger sein.
Zumal man die ja auch noch irgendwie in das Gehäuse packen muss (GUN?).
Der FPGA war, WIMRE, auch schon eine Weile abgekündigt und nur noch in China zu bekommen.

Ich muss sagen, dass die Lösung hier das bis jetzt beste Bild aus dem Original-Signal an moderen Monitoren rausgeholt hat.
Wenn wir die Kleinigkeiten noch lösen, sollte das eine günstige Lösung sein.
Und die Programmierung von Controllern macht mir auch richtig Spaß...

Ich hatte mit einem Prototyp PCB Design noch abgewartet, aber hier wird außen wohl nicht mehr viel dazukommen - denke, ich werde das in Kürze angehen - wenn wir nicht noch irgendwelchen verrückten Ideen haben...
Die Netzteil Platine will ich in dem Zuge dann mal mitbestellen.

@Stefan: nicht schlecht, das überhaupt zu finden.
Wird sicher eine Herausforderung. In der ISR Routine ist ja jetzt auch nicht ganz wenig Code.
Bei dem Code für Xtensa LX7 habe ich auch noch keine Erfahrung. Das ist dann neu für mich, aber sicher auch nicht unlösbar.
In dem Zusammenhang habe ich auch das hier gefunden:
https://haydendekker.medium.com/esp32-interrupts-can-only-do-200khz-56f8dbb6a61c
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
162
22.02.2024, 11:13 Uhr
Rolly2



Ja, Hut ab vor euem Durchhaltevermögen. Ich hätte vermutlich schon lange aufgegeben, wenn ich denn Ahnung von der Materie hätte.
Wenn am Ende etwas für unsere alten Rechner herauskommt ist das natürlich noch schöner.
Die angesprochene BWS-Karte passt übrigens gut über der GUN in den 1715 und natürlich auch in jeden K1520 Rechner.
Du hast recht, der FPGA ist schwer beschaffbar und kostet auch ca.25 Euro. Von daher ist eure Lösung sicher viel günstiger.
Zeigt doch ab und zu mal ein aktuelles Bildschirmfoto am 1715, das interessiert viele Mitleser und macht den Fred abwechslungsreicher.

VG, Andreas

Dieser Beitrag wurde am 22.02.2024 um 11:30 Uhr von Rolly2 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
163
22.02.2024, 11:21 Uhr
MarioG77

Avatar von MarioG77

ok, wenn ich heute zum Feierabend den neuesten Code teste, gibt es wieder was...

Durchhaltevermögen ist da jetzt echt kein Thema gewesen (bei mir jedenfalls) - das Projekt hat sich zeitlich etwas gezogen, weil wir beide sicher auch noch andere Dinge in der Zwischenzeit hatten.
Aber sonst empfinde ich dabei Spaß. Selbst wenn ich, wie gestern Abend - am Büro Rechner ohne jeden HW Kontakt nur trocken programmiere - auch wenn es die Fortsetzung des Arbeitstages an einem anderen Projekt ist.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
164
22.02.2024, 19:08 Uhr
MarioG77

Avatar von MarioG77

Hat fast perfekt funktioniert.

Ich musste lediglich beim Laden der Einstellungen den cast von int auf float verschieben.
Mit den aktuellen Voreinstellungen müsste zumindest jeder 1715 irgendwas anzeigen.


--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
165
22.02.2024, 19:30 Uhr
Rolly2



Das sieht ja lecker aus, wo stöpselst du das an? Direkt an der X6?

VG, Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
166
22.02.2024, 19:49 Uhr
MarioG77

Avatar von MarioG77

Korrekt.

Ich bin am überlegen, ob man das innen irgendwie einfach abzweigen könnte und irgendwo VGA raus führt. Dann könnte man auch Strom vom Netzteil holen und hat nicht extern noch extra was dran.

Einen Pin Header an die X6 innen dran zu löten wird vermutlich nicht einfach.
Denke, auf der Unterseite der Platine ist einfacher abzugreifen.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 22.02.2024 um 19:49 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
167
22.02.2024, 20:07 Uhr
Ordoban



ISR in Assembler ist fertig
Und was soll ich sagen? Perfekt Zuck,- und Flackerfrei.
Ich brauch aber noch etwas, um das in eine gescheite Form zu bringen.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
168
22.02.2024, 20:40 Uhr
Rolly2



Da sind ja genug Aussparungen frei um eine VGA-Buchse zu instalieren. Das habe ich auch so gemacht. Das blöde ist nur, das da was angelötet werden muss. Eine externe Lösung wäre für eventuelle "Nachnutzer" einfacher. Grün als Farbe finde ich schön, reicht mir, macht eure Lösung auch Farbe? Ist ja eine wichtige Frage, denn viele sind von der BWS von Heiko verwöhnt

VG, Andreas

Dieser Beitrag wurde am 22.02.2024 um 20:58 Uhr von Rolly2 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
169
23.02.2024, 08:11 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
ISR in Assembler ist fertig
Und was soll ich sagen? Perfekt Zuck,- und Flackerfrei.
Ich brauch aber noch etwas, um das in eine gescheite Form zu bringen.


Du bist echt der Hammer...


Zitat:
Rolly2 schrieb
Da sind ja genug Aussparungen frei um eine VGA-Buchse zu instalieren. Das habe ich auch so gemacht. Das blöde ist nur, das da was angelötet werden muss. Eine externe Lösung wäre für eventuelle "Nachnutzer" einfacher.


Das Gehäuse habe ich mir im Detail noch nicht so angeschaut.
Ja ich weiß, das mit dem Nachlöten würde intern halt nicht anders gehen - außer man führt wieder Kabel nach außen.
Da bleibt dann aber bei den Nachnutzern u.U. das Problem mit den passenden Buchsen, was man intern nicht hat.

Geplant ist, eine Platine für beide Varianten auszustatten. Ich habe aber hier nur den 1715.
Ich weiß jetzt nicht, wie das bei 7100 aussieht.


Zitat:

Grün als Farbe finde ich schön, reicht mir, macht eure Lösung auch Farbe? Ist ja eine wichtige Frage, denn viele sind von der BWS von Heiko verwöhnt

VG, Andreas


Theoretisch wären 4 Farben (inkl. schwarz - Signale VIDEO, INTENS) denkbar, aber praktisch - wo soll das hier herkommen?
Die Original Karten (1715) unterstützen das ja nicht.

Gedanklich habe ich schon überlegt, ob man das Signal nicht auch Digital, wie beim picoAC1 auskoppeln könnte...
Das wäre dann vermutlich ein billiger BWS Ersatz - sollte theoretisch möglich sein. Ich habe das Konstrukt vom picoAC1 gerade nicht mehr im Kopf, wie das da im Detail gelöst war.

Aber das wäre was für später Mal - für den Moment ist das hier eine sehr gute und günstige Lösung für mich.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
170
23.02.2024, 17:07 Uhr
Ordoban




Zitat:
MarioG77 schrieb
Geplant ist, eine Platine für beide Varianten auszustatten. Ich habe aber hier nur den 1715.
Ich weiß jetzt nicht, wie das bei 7100 aussieht.


Beim 7100 ist das mit "intern" schwierig. Da gibts kaum Platz der für sowas geeignet ist, und auch keine Stellen die für neue Anschlüsse nach außen passen wurden. Außer man opfert einen MMS16-Slot...


Zitat:
Rolly2 schrieb
Grün als Farbe finde ich schön, reicht mir, macht eure Lösung auch Farbe? Ist ja eine wichtige Frage, denn viele sind von der BWS von Heiko verwöhnt

VG, Andreas


Du kannst das in jeder Farbe haben die du möchtest - solange es Grün ist.
Nein mal im Ernst: Die 7100 und 1715 geben 4 Stufen raus: schwarz, dunkel, normal, hell. Das wird mit einer Tabelle auf die VGA-Farben gemappt. Das können alle Farben sein, aber immer nur 4 gleichzeitig. Die Hardware des ESP32S3 unterstützt 16Mio Farben, von denen wir mit der derzeitigen Schaltung nur 64 nutzen. Für mehr brachste nur mehr Widerstände als DA-Wandler.
Edit: nope, sind 16Bit, also nur 64K Farben...


Zitat:
MarioG77 schrieb
Gedanklich habe ich schon überlegt, ob man das Signal nicht auch Digital, wie beim picoAC1 auskoppeln könnte...
Das wäre dann vermutlich ein billiger BWS Ersatz - sollte theoretisch möglich sein. Ich habe das Konstrukt vom picoAC1 gerade nicht mehr im Kopf, wie das da im Detail gelöst war.


Möglich ist viel. Sinnvoll? Eher nicht. Bei dem 7100 wird der gesamte Grafik-Traffic in ASCII über einen einzigen I/O-Port abgewickelt. Da bräuchtest du nur so etwas wie ein Buffer-Register und einen Raspi als Konsole dranzuhängen.

Ich würde als Bauform für den ESP32-VGA-Adapter eine Zwischenstecker-Form bevorzugen. Etwa so:

Die Herausforderung bei diesem Design ist, das mechanisch an der 9er SUB-D Buchse vom 7100/1715 festzukrigen. Einfach nur anstecken ist zu wacklig, ich kenn das von dem CM1910-Adapter.
Den hab ich schließlich mit schmalen Blechstreifen festgeschraubt. Es wäre auch denkbar statt der 9er SUB-D ein kurzes Kabel mit Stecker vorzusehen. Eventuell für die VGA-Seite auch ein abgeschnittenes VGA-Kabel. Dann hätte man ein "im Kabel-Kästsche".

Für das Schaltungsdesign brauchst du für den 7100 nur zu beachten, dass der Open-Kollektor-Ausgänge hat, und deshalb Pull-Up Widerstände braucht. Als Stromversorgung kann man ja ein USB-Netzteil vorsehen. Eine USB-Buchse brauchste zum programmieren sowieso.

Edit:
Nochwas: die main.c wird langsam ganz schön groß und unübersichtlich. Was hälst du davon die nach Funktionen aufzusplitten, z.B. Main, Capture, VGA, OSD, (Wlan).. ?
--
Gruß
Stefan

Dieser Beitrag wurde am 23.02.2024 um 17:27 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
171
23.02.2024, 17:46 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
Beim 7100 ist das mit "intern" schwierig. Da gibts kaum Platz der für sowas geeignet ist, und auch keine Stellen die für neue Anschlüsse nach außen passen wurden. Außer man opfert einen MMS16-Slot...


Ok, dann muss man sich da keine intensiven Gedanken machen.


Zitat:
Du kannst das in jeder Farbe haben die du möchtest - solange es Grün ist.


Der war gut ;-)


Zitat:


Zitat:
MarioG77 schrieb
Gedanklich habe ich schon überlegt, ob man das Signal nicht auch Digital, wie beim picoAC1 auskoppeln könnte...
Das wäre dann vermutlich ein billiger BWS Ersatz - sollte theoretisch möglich sein. Ich habe das Konstrukt vom picoAC1 gerade nicht mehr im Kopf, wie das da im Detail gelöst war.


Möglich ist viel. Sinnvoll? Eher nicht. Bei dem 7100 wird der gesamte Grafik-Traffic in ASCII über einen einzigen I/O-Port abgewickelt. Da bräuchtest du nur so etwas wie ein Buffer-Register und einen Raspi als Konsole dranzuhängen.


Ah ok, das klingt fast banal.
Aber ich hatte da eher nur den 1715 im Sinn.


Zitat:

Ich würde als Bauform für den ESP32-VGA-Adapter eine Zwischenstecker-Form bevorzugen. Etwa so:

Die Herausforderung bei diesem Design ist, das mechanisch an der 9er SUB-D Buchse vom 7100/1715 festzukrigen. Einfach nur anstecken ist zu wacklig, ich kenn das von dem CM1910-Adapter.
Den hab ich schließlich mit schmalen Blechstreifen festgeschraubt. Es wäre auch denkbar statt der 9er SUB-D ein kurzes Kabel mit Stecker vorzusehen. Eventuell für die VGA-Seite auch ein abgeschnittenes VGA-Kabel. Dann hätte man ein "im Kabel-Kästsche".


ok, also ist die mechanische Seite auf jeden Fall mit zu beachten.
Am 1715 kann man das eh vergessen - an dem Stecker bekommst du das mechanisch nicht fest. Da bleibt es bei einem Kasten mit Kabel, wenn extern.


Zitat:

Für das Schaltungsdesign brauchst du für den 7100 nur zu beachten, dass der Open-Kollektor-Ausgänge hat, und deshalb Pull-Up Widerstände braucht.


Ist im Design mit Bedacht. Da das Eingangssignal eh über eine verkabelte Verbindung kommt, kann man das mit einer kleinen Buchse/Pin Header entsprechend vorsehen.


Zitat:

Als Stromversorgung kann man ja ein USB-Netzteil vorsehen. Eine USB-Buchse brauchste zum programmieren sowieso.


Ja so in der Richtung dachte ich auch.
Zusätzlich ein 5V Eingang, wenn man das in den 1715 verpackt.


Zitat:

Edit:
Nochwas: die main.c wird langsam ganz schön groß und unübersichtlich. Was hälst du davon die nach Funktionen aufzusplitten, z.B. Main, Capture, VGA, OSD, (Wlan).. ?


Klingt sinnvoll.
Die Assembler Routine dürfte die Zeilenzahl sicher deutlich vergrößern.

Was hat Assembler mit der Deutschen Bahn gemeinsam?
Die Schienen und Assembler Listings sind nicht besonders breit, aber unheimlich lang.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
172
23.02.2024, 17:58 Uhr
schlaub_01




Zitat:
Ordoban schrieb
Es wäre auch denkbar statt der 9er SUB-D ein kurzes Kabel mit Stecker vorzusehen. Eventuell für die VGA-Seite auch ein abgeschnittenes VGA-Kabel. Dann hätte man ein "im Kabel-Kästsche".



Wäre es da nicht sinnvoll eine Art Adapterkonzept sich auszudenken, was universeller ist? Dann könnte man den VGA Adapter auch für andere Rechner mal später erweitern. Eine einfach IDC Stiftleiste mit Flachbandkabel wäre an der Stelle einfach zu verarbeiten und mit einer vernünftigen Belegung (z.B. Signal, GND, Signal, GND usw.) hat man auch keine Impedanz- und großartigen Störungsprobleme bei kurzen Adapterkabeln. Man könnte dann auch noch ein paar Signale vorsehen, wo man pull-up Widerstände im VGA-Adapter dran macht und am jeweiligen Interface-Stecker die Signale definiert auf GND legt. Dann kann der VGA Adapter automatisch erkennen, was für ein Adapterkabel dran ist. Nur so als Idee...
Ansonsten verfolge ich die Entwicklung schon sehr gespannt und würde das dann auch gerne einsetzen, wenn es mal in "Hardware" gegossen ist.

Viele Grüße,
Sven.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
173
23.02.2024, 18:19 Uhr
MarioG77

Avatar von MarioG77

Ja Sven, das klingt gut.

Ich werde den Entwurf hier posten. Wird noch ein paar Tage dauern. Bin kommende Woche wieder in Hannover. Mal schauen, was mich da Abends so überkommt (hoffentlich keine Arbeit).
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
174
23.02.2024, 20:07 Uhr
Ordoban




Quellcode:

// diese Definition scheint in den Header-Dateien von ESP zu fehlen!
// Definition ab IDF 5.2 verfügbar!
//#define REG_SPI_BASE(i)     (DR_REG_SPI1_BASE + (((i)>1) ? (((i)* 0x1000) + 0x20000) : (((~(i)) & 1)* 0x1000 )))


Muss ich direkt mal updaten


Zitat:
MarioG77
Die Assembler Routine dürfte die Zeilenzahl sicher deutlich vergrößern.


Geht eigendlich. Xtensa Assembler ist ziemlich hässlich aber effektiv und kompakt. Der ISR geht aber eh nicht als inline, muss ne extra Datei sein.


Zitat:
MarioG77
Was hat Assembler mit der Deutschen Bahn gemeinsam?
Die Schienen und Assembler Listings sind nicht besonders breit, aber unheimlich lang.



Ich warte schon auf den Kommentar von Enrico. Ich war übrigends auch selber mal Bahner, hab da gelernt.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
175
23.02.2024, 21:43 Uhr
Enrico
Default Group and Edit


Jetzt werde ich schon wieder angestiftet und vorgeschoben....

Nö, ich wollte schon vorher nicht.
Kann aber zum Treffen ein Stück Schiene als Reaktionsverstärker mit bringen.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
176
24.02.2024, 14:03 Uhr
Ordoban



Ich hab grad mal probiert das Wlan auf dem VGA-Adapter zu starten. Das klappt nicht, da der interne RAM nicht für VGA-Buffer und Wlan-Buffer gleichzeitig ausreicht. Der VGA-Buffer lässt sich zwar in den Externen RAM verschieben, aber der ist dann zu langsam. Schon die Anzeige des OSD klappt nicht. Auf dem Bildschirm ist dann nur noch wüst flimmernder Müll zu sehen. Die Wlan-Buffer kann man verkleinern, dann reicht es aber nicht mehr zur Anmeldung am Router.

Was mich wundert ist, dass die bei VGA32 solche Beschränkungen nicht haben. Wie machen die die Wiedergabe auf VGA?
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
177
24.02.2024, 14:09 Uhr
MarioG77

Avatar von MarioG77

War geflasht, als ich heute früh deinen Push bei github gesehen habe...
Ich brauche noch einen Moment bei meinem Server Projekt, wird später aber auf jeden Fall noch getestet!

Ob da eine Reaktion von Enrico kommt, da war ich auch gespannt.

Ich vermute, bis ich überhaupt eine Gelegenheit hatte, mal nachzuschauen, hast du das mit WLAN auch noch gelöst..
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
178
24.02.2024, 17:38 Uhr
MarioG77

Avatar von MarioG77

Hmm. Bei mir lässt es sich nicht kompilieren.

das fängt an bei:

Quellcode:

C:/projects/esp-1715-vga/components/vga-adapter/osd.c:112:33: error: 'OSD_BUF' undeclared (first use in this function)
  112 |                                 OSD_BUF[b+(pos+a)*7+d*640] = (((1 << d) & c) != 0) ? color : 0x00;
      |                                 ^~~~~~~



Müssen die globalen Variablen/Methoden denn nicht in eine Header Datei ausgelagert werden und die in jeder .c eingefügt werden?

Edit:
ist ja anders... Du includest die .C Dateien.
Der hat die mir automatisch im CMake zum Linken eingetragen und versucht einzeln zu kompilieren.
Ich habe die da wieder rausgeworfen und jetzt hat er kompiliert.

Aber vermutlich sollten wir das sauber machen, da der mir das vermutlich beim nächsten Pull wieder reinwirft.

Edit 2:
Bei mir kommt kein Bild. Bei Ansicht der ISR sehe ich beim "usleep" Bereich den Delay nicht angepasst, vermute ich...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 24.02.2024 um 17:55 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
179
24.02.2024, 18:45 Uhr
Ordoban



Ja, mit den .C als include hast du natürlich Recht. Ich weiß nicht so genau wie das richtig gemacht wird. Mit dem direkten include war halt bei Pascal so üblich

Das mit dem usleep ist eine Änderung der Wirkungsweise: der wartet darauf, dass das Signal wieder High wird, aber maximal 10µs. Wenn es über 10µs war, dann ist es ein VSync, ansonsten HSync. Mit der Methode sollte es ohne Anpassungen für beide Rechner gehen. Du könntest mal gucken, ob der ISR überhaupt ausgelöst wird:

Quellcode:

    movi    a14, (1 << 14)      // Pin 14
    movi    a13, GPIO_OUT_W1TS_REG
    s32i    a14, a13, 0         // auf High
    s32i    a14, a13, 4         // auf Low


Z.B. an Zeile 23, damit müsstest du mit dem Logikanalyzer an Pin 14 einen ganz kurzen Impuls sehen, immer wenn der ISR feuert.

Edit:
Damit sieht man übrigends sehr schön, dass der ISR auch gern mal außerhalb der Reihe feuert. Vermutlich krigt der ESP da wirklich einen kurzen Nadelimpuls auf dem Pin. Bei den Steckbrettern wundert mich nichts mehr...
--
Gruß
Stefan

Dieser Beitrag wurde am 24.02.2024 um 18:50 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
180
24.02.2024, 19:49 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
Ja, mit den .C als include hast du natürlich Recht. Ich weiß nicht so genau wie das richtig gemacht wird. Mit dem direkten include war halt bei Pascal so üblich


Geht ja auch, aber macht man eher nicht...

Kein problem, das kann ich morgen früh hoffentlich schnell(?) anpassen.


Zitat:

Das mit dem usleep ist eine Änderung der Wirkungsweise: der wartet darauf, dass das Signal wieder High wird, aber maximal 10µs. Wenn es über 10µs war, dann ist es ein VSync, ansonsten HSync. Mit der Methode sollte es ohne Anpassungen für beide Rechner gehen. Du könntest mal gucken, ob der ISR überhaupt ausgelöst wird:

Quellcode:

    movi    a14, (1 << 14)      // Pin 14
    movi    a13, GPIO_OUT_W1TS_REG
    s32i    a14, a13, 0         // auf High
    s32i    a14, a13, 4         // auf Low


Z.B. an Zeile 23, damit müsstest du mit dem Logikanalyzer an Pin 14 einen ganz kurzen Impuls sehen, immer wenn der ISR feuert.

Edit:
Damit sieht man übrigends sehr schön, dass der ISR auch gern mal außerhalb der Reihe feuert. Vermutlich krigt der ESP da wirklich einen kurzen Nadelimpuls auf dem Pin. Bei den Steckbrettern wundert mich nichts mehr...


ok, hatte leider nicht viel Zeit für weitere Tests, weil ein Kumpel sich zu Besuch angemeldet hatte.

Schaue ich morgen nochmal. Bin gespannt, wie das ausschaut, wenn es läuft
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
181
25.02.2024, 09:39 Uhr
Ordoban



Ich hab mir mal angeschaut wie VGA32 (bzw. FabGL) das mit der VGA-Ausgabe macht: die nutzen die I2S-Schnittstelle für die VGA-Ausgabe. Damit haben die mehr Möglichkeiten als wir mit dem LCD-Controller. Allerdings ist das mit dem I2S sehr viel komplizierter, und es verbraucht schon viel CPU-Zeit. Ich würde bei dem LCD-Controller bleiben.

Ich würde 2 verschiedene Versionen von der Adapter-Software machen: eine für VGA und eine für Wlan-Streaming. Wer wirklich beides gleichzeitig braucht, kann immer noch 2 von den Adaptern paralell schalten.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
182
25.02.2024, 15:41 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
Ich hab mir mal angeschaut wie VGA32 (bzw. FabGL) das mit der VGA-Ausgabe macht: die nutzen die I2S-Schnittstelle für die VGA-Ausgabe. Damit haben die mehr Möglichkeiten als wir mit dem LCD-Controller. Allerdings ist das mit dem I2S sehr viel komplizierter, und es verbraucht schon viel CPU-Zeit. Ich würde bei dem LCD-Controller bleiben.

Ich würde 2 verschiedene Versionen von der Adapter-Software machen: eine für VGA und eine für Wlan-Streaming. Wer wirklich beides gleichzeitig braucht, kann immer noch 2 von den Adaptern paralell schalten.


Spricht erst Mal nichts dagegen. Vielleicht findet sich ja doch noch eine andere Lösung...
Meine Prio ist da aber derzeit eher ein ordentliches Bild auf dem Monitor.

Ich habe den Code umstrukturiert.
War doch nicht "so schnell" gemacht, wie gedacht.
Er kompiliert und linkt. Zwar mit 2 Warnungen, aber die kommen evtl. auch vom ESP-IDF SDK.
Vorherige Deklaration der osd_task() und capture_task()...

Muss dann gleich nochmal testen, leider noch ohne Bild. Ich werde es heute evtl. nicht mehr schaffen, das zu finden. Morgen geht es wieder für ein paar Tage nach Hannover...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
183
25.02.2024, 17:01 Uhr
MarioG77

Avatar von MarioG77

ok, der Code läuft noch.

Nach Erweiterung der ISR kann ich auf GPIO20 sehen, dass der ISR läuft.

Danach kam jetzt auch so was raus:


Kommt jetzt aber nicht mehr. Der 1715 scheint wieder etwas aus dem Bereich gelaufen zu sein.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
184
25.02.2024, 18:35 Uhr
Ordoban



Sieht aus, als wenn die Trennung Hsync/Vsync nicht richtig geht. Probier mal

Quellcode:

    movi    a12, 48                                // Timeout-Counter (~10µs)


die 48 zu erhöhen. Vielleicht 100?
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
185
26.02.2024, 22:13 Uhr
MarioG77

Avatar von MarioG77

Danke. Probiere ich aus, wenn ich wieder zuhause bin.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
186
26.02.2024, 22:35 Uhr
Ordoban



Ich bin grad am debuggen.
Die 48 ist tatsächlich etwas zu kurz: ~5µs.
Und da sind auch noch paar andere Kleinigkeiten, siehe Pull-Request
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
187
29.02.2024, 18:05 Uhr
Ordoban



Es gibt Fortschritte bei der Wlan-Variante:

Boa, hat mich der ESP gerade auf russisch als "Depp" beschimpft?
Ok, der hat ja Recht. Typ nicht als Text, sondern "image/png" setzen...


Falsche Farbtiefe? Jap, steht auf "Truecolor".


Besser? Oder schlechter? "8-Bit Indexed" erscheint mir auf jeden Fall richtiger.


"Indexed" heißt, es braucht eine Index-Tabelle. Damit sieht es schonmal gut aus.


So, nun hat der A7100 seinen Auftritt.

Das geht aber nur ganz kurz nach dem Reset des ESP32. Nach 1-2 Sekunden stoppt der Capture-Mechanismus. Der DMA-Kontroller wird auch vom Wlan benutzt, und es sieht so aus, als wenn das Betriebssystem uns den DMA-Kanal für das Wlan klaut. Irgendwie muss ich mir einen DMA-Kanal reservieren können.

Das ganze ist für einen Video-Stream auch noch zu langsam. Mit Refresh komme ich auf etwa 2 Frames pro Sekunde.
--
Gruß
Stefan

Dieser Beitrag wurde am 29.02.2024 um 18:13 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
188
29.02.2024, 18:20 Uhr
MarioG77

Avatar von MarioG77

Cool.
Ich bin gerade heim gekommen und musste gleich das letzte Build ausprobieren.
Ich habe jezt wieder ein Bild.
Allerdings fehlt manchmal ein Zeile. Das Bild springt dann einen Teil nach oben.

Für mehr habe ich heute keine Kraft mehr. War eine anstrengende Woche und fahrt...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
189
01.03.2024, 17:00 Uhr
Ordoban




Zitat:
MarioG77 schrieb
Ich habe jezt wieder ein Bild.


schonmal gut.

Zitat:
MarioG77 schrieb
Allerdings fehlt manchmal ein Zeile. Das Bild springt dann einen Teil nach oben.


Das kann eigendlich nur passieren, wenn der Sync-Impuls als Fehlalarm erkannt wird:

Quellcode:

    movi    a14, SYNC_PIN_REG
    movi    a15, SYNC_BIT_VAL
    l32i    a13, a14, 0
    and     a13, a13, a15
    bnez    a13, xt_highint5_L9                     // Signal schon vorbei? War ein Störimpuls! --> Ende!


Ich weiß jetzt nicht, wie dein Aufbau ist, eventuell haste da ab und zu einen starken Einschwingvorgang bei der Low-Flanke. Es ist auch möglich, dass du ein leichtes Übersprechen vom Debug-Pin GPIO14 auf den Interrupt-Pin GPIO45 hast.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
190
01.03.2024, 18:45 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schriebDas kann eigendlich nur passieren, wenn der Sync-Impuls als Fehlalarm erkannt wird:

Quellcode:
    movi    a14, SYNC_PIN_REG
    movi    a15, SYNC_BIT_VAL
    l32i    a13, a14, 0
    and     a13, a13, a15
    bnez    a13, xt_highint5_L9                     // Signal schon vorbei? War ein Störimpuls! --> Ende!

Ich weiß jetzt nicht, wie dein Aufbau ist, eventuell haste da ab und zu einen starken Einschwingvorgang bei der Low-Flanke. Es ist auch möglich, dass du ein leichtes Übersprechen vom Debug-Pin GPIO14 auf den Interrupt-Pin GPIO45 hast.


Naja, wie oben in #164 - fliegend, also alles andere als Optimal.
Schon sehr wahrscheinlich...

Ich habe den Debug PIN aus dem Code herausgenommen.

Das hat es jetzt etwas besser gemacht.

Hier zu sehen, wenn Youtube es freigegeben hat:
https://youtu.be/DMcSTzxDDRY

Edit:
Hier war das Bild leicht wieder aus dem Sync gelaufen... Kommt dann irgendwann wieder klar zurück.
Dieser Abweichung zu folgen, ist im Moment noch die wichtigste Sache...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 01.03.2024 um 18:51 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
191
01.03.2024, 20:44 Uhr
Ordoban



Das Bild springt als Ganzes. Der verliert also nicht Zeilen mittendrin (wie ich das schon öfters hatte), sondern schon ganz am Anfang. Und es sieht so aus, als wenn es immer nur eine einzige Zeile ist.

Ich würde so vorgehen:
1. mehr GPIO's zum debuggen auf Ausgang schalten
2. Diese GPIO's im ISR einen ganz kurzen Impuls machen lassen wenn
a: der kurze Impuls erkannt wird
b: der lange Impuls erkannt wird
3. Mehrmals die Signale mit dem Logikanalyzer angucken
Wird jeder kurze Impuls immer erkannt? Oder vielleicht eine Fehl-Erkennung? Der kurze Impuls zählt die Zeilennummer hoch.
Wird der letzte lange Impuls richtig erkannt? Der setzt die Zeilennummer auf 0.

Ich hab schon eine Idee wie wir die Sache mit dem Sync besser bekommen, dazu muss aber erstmal die Zeilen-Zählung wieder richtig laufen.

Das Ganze läuft auf 80MHz Samplerate hinaus. Das können wir auch für den PC1715 schaffen, aber dazu dürfen wir nicht 8 Bit, sondern nur 4 Samplen. Dann passt die doppelte Länge in den DMA-Buffer, das sollte reichen. Heißt allerdings, dass wir beim Kopieren in den VGA-Buffer mit Bitverschiebungen arbeiten müssen. Das ist dann wieder zu Zeitaufwändig, wir krigen die Zeile nicht so schnell kopiert, wie eine neue kommt. Das ist aber eigendlich gar nicht schlimm. Wir müssen schließlich nicht die 50Hz Framerate schaffen. (oder wieviel auch immer der 1715 oder 7100 machen) Es reichen auch 25 oder 12,5 Hz. Bei jedem Frame nur jede 2. oder 4. Zeile Samplen, dann ist genug Zeit zum kopieren, und beim nächsten Frame dann andere Zeilen.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
192
01.03.2024, 21:29 Uhr
MarioG77

Avatar von MarioG77

Auf dem Video kommt es nicht rüber, aber es passiert auch weiter unten, die oberste Zeile ist bei so was auch fix.
Aber was die Framerate angeht, bin ich voll bei dir. Den Gedanken hatte ich auch bereits.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
193
02.03.2024, 15:57 Uhr
Ordoban



Ich hab das grad mal ausprobiert, prinzipiell funktioniert das mit dem "jede 2. Zeile". (ich nenne es mal "interleave")

Aber: man sieht es.
Bisheriger Modus: https://imoriath.com/downloads/privat/a7100/interleave1-1.MOV

Neuer Modus (immer jede 4. Zeile): https://imoriath.com/downloads/privat/a7100/interleave1-4.MOV

Zoom und Zeitlupe: https://imoriath.com/downloads/privat/a7100/zoom_slow_interleave1-4.mp4
--
Gruß
Stefan

Dieser Beitrag wurde am 02.03.2024 um 15:59 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
194
02.03.2024, 17:58 Uhr
MarioG77

Avatar von MarioG77

Hätte ich nicht gedacht.
Scrollt der im ersten Video weich? Also Pixelzeile für Pixelzeile?
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
195
02.03.2024, 18:23 Uhr
Ordoban




Zitat:
MarioG77 schrieb
Hätte ich nicht gedacht.
Scrollt der im ersten Video weich? Also Pixelzeile für Pixelzeile?


Der scrollt in beiden Videos weich. Der scrollt pro Frame ein Pixel.
Wenn nur jede zweite (bzw vierte) Zeile in jedem zweiten (bzw vierten) Frame eingelesen wird, und es wärenddessen scrollt, dann liest man eine Zeile mehrfach. Dadurch kommt dieser komische Verzerrungs-Effekt zustande.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
196
02.03.2024, 21:08 Uhr
MarioG77

Avatar von MarioG77

Ok, das hatte ich nicht erwartet. Da ist das klar.
Beim 1715 hast du das nicht, daher sollte dieses Problem da nicht so auftreten. Könnte aber vielleicht bei Horizontaler Ausgabe evtl. Etwas auffallen. Müsste man ausprobieren - am besten bei einer Runde Wurmi
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
197
03.03.2024, 11:15 Uhr
Ordoban



Nun habe ich das 80MHz Samping mit 4Bit fertig. Wie zu erwarten braucht das Pixel-Kopieren mehr Zeit.

Zitat:

Die Zeilendauer liegt bei 66µS zu 46µS.


Die aktuelle Pixel-Kopier-Dauer liegt bei 55,74µs, das würde für den PC1715 noch passen. Für den A7100 würde ich dann beim 8Bit Sampling bleiben, da ist das Pixel-Kopieren schneller.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
198
03.03.2024, 12:19 Uhr
MarioG77

Avatar von MarioG77

Super! Teste ich heute Nachmittag.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
199
03.03.2024, 20:17 Uhr
MarioG77

Avatar von MarioG77

Hier mal das Ergebniss:
https://www.youtube.com/watch?v=ghyA9sIl07w

In dem Moment war das Bild halbwegs stabil. Zum Ende hin fing es aber an, sich wieder zu verschieben.

Da sind irgendwie Zeilendopplungen drin. Ich vermute, das hat was mit der Erkennung des Zeilensync/Störimpluses zu tun.

Ich weiß nicht, inwieweit ich da evtl. ein Problem mit der Steckbrett Verdrahtung habe.

Grundsätzlich ist der Interleave Effekt bemerkbar, aber nicht besonders störend.

Leider sind die horizontalen Störungen, wenn Sie da sind, jetzt noch massiver. D.h. die Erkennung passt da noch nicht. Da war die 40MHz Version weniger störend.

Das ist sehr gut erkennbar, wenn der 1715 kalt hochgefahren wird - die Einstellungen sind zur Zeit auf einen Warmzustand optimiert. Ich müsste da morgen nochmal ein Video machen.

Ich werde jetzt etwas intensiver an der Schaltung arbeiten, damit ich externe Einflüsse etwas minimieren kann.
Ich werde den Schaltplan und das Layout kurzfristig hier hochladen.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
200
05.03.2024, 13:54 Uhr
MarioG77

Avatar von MarioG77

Das mit der Schaltung ist vielleicht doch nicht ganz so einfach, wie ich dachte.
Vermutlich müssen wir unterschiedliche GPIO nehmen. Ich weiß nicht genau, wie sich die PullUps der SPI Pins auswirken, wenn ich mit dem Pegelwandler komme.

Ich werde es mal testen, allerdings sind die 330 Ohm doch recht niedrig. Höher geht da nicht?
Das hätte evtl. eine eigene Buchse zur Folge.

Theoretisch kann man den Pegelwandler aber auch weg lassen - was ich so gelesen habe, sagt selbst der Espressif CEO, dass die GPIO 5V tolerant sind. Ausgeben müssen wir auf der Seite nichts, daher spielt der 3,3V Pegel keine Rolle in der anderen Richtung.

Ich muss das wohl nochmal an der Hardware testen...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
201
05.03.2024, 17:14 Uhr
Ordoban



Ja, einfach ist das nicht. Ich hab auch schonmal bissl mit KiCad rumgespielt:



Unterschiedliche GPIO sind kein Problem. Man kann über die Matrix alle GPIO's für alles nehmen. An feste Pin-Funktionen ist man nur gebunden, wenn der Multiplexer benutzt wird. Der Multiplexer kann höhere Frequenzen, für uns reicht die Matrix. Eventuell könnte man irgendwann den Multiplexer probieren, ob der bessere Ergebnisse bringt.

Die 330Ohm müssen schon sein. Die Low-High Flanken sind sonst zu langsam. Die Pixel werden zu kurz. Mit 560Ohm sieht das Signal eher wie Sägezahn aus, mit 470Ohm wie Haifisch. 330Ohm ist auch noch etwas rund, aber einigermaßen OK. Ich würde vielleicht sogar mal 270Ohm probieren. Die Treiber im A7100 sind 74LS38, die können laut Datenblatt 24mA pro Ausgang, das wäre bei 3,3V minimal 137,5Ohm.

Ja, die Wandler könnte man vielleicht weglassen. Das Risiko, den ESP32 zu killen, wäre nicht hoch. Die Dinger gibt es gut zu kaufen, und die sind billig. Die werden bei uns auch nicht 24/7 laufen.
--
Gruß
Stefan

Dieser Beitrag wurde am 05.03.2024 um 17:14 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
202
05.03.2024, 18:09 Uhr
MarioG77

Avatar von MarioG77

Ich habe es gerade ausprobiert...
Den Wandler kann man weglassen. Am 1715 geht das mit den Pullups auch wunderbar.
Sogar der Pegelwandler funktioniert Parallel dran (natürlich ohne Ausgang oder Eingang - je nachdem, welche Variante man nimmt), aber ich würde jetzt sagen, den lässt man weg.

Keep it simple.

Der PC1715 hat laut Schaltplan MH74S73 max. 20mA, da wären wir bei Minimum 165Ohm.
Also im grünen Bereich.

Du bist weiter als ich. Ich glaube, wir brauchen das nicht beide machen...

...außer ich mache eine Einbauvariante für 1715...

Was für einen Spannungswandler hast du im Sinn? Ich dachte so an LM/AMS1117.
Der liefert mehr als genug.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 05.03.2024 um 18:10 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
203
05.03.2024, 18:13 Uhr
felge1966



Der Treiber-IC ist bestimmt ein Zahlendreher und müsste ein 74s37 sein.

Gruß Jörg
--
http://felgentreu.spdns.org/bilder/jacob120.gif
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
204
05.03.2024, 18:26 Uhr
Ordoban



Nope. Bei meinem 7100 sind das definitv 74LS38

--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
205
05.03.2024, 18:54 Uhr
MarioG77

Avatar von MarioG77

Jörg meinte mich. Meiner war ein Zahldendreher. Es ist ein MH74S37.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
206
05.03.2024, 19:11 Uhr
Ordoban




Zitat:
MarioG77 schrieb
Ich habe es gerade ausprobiert...
Den Wandler kann man weglassen. Am 1715 geht das mit den Pullups auch wunderbar.


Man kann die ja bei der Bestückung weglassen. Weniger Stress für die armen alten 74S37.


Zitat:
MarioG77 schrieb
Sogar der Pegelwandler funktioniert Parallel dran (natürlich ohne Ausgang oder Eingang - je nachdem, welche Variante man nimmt), aber ich würde jetzt sagen, den lässt man weg.

Keep it simple.


Jap, weg damit.


Zitat:
MarioG77 schrieb
Du bist weiter als ich. Ich glaube, wir brauchen das nicht beide machen...

...außer ich mache eine Einbauvariante für 1715...


Ich finde das Arbeiten mit KiCad so befriedigend, dass ich auch mal was unsinniges damit mache.


Zitat:
MarioG77 schrieb
Was für einen Spannungswandler hast du im Sinn? Ich dachte so an LM/AMS1117.
Der liefert mehr als genug.


Jap, genau den. Billig und stark. Ich muss von dem SMD-Zeugs alles neu bestellen, ich hab nur Durchsteck-Zeugs auf Lager.


Zitat:
MarioG77 schrieb
Jörg meinte mich. Meiner war ein Zahldendreher. Es ist ein MH74S37.


Achso. Ich hab deinen Post komplett übersehen.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
207
05.03.2024, 19:23 Uhr
Rolly2



Hallo Mario,
die S37 machen max. 48mA, da geht schon was. Das sind echte Leistungstreiben.

VG, Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
208
05.03.2024, 19:26 Uhr
Ordoban



Wow. Der Schweißtravo unter den TTL-IC's.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
209
05.03.2024, 20:07 Uhr
Rolly2



Ich meine den 74s37, nicht den DL037. Da ist schon ein Unterschied! IOL 74s37 = 48mA, DL037 = 24mA.

VG, Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
210
07.03.2024, 19:17 Uhr
MarioG77

Avatar von MarioG77

Hier mal meine Schaltplan Version.
Die Anschlüsse sind etwas flexibler gehalten. Dadurch aber auch größer...


--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
211
07.03.2024, 19:33 Uhr
schlaub_01



Hallo Mario,
der ESP hält wirklich die 5V am Eingang aus? Der 1715 hat zumindest aus meiner Erinnerung TTL Pegel.
Gibt es eigentlich einen Grund für die große ESP Platine. Ich hatte mal so einen ESP32S Mini gesehen, der hat ein wesentlich kleineres Footprint.

Viele Grüße,
Sven.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
212
07.03.2024, 19:40 Uhr
MarioG77

Avatar von MarioG77

Hi Sven,

Viele Diskussionen, aber ja...
https://ba0sh1.com/2016/08/03/is-esp8266-io-really-5v-tolerant/

Der CEO von Espressif hat es selbst gesagt. Weil Bastler aber 5V auf den Spannungseingang gejagt haben, hat man diese Aussage wohl aus den Datenblättern entfernt.

Meiner hat es bisher überlebt.

Wir brauchen hier einen bestimmten ESP32 - den S3. Wir nehmen da schon das Modul. Noch kleiner geht es nur mit dem IC selbst - dann darf man aber sämtliche benötigten Kapazitäten und Induktivitäten selbst auch noch hinzubauen - und muss die Leitungswege streng beachten. Die letzte Elektor Ausgabe hat da einige Infos zu gehabt.
Also viel kleiner geht es hier nicht.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
213
07.03.2024, 20:09 Uhr
Rolly2



Hallo Mario,
funzt das denn am 1715 jetzt? Ich habe hier einen BAS/S-Video-Konverter zu VGA, der hat die gleichen Probleme wie eure Entwicklung. Das Video-Signal des 1715 ist nicht stabil genug.

VG, Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
214
07.03.2024, 20:23 Uhr
MarioG77

Avatar von MarioG77

Noch nicht zu 100%. Im Moment fange ich mit meiner Freiluftverkabelung evtl. noch Störungen ein, was zu einem Verlust der Zeilensync (Springendes Bild durch Verlust einzelner Zeilen hin und wieder) führen könnte.

Prinzipiell habe ich aber ein viel besseres Bild, als mit einer BAS Konvertierung.
Selbst wenn es nicht besser wird als jetzt, würde ich damit leben können.

Aber da ist noch genug Potential. Wir haben das Limit noch nicht erreicht, würde ich sagen.

Primär möchte ich aktuell den Signaleingang optimieren, daher jetzt der Punkt, wo die Hardware angegangen wird - wenigstens als Prototyp.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
215
07.03.2024, 20:31 Uhr
schlaub_01



Hallo Mario,
ich hatte mir den mal besorgt, als ihr angefangen habt:
Aber mangels Zeit komme ich erst mal nicht zu weiteren Tests. Ich fand den super klein und gut zu verarbeiten mit Stiftleisten. Ist aber ein S3.

Viele Grüße,
Sven.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
216
07.03.2024, 20:37 Uhr
Ordoban




Zitat:
schlaub_01 schrieb
Gibt es eigentlich einen Grund für die große ESP Platine. Ich hatte mal so einen ESP32S Mini gesehen, der hat ein wesentlich kleineres Footprint.
Sven.


Ich würde 18x26mm nicht unbedingt als "groß" bezeichnen. Ich hatte mich für den Typ entschieden, weil der recht universell einsetzbar ist. Viele Pins, viel RAM, viel ROM und billig.

Zitat:
schlaub_01 schrieb
Hallo Mario,
ich hatte mir den mal besorgt, als ihr angefangen habt:
Aber mangels Zeit komme ich erst mal nicht zu weiteren Tests. Ich fand den super klein und gut zu verarbeiten mit Stiftleisten. Ist aber ein S3.


Das mit den Stiftleisten ist natürlich ein Pluspunkt. Bei dem restlichen Design hab ich so meine Zweifel. Die ESP32 WROOM's haben nicht ohne Grund einen Blechdekel drauf... und so viel kleiner ist diese Platine auch nicht.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
217
07.03.2024, 20:42 Uhr
schlaub_01



Dann ist da ja noch das große Pad unter der Platine, wenn ich das richtig sehe. Ich hatte so was mal von einem Kollegen zu verlöten. Ohne vernünftige Unterhitze und Lotpaste war da nichts zu machen - dank der Weller Rework Station gings dann aber. Da sind mir Stiftleisten schon lieber, aber ist Geschmackssache. War ja nur eine Anregung, damit auch andere das einfach handhaben können. Bin ja schon froh, dass ihr so weit seid. Mit meiner FPGA Lösung stand ich ja auch vor ähnlichen Problemen. Das Jittern war auch ein großes Thema…

Viele Grüße,
Sven.

Dieser Beitrag wurde am 07.03.2024 um 20:52 Uhr von schlaub_01 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
218
07.03.2024, 20:55 Uhr
Ordoban



Das große Pad ist ausschließlich zur Kühlung. Ich hatte mir auch schon überlegt, ab das nicht beim verlöten ein Problem werden könnte. Im Zweifelsfall gar nicht verlöten, und eher einen kleinen Klecks Wärmeleitpaste drunter machen. Viel Wärme produzieren die ESP32 eh nicht, solange man das Wlan aus lässt.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
219
07.03.2024, 20:57 Uhr
Rolly2



Das wird schon irgendwie machbar sein. Die Größe spielt ja keine Rolle. Es muss zuverlässig an jeden 1715 funktionieren, die Verhalten sich leider in den Video-Signalen alle nicht gleich. Das ist ein großes Problem. Ich habe da und einige Andere, auch schon lange beforscht.
Da bringe ich, auch wenn das nervt, die VGA-Karte von Heiko P. wieder ins Spiel. Die funktioniert wirklich zuverlässig in allen Rechnern, passt auch in den 1715. Ob die in einen 7150/7100 passt, weis ich nicht. Mit heutigen BE könnte die auch wesendlich kleiner ausfallen.
Das aber nur am Rande, ich möchte eure Arbeit nicht beeinträchtigen. Ihr habt Durchhaltevermögen. Respekt!!

VG, Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
220
07.03.2024, 20:58 Uhr
MarioG77

Avatar von MarioG77

Ja das grosse Pad ist nice to have.
Es ist kein Drama, wenn es nicht verbunden ist - was ich so gelesen hatte.
Jedenfalls ist sinnvoll, kein DevKit Monster zu verbauen
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
221
09.03.2024, 22:28 Uhr
Ordoban



Weiß du, was mich ein bischen wundert? Dass bei dir die "Pixel pro Zeile" bei 864.1 die besten Ergebnisse liefert. Üblicherweise wird die Zeilen-Frequenz durch einen Binärzähler aus dem Pixel-Takt gebildet. Das "Pixel pro Zeile" müsste also eher eine ganze Zahl sein.

Ich habe noch etwas anderes festgestellt: Man kann ein ganz leichtes Flimmern des VGA-Bildes sehen, sobald der A7100 an ist. Ich vermute mal, dass die digitalen Video-Signale über die Pull-Up's auf die Spannungsversorgung und damit auf das VGA-Analogsignal übergreifen. Ich hatte bisher gedacht, dass sich das mit Austausch der 78L33 gegen was stärkeres geben würde. Durch meine Experimente mit dem Wlan war die Spannungsversorgung endgültig nicht mehr ausreichend. Ich hab also das Labornetzteil angeschlossen. Zu meiner Überaschung ist das Flimmern mit dem Labornetzteil sogar stärker geworden. Das ist auch von der Spannung abhängig! Bei 3,3V ist das Flimmern am stärksten, bei 3,0V ist es nicht mehr wahrnehmbar, unter 2,8V kommt es dann wieder.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
222
10.03.2024, 11:15 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Rolly2schrieb
Das wird schon irgendwie machbar sein. Die Größe spielt ja keine Rolle. Es muss zuverlässig an jeden 1715 funktionieren, die Verhalten sich leider in den Video-Signalen alle nicht gleich. Das ist ein großes Problem. Ich habe da und einige Andere, auch schon lange beforscht.
Da bringe ich, auch wenn das nervt, die VGA-Karte von Heiko P. wieder ins Spiel. Die funktioniert wirklich zuverlässig in allen Rechnern, passt auch in den 1715. Ob die in einen 7150/7100 passt, weis ich nicht. Mit heutigen BE könnte die auch wesendlich kleiner ausfallen.
Das aber nur am Rande, ich möchte eure Arbeit nicht beeinträchtigen. Ihr habt Durchhaltevermögen. Respekt!!


Danke. Ich habe mich auch gefragt, ob es vielleicht einen Weg direkt am Bus - mit dem Aufwand wie beim picoAC1 gibt. Ich müsste mir das nochmal anschauen... Zu viele andere Dinge noch drumherum...


Zitat:
Ordoban schrieb
Weiß du, was mich ein bischen wundert? Dass bei dir die "Pixel pro Zeile" bei 864.1 die besten Ergebnisse liefert. Üblicherweise wird die Zeilen-Frequenz durch einen Binärzähler aus dem Pixel-Takt gebildet. Das "Pixel pro Zeile" müsste also eher eine ganze Zahl sein.


Müsste ich mir nochmal anschauen. Du hast diesen Code so schnell so massiv geändert, da bin ich noch nicht hinterhergekommen...


Zitat:
Ich habe noch etwas anderes festgestellt: Man kann ein ganz leichtes Flimmern des VGA-Bildes sehen, sobald der A7100 an ist. Ich vermute mal, dass die digitalen Video-Signale über die Pull-Up's auf die Spannungsversorgung und damit auf das VGA-Analogsignal übergreifen. Ich hatte bisher gedacht, dass sich das mit Austausch der 78L33 gegen was stärkeres geben würde. Durch meine Experimente mit dem Wlan war die Spannungsversorgung endgültig nicht mehr ausreichend. Ich hab also das Labornetzteil angeschlossen. Zu meiner Überaschung ist das Flimmern mit dem Labornetzteil sogar stärker geworden. Das ist auch von der Spannung abhängig! Bei 3,3V ist das Flimmern am stärksten, bei 3,0V ist es nicht mehr wahrnehmbar, unter 2,8V kommt es dann wieder.


Ich muss sagen, dass mir ein Flimmern überhaupt nicht aufgefallen ist.
Aktuell arbeite ich mit einem DevKit - das müsste einen AMS1117 als Regler haben.

Wenn das Bild stabil war, war es einwandfrei.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
223
10.03.2024, 20:14 Uhr
MarioG77

Avatar von MarioG77

So, Platine ist fertig.
Habe nur kleinere Schaltungsanpassungen gemacht...




--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 10.03.2024 um 20:16 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
224
10.03.2024, 20:46 Uhr
Ordoban



Sieht gut aus.

Hattest du die Schaltung mit D1001 und D1002 ausprobiert? Ich hatte das in meiner Stecker-Version auch drin, hat aber nicht funktioniert. Der Spannungsabfall über die Dioden war zu groß. Deshalb später mit Jumper/Lötbrücken.

Gibt es USB-Buchsen mit diesem Footprint bei Reichelt? Edit: Und kann man die von Hand löten?
--
Gruß
Stefan

Dieser Beitrag wurde am 10.03.2024 um 20:47 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
225
11.03.2024, 08:20 Uhr
MarioG77

Avatar von MarioG77

Hmm... Laut Datenblatt sollte das noch im Bereich des machbaren liegen.
Der AMS1117 sollte bis runter auf 4,5V 3,3V liefern. Die 1N5819 sollte mit einem UF 0,34V (lt. reichelt) noch im sicheren Bereich liegen. Getestet habe ich das noch nicht. Dafür ist das ja jetzt ein Prototyp.

...Mist, ich sehe gerade die 1N5819 ist eine THT (DO-41)... Die (nachträglich geänderte) SMD Varianten haben einen zu hohen Spannungsabfall.

Das ändere ich nochmal, bleibt bei der 1N5819 - Notfalls kann man das beim Test brücken.

Ich hatte die hier gefunden und einen Footprint gewählt, der ähnlich aussieht:
https://www.reichelt.de/micro-usb-einbaubuchse-typ-ab-5-pol-smd-mic-usb-abbu-p155040.html?&trstct=pol_0&nbc=1

Ich habe einen Sortimentskasten mit USB Buchsen. Ich will da schauen, ob da was passendes drin ist.
Eigentlich wollte ich eine USB-C Buchse nehmen, da hat reichelt aber nur einen Typ mit 16 Pin drin - ich schätze, der dürfte deutlich schlechter zu löten sein.
Alternativ wäre noch eine alte USB-B Buchse möglich (hatte ich zuerst gewählt, dann aber gewechselt).

Ich prüfe jedenfalls den Footprint nochmal.

Bei Reichelt werde ich sowieso nochmal was nach ordern müssen, schätze ich, aber im Moment ist mein Warenkorb noch nicht angefangen.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 11.03.2024 um 08:20 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
226
11.03.2024, 19:28 Uhr
MarioG77

Avatar von MarioG77

ok, nach der Kontrolle meines Sortiments nehme ich lieber eine USB B Buchse...
Die Micro (oder auch die USB-C) von reichelt geht nicht ohne Mikroskop.

Eher geht eine 6polige USB-C Buchse, gibt es nicht bei reichelt, aber bei TME oder mouser...

Edit:
ach nee, geht auch nicht - die machen nur Spannung. Also muss ich doch nochmal umbauen, weil die Buchse vom Platz da nicht passt.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 11.03.2024 um 19:43 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
227
12.03.2024, 18:54 Uhr
MarioG77

Avatar von MarioG77

Ok, überarbeitet!
Etwas aufgeräumter...



--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
228
12.03.2024, 19:42 Uhr
Ordoban



Ganz klares "Like" !
Mit USB-A...? So was müsst ich sogar noch irgendwo rumliegen haben. Im Zweifelsfall kann man immer noch ein USB-Kabel abscheiden, und direkt in die Löcher löten. Sowas geht bei SMD nicht.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
229
13.03.2024, 08:22 Uhr
MarioG77

Avatar von MarioG77

Danke. Die Buchse ist USB-B - das andere Ende vom USB A Kabel...
Ja, das sollte man mit einem abgeschnittenen Kabel Notfalls auch hinbekommen.

Für die VGA Buchse habe ich einen anderen Footprint genommen (TE_1-1734530-1). Der sollte besser zu den verfügbaren VGA Buchsen passen.

Ich will jetzt noch zusehen, dass ich die Netzteil Platine fertig bekomme und dann bis Ende des Monats hoffentlich bestelle.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
230
17.03.2024, 17:42 Uhr
MarioG77

Avatar von MarioG77

Zwischendurch habe ich heute endlich mal die MON Karte vom 1834 anschließen können.



Ja, das sieht auf den ersten Blick schrecklich aus.
Es kommt immerhin ein Sync Zustande - was er da erkennt liegt ziemlich sicher am 5m ungeschirmten RS232 Kabel, weil ich gerade schnell nicht näher an den Rechner kam.

...also doch noch schnell umgebaut...


Das sieht doch deutlich nach einem Signal aus...

Ich habe da noch nicht die perfekten Bildeinstellungen gefunden, werde ich wohl auch erst probieren, wenn die Platine gebaut ist. Ich weiß aber, dass das auch geht...
Vielleicht schaffe ich diese Woche, Abends die andere Platine fertig zu bekommen...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
231
28.03.2024, 12:17 Uhr
MarioG77

Avatar von MarioG77

Prototyp Platine ist geordert. Nach Ostern kann das dann weitergehen.

@Ordoban:
Stefan, ich würde dir davon 2 zusenden, wenn sie da sind.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
232
28.03.2024, 16:51 Uhr
Ordoban



Cool
Könntest du eine Bauteilliste posten? Kann kann ich schonmal bestellen was fehlt.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
233
28.03.2024, 16:55 Uhr
MarioG77

Avatar von MarioG77

Ja, macht Sinn. Suche die genauen Bezeichnungen übers Wochenende raus.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
234
01.04.2024, 19:35 Uhr
MarioG77

Avatar von MarioG77

Sorry, bisschen Spät, aber immerhin - endlich die BOM:


Quellcode:

Reference    Value    Footprint    Qty    mouser    reichelt
C1001    47µ    Capacitor_Tantalum_SMD:CP_EIA-3528-21_Kemet-B_Pad1.50x2.35mm_HandSolder    1    581-TAJB476M010SNJ    TPS 3225 47/10
C1002    10µ    Capacitor_Tantalum_SMD:CP_EIA-3528-21_Kemet-B_Pad1.50x2.35mm_HandSolder    1    80-T491B106M020    TAJ 3528 10/20
D1001,D1002    1N5819    Diode_THT:D_DO-41_SOD81_P7.62mm_Horizontal    2    637-1N5819    1N 5819
D1003    LED    LED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolder    1    645-597-5411-407NF    SMD-LED 0805 GE
J1001    IDC10_VIDEO_IN    Connector_IDC:IDC-Header_2x05_P2.54mm_Vertical    1    710-61201021621    WSL 10G
J1002    VGAOUT    00esp32vga-footprints:TE_1-1734530-1    1    HD 15FW    571-2311763-1
J1003    USB_B    Connector_USB:USB_B_Lumberg_2411_02_Horizontal    1    USB BW    179-UJ2-B-HR-G-TH
J1004    KEYPAD    Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical    1        
J1005    IDC16_VGAOUT    Connector_IDC:IDC-Header_2x08_P2.54mm_Vertical    1    710-61201621621    WSL 16G
JP1001    BOOT    Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_Vertical    1        
R1001    300    Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder    1        
R1002,R1003,R1011    330    Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder    3        
R1004,R1006,R1008    1K    Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder    3        
R1005,R1007,R1009    470    Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder    3        
R1010    10K    Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder    1        
SW1001    RST    Button_Switch_SMD:SW_Push_1P1T_NO_6x6mm_H9.5mm    1    653-B3FS-1002P    TASTER 9313
U1001    ESP32-S3-WROOM-1    PCM_Espressif:ESP32-S3-WROOM-1    1    356-ESP32S3WRM1UN8R8    ESP32S3WRM1N8R8
U1002    LM1117MP-3.3    Package_TO_SOT_SMD:SOT-223-3_TabPin2    1    926-LM1117MPX3.3NOPB    LM 1117 MPX-3.3



Die Widerstände und Jumper Pin Header habe ich jetzt nicht noch rausgesucht.
Bei den Bestellnummern der Tantal Cs bin ich mir nicht 100% sicher - ich hoffe die passen dann so.

Die Platinen sind heute auf den Weg gegangen. Müssten vermutlich Anfang nächste Woche kommen, bin dann aber erst Mal in Hannover. Werde also vermutlich frühestens Ende nächster Woche mehr wissen.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
235
02.04.2024, 18:41 Uhr
Ordoban



Besser spät als nie. Danke, Bestellung ist raus
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
236
05.04.2024, 19:53 Uhr
MarioG77

Avatar von MarioG77

So, Platinen sind da.
Basis ist bestückt, muss nur noch der ESP drauf.
Hatte nicht die richtige Lötspitze drauf, werde das morgen mit Heißluft festblasen...




Es sollten noch Markierungen für die Polarität (Cs, LED) drauf und die Abstände für die Dioden größer gemacht werden.

Aber sonst bin ich mit dem Prototyp bis jetzt zufrieden.
Muss dann noch funktionieren...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
237
06.04.2024, 14:36 Uhr
MarioG77

Avatar von MarioG77

Und läuft auf Anhieb:



Jetzt kann man mit der Softwareoptimierung weiter machen.
Vom Gefühl her ist das Bild jetzt etwas stabiler geworden.
Es geht aber immer noch Mal ein Zeilensync verloren.
Horizontal schwankt die Qualität auch noch von Einwandfrei zu schwimmenden Pixeln.

Wobei jetzt nach 10 Minuten Betrieb vom 1715 scheint das Stabil zu sein, was den Zeilensync angeht.
Ich muss die Horizontale Drift noch etwas beobachten...

Edit...
Also es scheint jetzt ein stabiles Bild zu sein.
In der Mitte scheinen einige Spalten Minimal (gleichmäßig, 1 Pixel - man sieht es wenn man genau hinschaut) zu schwanken.
Müsste man schauen, ob das an einem anderen Monitor auch so wäre.

Eine Runde Ladder ging recht entspannt. Abgesehen vielleicht vom Interlacing, was man da, oder beim DIR scrollen schon Mal sehen kann.
Am besten mache ich da Mal wieder ein Video, wird aber erst nächstes Wochenende.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 06.04.2024 um 14:54 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
238
07.04.2024, 12:44 Uhr
Ordoban



Ooookay, dann weiter mit der Software
Du könntest mal probieren, in den ISR zwischen die Blöcke "Register sichern" und "Signal schon vorbei?" ein paar "nop" rein zu setzen. Damit gibt man dem Signal etwas mehr Zeit zum Einschwingen.

Du könntest auch mal probieren, ob beim 1715 Interleave 1:1 geht, den Parameter "INTERLEAVE_MASK" in der main.h auf 0 stellen.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
239
07.04.2024, 18:48 Uhr
MarioG77

Avatar von MarioG77

Nur ein schneller Test...

Rechner war jetzt kalt, musste Horizontal minimal nachjustieren.
Kein Zeilenspringen
Interleaving ist auch weg...

Intensiver kann ich erst nächstes Wochenende testen.

Jetzt fetzt Ladder wirklich...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 07.04.2024 um 18:53 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
240
13.04.2024, 10:25 Uhr
Ordoban



Fertig aufgebaut, und funktioniert perfekt. Das leichte Flimmern vom Steckbrett-Aufbau ist auch weg.


4 winzige Details, für die finale Version:
- in der Nähe vom J1001 Pin 1 ist ein VIA zu viel.
- die Leiterbahnen zwichen den beiden Schottky-Dioden und USB / J1001 sollten auch etwas dicker sein.
- die Testpunkte TP1001 und TP1002 vielleicht als Loch ausführen. Wenn man da den Logikanalyzer/Oszi anschließen will, dann muss man was anlöten, und das ist bei einer einfachen Kontaktfläche vielleicht etwas labil. Da reißt man schnell das Pad ab.
- eine Status-LED an einem GPIO wär noch nice.

Dann ist mir bei der Inbetriebnahme/Prüfung noch was aufgefallen: das VIDEO-Pin hat nur ca. 1V, durch den Pullup sollte das 3,3V haben. Stellt sich heraus, dass der SPI-PIN 0 im Ruhezustand als Ausgang geschaltet ist. Damit würde es zwischen Grafikkarten-TTL-Ausgang und ESP32 einen Kurzschluss geben. SPI sendet normalerweise über diesen Pin als erstes die Adresse, dann Daten an den Slave, schaltet den dann auf Eingang und empfängt Daten. Wir haben das Senden der Adresse und von Daten deaktiviert, aber der Pin ist trotzdem am Anfang auf Ausgang. Das ist im Normalbetrieb weniger ein Problem, da der Pin fast die ganze Zeit ein Eingangspin ist. In wie weit das im 8-Bit SPI-Modus auch ist, hab ich noch nicht ausprobiert.
Als Lösung würde ich vorschlagen Statt der SPI-Pins 0-2 die SPI-Pins 1-3 zu nutzen. Die scheinen die ganze Zeit auf Eingang zu stehen. Funktionieren tut das, PUSH-Request kommt...

Dann wäre die Frage nach dem Interleaving. Wenn der 1715 das bei 80MHz Sampling durch die längere Zeilenzeit doch nicht braucht, dann können wir das auch wieder komplett rauswerfen, oder per default inaktiv lassen.
Wie sieht es denn beim 1834 aus? Ist der vom Timing wie der 1715 oder eher wie der 7100? Oder irgendwas dazwischen?
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
241
13.04.2024, 13:13 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
Fertig aufgebaut, und funktioniert perfekt. Das leichte Flimmern vom Steckbrett-Aufbau ist auch weg.



Super, das freut mich!


Zitat:
4 winzige Details, für die finale Version:
- in der Nähe vom J1001 Pin 1 ist ein VIA zu viel.


Die Vias sollen die Masseflächen verbinden - damit wir eine bessere Abschirmung haben, habe ich alle freien Flächen mit einer Masse CU Schicht versehen.


Zitat:
- die Leiterbahnen zwichen den beiden Schottky-Dioden und USB / J1001 sollten auch etwas dicker sein.


Ja stimmt. Ich will nochmal schauen, ob ich da nicht auch passende SMD Dioden finde.


Zitat:
- die Testpunkte TP1001 und TP1002 vielleicht als Loch ausführen. Wenn man da den Logikanalyzer/Oszi anschließen will, dann muss man was anlöten, und das ist bei einer einfachen Kontaktfläche vielleicht etwas labil. Da reißt man schnell das Pad ab.


Guter Einwand.
Ich würde dann auch einen Pin Header für Masse hinzufügen.


Zitat:

- eine Status-LED an einem GPIO wär noch nice.


Hab ich mir auch schon gedacht. Das sollten wir definieren. Man könnte ja auch evtl. einen Sync Indikator hinzufügen.

Die Vorwiderstände sollte man vielleicht auch erhöhen. Es kommt da ja auch nicht auf Helligkeit an. Auf der ATX Platine sieht man die auch bei 5,2k noch.


Zitat:
Dann ist mir bei der Inbetriebnahme/Prüfung noch was aufgefallen: das VIDEO-Pin hat nur ca. 1V, durch den Pullup sollte das 3,3V haben. Stellt sich heraus, dass der SPI-PIN 0 im Ruhezustand als Ausgang geschaltet ist. Damit würde es zwischen Grafikkarten-TTL-Ausgang und ESP32 einen Kurzschluss geben. SPI sendet normalerweise über diesen Pin als erstes die Adresse, dann Daten an den Slave, schaltet den dann auf Eingang und empfängt Daten. Wir haben das Senden der Adresse und von Daten deaktiviert, aber der Pin ist trotzdem am Anfang auf Ausgang. Das ist im Normalbetrieb weniger ein Problem, da der Pin fast die ganze Zeit ein Eingangspin ist. In wie weit das im 8-Bit SPI-Modus auch ist, hab ich noch nicht ausprobiert.
Als Lösung würde ich vorschlagen Statt der SPI-Pins 0-2 die SPI-Pins 1-3 zu nutzen. Die scheinen die ganze Zeit auf Eingang zu stehen. Funktionieren tut das, PUSH-Request kommt...


Gut, passe ich an.

Zitat:
Dann wäre die Frage nach dem Interleaving. Wenn der 1715 das bei 80MHz Sampling durch die längere Zeilenzeit doch nicht braucht, dann können wir das auch wieder komplett rauswerfen, oder per default inaktiv lassen.


Ja, sehe ich kein Problem.

Zitat:
Wie sieht es denn beim 1834 aus? Ist der vom Timing wie der 1715 oder eher wie der 7100? Oder irgendwas dazwischen?


Eher 7100 - das habe ich beim Test vom Steckbrett in dem Modus betrieben, aber noch nicht mit der Platine. Signalausgang hier TTL/Open collector

Die Werte weichen etwas ab.
Nochmal zusammenfassend:
A7100

Quellcode:

640x400 / 80x25 (8x16) / 50,3Hz
Punktschreibzeit: 62nS
Linienschreibzeit: 40µS
Linienrücklaufzeit: 6µS
Horizontalablenkung: 21,74kHz
Punktfrequenz: 16MHz



EC1834-MON - es gibt unterschiedliche Einstellungen je nach Monitor (3.20, Alpha 1, K7229.24, K7228.1, IBM)

Quellcode:

720x350 / 80x25 (9x14) / 50..60Hz
Punktschreibzeit: 55,5nS
Linienschreibzeit: 40µS
Linienrücklaufzeit: ~5µS
Horizontalablenkung: 18,4..21,74kHz
Punktfrequenz: 18MHz



Einstellung Monitor am MON Adapter (Brücke am DB9 Stecker zu Pin 1/2 (GND)):

Quellcode:

Pin    K7228.1 | MON 3.20 | K7229.24/Alpha 1 | IBM
3         x                                     x
4                                               x
5                   x                           x


Das hat vielleicht Auswirkungen auf die Signalparameter. Ich habe das im Detail noch nicht gefunden.

Ich denke, das braucht vielleicht weitere Anpassungen in einem eigenen Modus.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 13.04.2024 um 13:15 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
242
13.04.2024, 13:37 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
Dann ist mir bei der Inbetriebnahme/Prüfung noch was aufgefallen: das VIDEO-Pin hat nur ca. 1V, durch den Pullup sollte das 3,3V haben.

Stellt sich heraus, dass der SPI-PIN 0 im Ruhezustand als Ausgang geschaltet ist. Damit würde es zwischen Grafikkarten-TTL-Ausgang und ESP32 einen Kurzschluss geben.

SPI sendet normalerweise über diesen Pin als erstes die Adresse, dann Daten an den Slave, schaltet den dann auf Eingang und empfängt Daten. Wir haben das Senden der Adresse und von Daten deaktiviert, aber der Pin ist trotzdem am Anfang auf Ausgang. Das ist im Normalbetrieb weniger ein Problem, da der Pin fast die ganze Zeit ein Eingangspin ist. In wie weit das im 8-Bit SPI-Modus auch ist, hab ich noch nicht ausprobiert.

Als Lösung würde ich vorschlagen Statt der SPI-Pins 0-2 die SPI-Pins 1-3 zu nutzen. Die scheinen die ganze Zeit auf Eingang zu stehen. Funktionieren tut das, PUSH-Request kommt...



Ich sehe gerade, dass ist nur eine interne Änderung am Code, keine Schaltungsänderung. Umso besser...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
243
13.04.2024, 13:49 Uhr
Ordoban




Zitat:
MarioG77 schrieb
Die Vias sollen die Masseflächen verbinden - damit wir eine bessere Abschirmung haben, habe ich alle freien Flächen mit einer Masse CU Schicht versehen.


ich meine das hier:


Zitat:
MarioG77 schrieb
Hab ich mir auch schon gedacht. Das sollten wir definieren. Man könnte ja auch evtl. einen Sync Indikator hinzufügen.


Ja, genau dafür. Oder einen WLAN-Connect, wenn es irgendwann doch damit klappen sollte.


Zitat:
MarioG77 schrieb
Die Vorwiderstände sollte man vielleicht auch erhöhen. Es kommt da ja auch nicht auf Helligkeit an. Auf der ATX Platine sieht man die auch bei 5,2k noch.


Du meinst die Widerstände im VGA? Die sind so ausgerechnet, dass die bei 75 Ohm Terminierung maximal 1V rausbringen. Es kann natürlich sein, dass bestimmte Monitore höhere Werte bei der Terminierung drin haben. Bei meinem Dell Moni sind 470Ohm / 1K gut.


Zitat:
MarioG77 schrieb
Eher 7100 - das habe ich beim Test vom Steckbrett in dem Modus betrieben, aber noch nicht mit der Platine. Signalausgang hier TTL/Open collector

Die Werte weichen etwas ab.
...
EC1834-MON - es gibt unterschiedliche Einstellungen je nach Monitor (3.20, Alpha 1, K7229.24, K7228.1, IBM)

Quellcode:

720x350 / 80x25 (9x14) / 50..60Hz
Punktschreibzeit: 55,5nS
Linienschreibzeit: 40µS
Linienrücklaufzeit: ~5µS
Horizontalablenkung: 18,4..21,74kHz
Punktfrequenz: 18MHz




Sind das wirklich 720 Pixel horizontal? Ergs. Dann müssen wir das im VGA-Setup und im Pixelkopier berücksichtigen. Zur Zeit ist überall fest 640 eingestellt.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
244
13.04.2024, 13:56 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
ich meine das hier:


Den habe ich gar nicht (mehr) drin. Möglich, dass der noch in dem ersten Entwurf war.
KiCad hatte gemeckert, dass er da ein paar Flächen nicht verbinden konnte.


Zitat:

Zitat:
MarioG77 schrieb
Hab ich mir auch schon gedacht. Das sollten wir definieren. Man könnte ja auch evtl. einen Sync Indikator hinzufügen.

Ja, genau dafür. Oder einen WLAN-Connect, wenn es irgendwann doch damit klappen sollte.


Und vielleicht ja noch weitere, wenn das Sinn ergibt.

Zitat:

Zitat:
MarioG77 schrieb
Die Vorwiderstände sollte man vielleicht auch erhöhen. Es kommt da ja auch nicht auf Helligkeit an. Auf der ATX Platine sieht man die auch bei 5,2k noch.


Du meinst die Widerstände im VGA? Die sind so ausgerechnet, dass die bei 75 Ohm Terminierung maximal 1V rausbringen. Es kann natürlich sein, dass bestimmte Monitore höhere Werte bei der Terminierung drin haben. Bei meinem Dell Moni sind 470Ohm / 1K gut.


Ich meinte die LEDs

Zitat:

Zitat:
MarioG77 schrieb
Eher 7100 - das habe ich beim Test vom Steckbrett in dem Modus betrieben, aber noch nicht mit der Platine. Signalausgang hier TTL/Open collector

Die Werte weichen etwas ab.
...
EC1834-MON - es gibt unterschiedliche Einstellungen je nach Monitor (3.20, Alpha 1, K7229.24, K7228.1, IBM)

Quellcode:

720x350 / 80x25 (9x14) / 50..60Hz
Punktschreibzeit: 55,5nS
Linienschreibzeit: 40µS
Linienrücklaufzeit: ~5µS
Horizontalablenkung: 18,4..21,74kHz
Punktfrequenz: 18MHz



Sind das wirklich 720 Pixel horizontal? Ergs. Dann müssen wir das im VGA-Setup und im Pixelkopier berücksichtigen. Zur Zeit ist überall fest 640 eingestellt.


9*80 ergibt das. Ich wüsste nicht, wie es sonst anders sein kann.
Es würde exakt MDA/Hercules Auflösung entsprechen.
Also, sollten wir wohl in Betracht ziehen.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
245
14.04.2024, 15:30 Uhr
MarioG77

Avatar von MarioG77

Hab jetzt endlich deine neue SW Version am 1715 testen können.
Irgendwie scheint es ein Problem zu geben, den VGA RAM zu löschen.
Wenn ich den Filecommander verlasse und CLS starte, wird nur jede 2. Zeile gelöscht.

Das neue Menü finde ich gut.
Ich habe noch keinen näheren Blick in deinen Code geworfen.
Ich will mir schnell ein Kabel für den 1834 bauen und das Testen...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
246
14.04.2024, 16:41 Uhr
Ordoban



Unschön. Wie sieht denn das Signal an TP_SPI und TP_COPY aus?
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
247
14.04.2024, 18:56 Uhr
MarioG77

Avatar von MarioG77

Die Signale muss ich mir nochmal anschauen...

Hatte gerade noch eine Fahrrad Tour eingeschoben....

Beim 1834 kam auch kein Bild raus. Ich will meinen Adapter noch ausschließen. Ich versuche den zuerst am Steckbrett und schaue mir die A7100 Parameter nochmal an.
Da war ja schon mehr zu sehen, als jetzt (nur ein paar Pixel in einer Zeile).

Edit:
Ach ich bin doch blöd... Ich habe die Open collector pull Ups noch nicht drauf gelötet...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 14.04.2024 um 19:19 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
248
14.04.2024, 19:52 Uhr
MarioG77

Avatar von MarioG77

Ok, beim 1834 sieht es aktuell so aus (766.2, 82.25, 9)...


Da muss ich die Parameter noch herausfinden. Dazu muss ich aber erst schauen, warum er nicht von der CF Karte booten will...
Scheinbar wird er gerade warm... Das Bild hat sich leicht geändert.

Beim 1715 war das der Stand:


Ich schaue morgen nach den Signalen.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
249
15.04.2024, 19:43 Uhr
MarioG77

Avatar von MarioG77

Mit dem Oszi bekomme ich das nicht gut aufgezeichnet. Ich werde morgen den Logic Analyzer nehmen. Der ist nicht Ideal, aber grob wird das passen.

Für mich sieht es aber so aus, als ob er nicht mehr jeden Zeilensync mitbekommt.


Nach einem Reset sieht das Bild einwandfrei aus, aber das war es dann anscheinend auch.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
250
15.04.2024, 21:00 Uhr
Ordoban



Der Logikanalyzer ist sogar besser für sowas. Längere Aufzeichnungszeit, mehr Kanäle.

Das sieht ganz nach zu langsamer Kopierscheife aus. Das hat genau so einen Effekt.
Bist du sicher, dass du in #239 tatsächlich das Interleaving deaktiviert hattest, und der Bildaufbau vollständig funktioniert hat?


Der Platine fehlt noch ein Gehäuse.

Eine Box von einem Kugelschreiber-Set. Hübsch...

...aber etwas zu groß.


Keine Ahnung was da mal drin war. Eine Uhr? Ein Orden? Auf jeden Fall eine schöne Kiste.

Und passt perfekt.


Ok, reicht für heute.
--
Gruß
Stefan

Dieser Beitrag wurde am 15.04.2024 um 21:01 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
251
16.04.2024, 08:00 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
Der Logikanalyzer ist sogar besser für sowas. Längere Aufzeichnungszeit, mehr Kanäle.

Das sieht ganz nach zu langsamer Kopierscheife aus. Das hat genau so einen Effekt.
Bist du sicher, dass du in #239 tatsächlich das Interleaving deaktiviert hattest, und der Bildaufbau vollständig funktioniert hat?


Ich hab wunderbar Ladder gespielt

Ich hatte mir die Code Änderungen angesehen - sehr viel war es da ja nicht.
Ich probiere auch nochmal die vorige Version...

Zitat:

Der Platine fehlt noch ein Gehäuse.


Bei mir tun es im Moment Platinenabstandshalter.
Für ein Gehäuse fehlt die endgültige Version....

Aber der Formfaktor passt wunderbar Hochkant an die Rückfront eines 1715 geschraubt - direkt neben die Video Buchse. Das war nicht mal geplant...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
252
16.04.2024, 18:51 Uhr
Ordoban



Eingedost is:


Bei den letzten Löchern hatte ich keinen passenden Bohrer in meinem normalen Werkzeug. Kein Problem, ich hab noch ne riesen Tüte mit alten Bohrern aus der Werkstatt meines Großvaters. Tatsächlich etwas passendes gefunden, ist auch noch scharf. Gebohrt. Gewundert: wieso bohrt das so schlecht? Duch das bischen Plastik sollte der durchgehen wie durch Butter. Noch mehr gewundert: die Wendel dieses Bohrers sind falsch rum!
Kurios! Ein Bohrer mit "Linksgewinde"!

(rechts daneben zum Vergleich ein normaler Bohrer)
--
Gruß
Stefan

Dieser Beitrag wurde am 16.04.2024 um 18:53 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
253
16.04.2024, 19:28 Uhr
MarioG77

Avatar von MarioG77

LOL...
Die Dose sieht doch super aus, insbesondere für einen Prototyp...

Heute wirds nichts mehr mit Aufzeichnen... Ich musste den Mast der SAT Schüssel wieder befestigen. Die Rohrschelle hat heute nacht beim "Sturm" endgültig den Geist aufgegeben. Musste erst wieder gerichtet werden, damit die Damen des Hauses beschäftigt sind...

Ich probiere jetzt zumindest noch die alte Softwareversion neu...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
254
16.04.2024, 20:12 Uhr
MarioG77

Avatar von MarioG77

Bild ist Super, bei deinem Commit vom 3.3., da ist ABG_Interleave bei mir auf 0, sieht aber irgendwie trotzdem leicht nach interleave aus...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
255
16.04.2024, 21:03 Uhr
Ordoban



Hmmmm.

Das Problem mit einer zu langsamen Kopierschleife ist, dass bei Beginn einer Zeile die vorletzte noch nicht fertig kopiert ist. Es ist also kein DMA-Puffer frei, und die Zeile wird ausgelassen. Eine ausgelassene Zeile wird auch nicht in den VGA-Speicher kopiert, und da wir den VGA-Speicher im Normalbetrieb nicht löschen, bleiben "alte" Pixel drin stehen. Bei der nächsten Zeile ist dann die Kopierschleife fertig, und ein Buffer ist frei. Diese Zeile wird dann eingelesen, und anschließend in den VGA-Speicher kopiert. Auf diese Weise entsteht ein Muster, bei dem Zeilen von älteren Frames im VGA-Speicher stehen bleiben. Im günstigsten Fall sieht das aus wie Interleaving, im ungünstigsten Fall wie in #249.

Beim aktiven Interleaving wird bewusst davon ausgegangen, dass die Kopierschleife länger braucht, und es wird geplant nur jede 2. (oder 4.) Zeile eingelesen. Der Trick dabei ist, beim nächsten Frame Zeilen zu nehmen, die bisher gefehlt haben.

Auch wenn ich mich wiederhole: so wirklich sehen, was passiert kann man nur mit dem Logikanalyzer an den beiden Testpins.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
256
17.04.2024, 18:17 Uhr
MarioG77

Avatar von MarioG77

So, endlich Mal Daten:


Ganz sauber sieht es ja nicht aus.

Einen Export, wenn du mehr sehen willst, kann ich dir auch direkt Mal senden.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
257
17.04.2024, 18:40 Uhr
MarioG77

Avatar von MarioG77

Ich bin einen Schritt weiter...

Ich habe die Variablen als volatile deklariert, jetzt ist das Bild wieder stabil, aber...

Quellcode:

volatile uint32_t ABG_Interleave_Mask = 0;
volatile uint32_t ABG_Interleave = 0;
volatile uint16_t ABG_XRes = 0;
volatile uint16_t ABG_YRes = 0;
volatile uint8_t ABG_Bits_per_sample = 0;



Es fehlen jetzt stabil immer die gleichen Zeilen:


CLS löscht ordentlich, DIR/LADDER - egal was, immer gleich.

Das sieht irgendwie nach Scanlines aus - die ABG_Interleave_Mask ist neu und beim 1715 wird das im 4 Bit Modus eingelesen... Ich schaue nochmal...

Edit:
Durch Zufall habe ich gerade die perfekten Parameter für EC1834 gefunden - Super klares Bild jetzt!
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 17.04.2024 um 19:26 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
258
17.04.2024, 19:29 Uhr
Ordoban



Ja, das sieht nicht gut aus. Ich würde eher das erwarten:

SPI darf nur kurze Low-Impulse machen, etwas Zeitversetzt zum BSYN.
COPY soll High werden wenn SPI Low geworden ist, und muss wieder Low werden, bevor SPI High wird.
Könntest du die ersten paar Zeilen nach dem VSYNC mal etwas größer zeigen? Edit: und vielleicht noch das BSYN dazu? Edit2: gerne auch als Export per Mail.

Das volatile braucht man nur, wenn eine variable von mehreren threads aus benutzt wird. Damit sagt man dem Compiler, dass der diese Variablen nicht in Registern lagern darf, sondern immer aus dem Speicher nehmen soll. Für die genannten Variablen bringt das eher Nachteile.

ABG_Interleave_Mask wird nur einmal beim start geschrieben, und dann nur noch im ISR gelesen. Der ISR (Assembler) schert sich nicht um das volatile. Das selbe bei ABG_Interleave, das wird komplett nur im ISR gelesen/geschrieben.
ABG_XRes, ABG_YRes und ABG_Bits_per_sample werden nur einmal beim Start geschrieben, und ändern sich dann nicht mehr. Die darf der Compiler ruhig in Registern cachen.
--
Gruß
Stefan

Dieser Beitrag wurde am 17.04.2024 um 19:38 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
259
17.04.2024, 19:42 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
SPI darf nur kurze Low-Impulse machen, etwas Zeitversetzt zum BSYN.
COPY soll High werden wenn SPI Low geworden ist, und muss wieder Low werden, bevor SPI High wird.
Könntest du die ersten paar Zeilen nach dem VSYNC mal etwas größer zeigen? Edit: und vielleicht noch das BSYN dazu? Edit2: gerne auch als Export per Mail.


ok, hatte ich befürchtet. Ich mache das nochmal.

Edit:
Scheint jetzt zu langsam zu sein...




Zitat:

Das volatile braucht man nur, wenn eine variable von mehreren threads aus benutzt wird. Damit sagt man dem Compiler, dass der diese Variablen nicht in Registern lagern darf, sondern immer aus dem Speicher nehmen soll. Für die genannten Variablen bringt das eher Nachteile.


Ja, beim EC1834 hat sich das schon gezeigt.
Hab's schon wiede rausgenommen - hatte ich falsch interpretiert.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 17.04.2024 um 19:59 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
260
17.04.2024, 20:25 Uhr
Ordoban



Ja, das Pixelkopieren ist etwas zu langsam. Braucht 70µs, hat aber nur 60µs.

Mal ein paar Screens zum Vergleich:

Interleave_Mask=0, ABG_Bits_per_sample=8, gutes Bild.


Interleave_Mask=0, ABG_Bits_per_sample=4, schlechtes Bild.


Interleave_Mask=1, ABG_Bits_per_sample=4, gutes Bild.


Interleave_Mask=3, ABG_Bits_per_sample=4, gutes Bild.

Probier also mal Interleave_Mask=1 aus. Das dürfte zumindest wieder ein gutes Bild ergeben.
Man könnte probieren, die 4 Bit Pixelkopierschleife weiter zu optimieren, oder auf beide Kerne zu verteilen. Ich spiele mit dem Gedanken, die Pixelkopierschleife nochmal in Assembler zu schreiben.
--
Gruß
Stefan

Dieser Beitrag wurde am 17.04.2024 um 20:25 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
261
17.04.2024, 20:45 Uhr
Rolly2



Für den 1834 gibt es doch schon Lösungen für die COL-Karte. Der PC1715 hat da auch kein Problem. Da haben schon einige Leute drann geforscht. Die Karte von Heiko Poppe ist die ideale Lösung. Klar, der Weg ist das Ziel.
Bitte nicht übel nehmen, ihr steckt viel Zeit in diese Sache.

VG, Andreas

PS: Die SYNC und VIDEO-Signale des 1715 sind auch nich immer gleich. Ich habe festgestellt, dass diese Signale von Platine zu Platine varieren. Erekenntnis aus ca. 45 Boards.

Dieser Beitrag wurde am 17.04.2024 um 20:56 Uhr von Rolly2 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
262
17.04.2024, 20:55 Uhr
MarioG77

Avatar von MarioG77

1834 MON, nicht COL!
Und das ist kein Ersatz für die Grafikkarte, sondern für den Monitor. Für 20€ ein Adapter ist eine günstige Lösung, die nicht Mal einen Eingriff in den Rechner benötigt.

Auch wenn die Karte von Heiko mich schon reizen würde da wollte ich mich schon lange bei ihm melden.
Der FPGA ist ja leider mittlerweile obsolet.

Und ich nehme es nicht übel. Mir macht das Projekt Spaß!

Genauso wie die Reparatur vom 1834... Da denke ich oft gerne dran. Hat noch wer ein kaputtes Board zur Reparatur?
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
263
17.04.2024, 21:02 Uhr
Rolly2



Für die MON gibt es auch schon Lösungen. Halt nur in SW.
Wo gibt es denAdaper?
FPGA, da gibt es heute ja andere Sachen.
VG, Andreas

Dieser Beitrag wurde am 17.04.2024 um 21:05 Uhr von Rolly2 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
264
18.04.2024, 08:32 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Rolly2 schrieb
Für den 1834 gibt es doch schon Lösungen für die COL-Karte.


Welche eigentlich?


Zitat:
PS: Die SYNC und VIDEO-Signale des 1715 sind auch nich immer gleich. Ich habe festgestellt, dass diese Signale von Platine zu Platine varieren. Erekenntnis aus ca. 45 Boards.


Schon klar - wir können das aber entsprechend anpassen. Macht aber nur Sinn, wenn das Board warmgelaufen ist - die Frequenz stabilisiert sich erst dann.


Zitat:
Für die MON gibt es auch schon Lösungen. Halt nur in SW.


Welche? Ich habe dazu noch nichts gesen. Interessiert mich.

Zitat:
Wo gibt es denAdaper?


Bis Garitz könnten wir, bei derzeitigem Fortschritt, wohl den Prototyp in Version 1 gebracht haben. Aktuell nur der Prototyp.

Zitat:
FPGA, da gibt es heute ja andere Sachen.


Aber nicht für einen Nachbau von Heikos Lösung. Sicher könnte man das mit einem neueren (verfügbarem) FPGA auch das lösen.
Ich vermute, die Variante vom picoAC1 müsste theoretisch auch beim 1715 möglich sein. Die Taktgeschwindigkeit ist ja viel geringer als beim picoAC1.

Ich habe mich aber lieber an Stefans Lösung gehalten, weil ich die schnell als prinzipiell funktionierend bestätigen konnte.
Wir können Stand jetzt: 3 MDA Computer auf VGA bringen, mit einer Bildqualität, die weit über alle FBAS Lösungen am 1715 hinausgeht (die ich kenne).
Der ESP32-S3 ist ein aktueller, verfügbarer µC, günstig und wir brauchen kaum externe Teile.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
265
18.04.2024, 11:10 Uhr
Klaus



Hallo,

ich möchte an dieser Stelle mal für Eure unermüdliche und intensive Lösungssuche und die vielen Experimente mal echt den Hut ziehen.

Bei vielen Dingen verstehe ich zwar nur „Bahnhof“, aber es wäre schon genial, wenn aus dem Projekt am Ende ein Adapter herauskommt, der an vielen Rechnern einsetzbar ist.
An ein paar „Kisten“ seid ihr ja schon dran.

Vielleicht kommen dann ja später noch mehr, wo der Adapter genutzt werden kann (z.B. an der K7024 Bildschirmkarte vom A5120/K8924, Z1013, LLC2, der VIDEO3 vom NANOS, u.s.w).
Das sind jetzt alles nur Monochrom-Karten, aber da die alten Monitore, die mit den teilweise nicht normgerechten Signalen zurecht kommen, ja immer weniger werden, ist das mit der VGA Ausgabe eine prima Lösung.

Für Farbe fallen mir da z.B. auch noch der ZX Spectrum 128 und höher.. bis zum QL ein, die ja einen RGB Ausgang haben.

Für den Sinclair QL gibt es zwar eine Lösung, mit Raspberry Pi PICO (die ich unter 008) schon mal erwähnt hatte und die bei mir prima funktioniert, aber EIN Adapter für alles, wäre der Hit

Der PICO ist ja sehr günstig. Wäre Euer Projekt auch auf so einem PICO umsetzbar?

Andreas hat natürlich Recht.
Die Karte vom Heiko ist große Klasse und die steckt auch in meinem NANOS und dem K1520 Gerippe und bringt mir unter erweitertem CP/M auch ein wenig Farbe ins Spiel.
Aber es ist eben eine komplette Bildschirmkarte und bedarf u.U. auch Anpassungen an der Software bzw. des Betriebsystems.

Euer Konzept ist ja ein anderes.
Den Rechner lassen, wie er ist, aber die Bildsignale der unterschiedlichen Bildschirmkartenausgaben so konvertieren, dass sie über jeden VGA-Monitor angezeigt werden können.

Einen EC1834 mit MON-Karte habe ich auch hier. Momentan läuft der Monitor dank RP noch perfekt, aber man weiß ja nie was die Zukunft bringt. Von daher bin ich gespannt, wie Eure Entwicklung weiter geht.

Danke und viele Grüße,
Klaus

Dieser Beitrag wurde am 18.04.2024 um 11:12 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
266
18.04.2024, 17:59 Uhr
Ordoban




Zitat:
Klaus schrieb
Vielleicht kommen dann ja später noch mehr, wo der Adapter genutzt werden kann (z.B. an der K7024 Bildschirmkarte vom A5120/K8924, Z1013, LLC2, der VIDEO3 vom NANOS, u.s.w).
Das sind jetzt alles nur Monochrom-Karten, aber da die alten Monitore, die mit den teilweise nicht normgerechten Signalen zurecht kommen, ja immer weniger werden, ist das mit der VGA Ausgabe eine prima Lösung.


Wir sind nicht auf Monochrom beschränkt, die Beschränkung ist die Art des Signals aus dem Computer. Das kann auch ein Farb-Signal sein.


Zitat:
Klaus schrieb
Für Farbe fallen mir da z.B. auch noch der ZX Spectrum 128 und höher.. bis zum QL ein, die ja einen RGB Ausgang haben.


Es gehen prinzipiell nur Rechner, die ein digitales Ausgangssignal haben (sprich: TTL). Damit fällt alles mit RGB flach.


Zitat:
Klaus schrieb
Für den Sinclair QL gibt es zwar eine Lösung, mit Raspberry Pi PICO (die ich unter 008) schon mal erwähnt hatte und die bei mir prima funktioniert, aber EIN Adapter für alles, wäre der Hit


Ich hab schon Adapter gesehen, die für sich beanspruchen "ALLES" umwandeln zu können, aber alle auch *Pieeeep* teuer. Der Preis wäre nicht das Problem, ich könnte mir sowas schon leisten, aber dann stellt sich mir die Frage: wofür? Der Reiz für mich ist es etwas zu bauen, nicht etwas zu haben.


Zitat:
Klaus schrieb
Der PICO ist ja sehr günstig. Wäre Euer Projekt auch auf so einem PICO umsetzbar?


Möglich. Wenn man die Leistungsdaten von ESP32-S3 und Raspi Pico vergleicht, dann sieht der Pico ganz schön alt aus.
ESP32-S3-WROOM-1: 512K+8M RAM, 8M ROM, 240MHz Dual Core für 4,30€
Raspi Pico: 256K RAM, 2M ROM, 133MHz Single Core für 6,99€
Nichts gegen den Nano, aber ich fand den ESP32 aus verschiedenen Gründen deutlich interessanter.


Zitat:
Klaus schrieb
Andreas hat natürlich Recht.
Die Karte vom Heiko ist große Klasse und die steckt auch in meinem NANOS und dem K1520 Gerippe und bringt mir unter erweitertem CP/M auch ein wenig Farbe ins Spiel.
Aber es ist eben eine komplette Bildschirmkarte und bedarf u.U. auch Anpassungen an der Software bzw. des Betriebsystems.


Die Frage ist nicht, was alles geht, sondern ob man es tun möchte, und wo die Grenze ist. Im Extremfall könnte man einen {hier alten Rechnernamen einfügen} komplett entkernen, und ein neues Mini-ATX-Board reinkleben. Für mich würde das hart an Frevel grenzen, aber das muss jeder für sich selbst entscheiden. Die Grafikkarte von Heiko wäre für mich noch OK, passt aber vermutlich nicht in den 7100er... und einen 1715 hab ich nicht.


Zitat:
Klaus schrieb
Euer Konzept ist ja ein anderes.
Den Rechner lassen, wie er ist, aber die Bildsignale der unterschiedlichen Bildschirmkartenausgaben so konvertieren, dass sie über jeden VGA-Monitor angezeigt werden können.

Einen EC1834 mit MON-Karte habe ich auch hier. Momentan läuft der Monitor dank RP noch perfekt, aber man weiß ja nie was die Zukunft bringt. Von daher bin ich gespannt, wie Eure Entwicklung weiter geht.

Danke und viele Grüße,
Klaus


Ich bin auch gespannt wo das hinführt. Wir werden sehen
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
267
18.04.2024, 18:13 Uhr
MarioG77

Avatar von MarioG77

Was man beim Pico nicht vergessen darf, sind die PIO - die Programmierbaren IO Ports.
Die sind zwar schon eingeschränkt, aber trickreich kann man da sicher einiges rausholen.

Zum A5120... Da liegt neban noch ein riesiges Opfer und wartet auf mich. Keine Ahnung ob der Monitor die feuchte Garage überlebt hat.
Potentiell also der nächste Kandidat...
Der Tastaturadapter im anderen Thread kommt mir auch entgegen.

Und ob ich meine Trident Karte auf dem 1834 zum Laufen bekomme, muss ich auch noch sehen. Die liegt seit Garitz noch vor mir...
Projekte gehen mir nicht aus.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
268
18.04.2024, 18:49 Uhr
MarioG77

Avatar von MarioG77

Interleave=1 läuft gerade super.
Komischerweise sehe ich kaum was von Interleaving.

Er muss aber erst warmlaufen. Im Moment zuckelt er insgesamt noch rum.

Edit:
Hab schon überlegt, ob wir die Profile vielleicht konfigurierbar machen. Zumindest für den Prototypenstatus.

Edit2:
Aber die Copy Routine läuft immer noch 74µS...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 18.04.2024 um 18:55 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
269
18.04.2024, 18:51 Uhr
Ordoban



Na, das letzte mal war 1:4, das hier ist 1:2, also schon doppelt so schnell und nur halb so "streifig".
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
270
18.04.2024, 19:26 Uhr
MarioG77

Avatar von MarioG77

ok, kapiert, nachdem ich den trace nochmal angeschaut hatte.
Also mit Interleave=1 geht ladder eigentlich gut zu spielen...

Allerdings zuckelt der heute viel rum. Im BSYNC/VSYNC sind einige Sprünge. Ich vermute, er steigt da zum falschen Zeitpunkt in den Zeilenlese Modus.
Heute ist die Temperatur etwas frischer hier. Ich frage mich, ob man da Signal vielleicht extern etwas stabiler machen könnte...

Und mein Floppy Controller scheint wohl auch wieder eine Weile defekt zu sein - hab mich schon gefragt, seit wann der FC ohne Floppy startet - schon lange.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
271
18.04.2024, 19:27 Uhr
Klaus



@Stefan und Mario

Vielen Dank für die gute Aufklärung und weiterhin viel Spaß und Erfolg.
Dass der ESP32 preiswerter ist, als der PIOCO war mir gar nicht so bewusst.

Viele Grüße,
Klaus

Dieser Beitrag wurde am 18.04.2024 um 19:28 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
272
18.04.2024, 19:53 Uhr
MarioG77

Avatar von MarioG77

@Klaus:
wenn das hier noch für jemanden von Interesse ist, freut es natürlich noch umso mehr...

Hier mal das Bild von meinem 1834 von gestern:


Hier der Stand von heute auf Youtube:
https://youtu.be/gW0n6FaM_es

Und schon ist der Abend wieder rum...

Morgen ist 10. Hochzeitstag, da muss ich mich um meine Frau kümmern. Komme dann erst wieder Samstagnachmittag in die Werkstatt - mal schauen, mit was es dann weiter geht.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
273
18.04.2024, 20:29 Uhr
Rolly2



Sieht doch gut aus. Hier mal mein Adapter für den 1834.

VG, Andreas



Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
274
18.04.2024, 20:57 Uhr
Rolly2



Ordoban schrieb:
"Die Frage ist nicht, was alles geht, sondern ob man es tun möchte, und wo die Grenze ist. Im Extremfall könnte man einen {hier alten Rechnernamen einfügen} komplett entkernen, und ein neues Mini-ATX-Board reinkleben. Für mich würde das hart an Frevel grenzen, aber das muss jeder für sich selbst entscheiden. Die Grafikkarte von Heiko wäre für mich noch OK, passt aber vermutlich nicht in den 7100er... und einen 1715 hab ich nicht."

Die Karte von Heiko verändert ja den Rechner nicht. Es ist eine sinnvolle Erweiterung für Leute, die keinen originalen Monitor mehr haben. Klar, in den 71xx passt die nicht. Ist ein ganz anderes System. Aber für den 1715, A5120, K8924 uÄ. ist das schon oK.
Euer Projekt bleibt spannend.

VG, Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
275
18.04.2024, 21:02 Uhr
Klaus



@Mario
Na da bin ich doch sicher nicht der Einzige, den das alles interessiert
Frage: Ist das Bild vom 1834 mit MON-Karte?
Sieht doch schon Klasse aus.

@Andreas
Du hast hier ja vermutlich die COL-Karte im Einsatz.
Interessant dass der Monitor die Frequenzen macht.
Welche Lösung war das für die MON-Karte, die Du unter 263 erwähnt hattest?

Viele Grüße,
Klaus

Dieser Beitrag wurde am 18.04.2024 um 21:03 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
276
19.04.2024, 08:31 Uhr
Rolly2



Hallo Klaus,
ich habe mit dem Adapter 6 TFTs ausprobiert, 5 davon funktionieren sehr gut. Bei einem zuckt das Bild mächtig, manchmal ist es auch ganz weg. Das ist ein Captiva E1903, also was sehr preisgünstiges.
Mein erster 1834, habe ich 205 bekommen, hatte nur eine MON drinnen. Den Adapter gibt es physisch leider nicht mehr. Ich suche aber in meinen Datengrab nach der Schaltung.
Das funktionierte mit einem SYNC-Separator LM1881 oÄ. Dann muss ja auch noch von digital auf analog gewandelt werden.

VG, Andreas

Dieser Beitrag wurde am 19.04.2024 um 08:37 Uhr von Rolly2 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
277
19.04.2024, 09:41 Uhr
MarioG77

Avatar von MarioG77

Hi Andreas,


Zitat:
Rolly2 schrieb
Mein erster 1834, habe ich 205 bekommen, hatte nur eine MON drinnen. Den Adapter gibt es physisch leider nicht mehr. Ich suche aber in meinen Datengrab nach der Schaltung.
Das funktionierte mit einem SYNC-Separator LM1881 oÄ. Dann muss ja auch noch von digital auf analog gewandelt werden.



...dann ist das mit den existierenden Lösungen aber sehr relativ...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
278
19.04.2024, 10:13 Uhr
Rolly2



Hallo Mario,
ist relativ und bei der MON-Karte nicht nur einige Drähte. VGA an TFT ist einfach, geht halt nicht mit jeden "billig" TFT. Aber geht.

VG, Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
279
19.04.2024, 11:33 Uhr
Klaus



Hallo Andreas,

mach Dir keinen Stress wegen dem Adapter. Hat mich nur mal interessiert, wie er aufgebaut war und wie das mit den „krummen“ Frequenzen dann läuft. Bzw. welchen Monitor man da verwenden kann.
Momentan funktioniert der K7229 Monitor vom Rolf noch ganz prima an MON-Karte.
Die COL habe ich ja nicht.
Als damals der Alpha 1 Monitor kaputt gegangen ist, hatte ich einen der Steckplätze gegen einen ISA Slot ausgetauscht und vorübergehend eine ET3000 ISA-Karte drin. Das ging als Notlösung auch.

Derzeit macht der EC1834 gerade mal wieder Probleme.
Als ich ihn gestern mal wieder starten wollte … tot ;(
Vermutlich wieder ein Netzteilproblem.
Momentan fehlt mir aber etwas die Zeit für die Fehlersuche.

Habe gerade einen Westcomputer auf dem Tisch.
Ein sehr schöner NCR Decision Mate V.

War eine angenehme Reparatur und die Kiste läuft wieder. Ich muss nur noch ein paar ausführliche Tests machen.
Sorry…. das passt hier nicht zum Thema.

Viele Grüße,
Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
280
19.04.2024, 14:26 Uhr
Rolly2



Ist das so einer? Ist ein sehr schöner Rechner. Da habe ich einige Unterlagen.

VG, Andreas


Dieser Beitrag wurde am 19.04.2024 um 14:27 Uhr von Rolly2 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
281
19.04.2024, 15:56 Uhr
Enrico
Default Group and Edit


Jaa, den kenne ich auch.
Das hatten wird doch erst .....
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
282
19.04.2024, 16:07 Uhr
Klaus




Zitat:
Rolly2 schrieb
Ist das so einer? Ist ein sehr schöner Rechner. Da habe ich einige Unterlagen.


Ja Andreas... so einer. Ich schreibe nachher mal eine Mail.

Sorry... Stefan und Mario... Ich wollte das Thema VGA-Adapter nicht "verunstalten"

Viele Grüße,
Klaus

Dieser Beitrag wurde am 19.04.2024 um 16:08 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
283
20.04.2024, 16:19 Uhr
MarioG77

Avatar von MarioG77

Kein Thema, da weiß man, dass zumindest wer mit rein schaut...

@Stefan:
Die letzte Codeänderung war super!
Wir sind bei 46µs - sind wieder 8,4µs Luft...

Ladder läuft einwandfrei, ohne Interlace... Wer hat da nur so viele Punkte erreicht - ich komme nicht mal in Level 2...

Ein weiterer Punkt wäre noch, den richtigen Punkt beim VSYNC zu erwischen.
Da, wo das Bild um eine hoch Zeile springt, scheint er zu früh zu kommen... Mit dem COPY...


So sieht es überwiegend aus, dürfte also so richtig sein:


Ich vermute, dass der Startpunkt durch fehlerhafte SYNC Impulse zu früh erkannt wird.
An meinem Stecker hängen aber auch 30cm ungeschirmter Draht. Vielleicht sollte ich den jetzt Mal richtig auf Flachband umbauen...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
284
20.04.2024, 17:19 Uhr
Ordoban



Tja, bei dem Ladder hatte vielleicht einer viel Zeit zum üben... (und keine Alternativen)

Ich weiß nicht so ganz was du mit den beiden Bildern meinst. Da sieht man die lange VSYNC-Pause. Der einzige Unterschied ist, dass bei dem oberen anscheinend eine Neuberechnung der PIXEL_STEP_LIST läuft. Das sieht man an dem langen High vom COPY in der Zeit. Das ist ganz normal.
Wir messen ja die Anzahl CPU-Zyklen zwischen Zeile 10 und 210. Daraus errechnen wir dann die Frequenz und die Sample-Position der einzelnen Pixel. Diese Berechnung wird in der VSYNC-Pause gemacht, da ist genug Zeit dafür. Die brauchen wir aber nur, wenn sich die Anzahl der CPU-Zyklen gegenüber dem vorherigen Lauf geändert hat. Deshalb ist die Berechnung mal lang und mal kurz.

Es könnte sein, dass bei dir das TTL-Signal BSYNC einen zu starken Einschwingvorgang hat. Dadurch ist das Signal wieder (kurz) high, wenn der ISR nachschaut, ob das nicht ein Fehlalarm war. Ich hatte diese Art von Filter eingebaut, weil ich bei der Steckbrett-Version dauernd Fehl-Auslösungen hatte. Die ESP32-Eingänge sind im Interruptmodus sehr empfindlich. Ich vermute, dass auch der reguläre ISR-Händler eine Art Filterfunktion drin hat. Der ist nicht umsonst so langsam

Das können wir auf zwei Weisen lösen:
1. den Filter in userem ISR verbessern
2. das TTL-Signal verbessern

zu 1. könnte man mal probehalber noch mehr NOPs in den ISR reinmachen, das gibt dem TTL-Signal mehr Zeit zum einschwingen.
zu 2. einen relativ kleinen Widerstand (z.B. 75 Ohm) in Reihe in das Signal machen, am besten VOR dem Kabel.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
285
20.04.2024, 17:40 Uhr
MarioG77

Avatar von MarioG77

ok, ich sehe schon - ohne deinen Code voll verstanden zu haben komme ich schnell auf falsche Ideen.
Du bist zu schnell...

Die Variante mit einem 68 Ohm Widerstand führt irgendwie dazu, dass er keinen SYNC mehr sauber erkennt.
Ich probiere die ISR Variante...

Edit:
Mit knapp 130 NOPs ist das Bild Horizontal jetzt einwandfrei geworden.
Aber das Zeilenspringen ist jetzt deutlich erhöht:
https://youtu.be/9Kx7roTg-Mc
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 20.04.2024 um 18:09 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
286
20.04.2024, 18:12 Uhr
MarioG77

Avatar von MarioG77

Beim Pixelabstand muss ich jetzt sehr weit ändern, bis das wieder flackert. Ich glaube der Teil ist gelöst...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
287
20.04.2024, 18:27 Uhr
MarioG77

Avatar von MarioG77

Ich glaube, ich habe das Problem gefunden:

Zeilenabstand ist hier auf 12 eingestellt.

Hier ist es korrekt:


Und hier sind es 13 Zeilen geworden:


Ich denke, der Abstand vom letzten VSYNC Impuls zum ersten HSYNC Impuls ist hier zu kurz.

Edit: kann vielleicht mit den vielen NOPs zusammenhängen...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 20.04.2024 um 18:28 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
288
20.04.2024, 18:39 Uhr
Ordoban



Aha!



Wie gemein!
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
289
20.04.2024, 18:45 Uhr
MarioG77

Avatar von MarioG77

Ich weiß nur nicht, wie genau die Daten vom LA sind - der hat da teilweise große Toleranzen.
Willst du die Originaldatei?
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
290
20.04.2024, 18:58 Uhr
Ordoban



Nein, das Problem ist deutlich zu sehen. Ich bin grad am überlegen, wie man das im ESP erkennen kann. Eventuell die VSYNC-Impulse auch zählen.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
291
20.04.2024, 19:16 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
Nein, das Problem ist deutlich zu sehen. Ich bin grad am überlegen, wie man das im ESP erkennen kann. Eventuell die VSYNC-Impulse auch zählen.


Ja, den Gedanken hatte ich auch gerade...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
292
20.04.2024, 19:19 Uhr
MarioG77

Avatar von MarioG77

Zwischendurch:
Mal ein Eindruck, wie es grundsätzlich Montagemäßig aussehen könnte:


--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
293
20.04.2024, 20:32 Uhr
Ordoban



Probier mal das: (highint5.S zeile 177-180) die 4 Zeilen mit dem + hinzufügen (ohne das + )

Quellcode:

xt_highint5_L1:
    addi    a12, a12, -1                            // timeout runterzählen
    bnez    a12, xt_highint5_L2                     // noch kein timeout? --> gpio nochmal lesen

+    movi    a14, ABG_Scan_Line                      // Scanline laden
+    l32i    a14, a14, 0
+    addi    a14, a14, 1                             // Scanline +1
+    blti    a14, 16, xt_highint5_L3                 // Scanline <=15 ? dann direkt weiter zum Schreiben

xt_highint5_L8:    
    movi    a14, 0                                  // Scanline=0
    
xt_highint5_L3:
    movi    a15, ABG_Scan_Line                      // Scanline schreiben
    s32i    a14, a15, 0
    memw


--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
294
21.04.2024, 11:42 Uhr
Ordoban



Sorry, ich hab da gestern was vergessen zu posten...
capture.c Zeile 126, ABG_Scan_Line == 0 wird zu ABG_Scan_Line < 5

Quellcode:

        {
            if (bsyn_clock_last != bsyn_clock_diff && ABG_Scan_Line < 5)
            {


--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
295
21.04.2024, 14:20 Uhr
MarioG77

Avatar von MarioG77

Das wars noch nicht. Es zappelt noch.
Ich versuche mich gerade in den Code einzuarbeiten, um das besser zu verstehen...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
296
21.04.2024, 15:14 Uhr
MarioG77

Avatar von MarioG77

ok, wenn ich das korrekt verstehe, wird hier nur der Pixel Abstand neu berechnet, solange er in den ersten 5 (dunklen) Zeilen ist, richtig? Eine konkrete Änderung bzgl. der Zählung ist noch nicht.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
297
21.04.2024, 16:19 Uhr
Ordoban



Die Änderung der Zählung ist in #293
Der ISR wird von jeder fallenden Flanke des BSYN ausgelöst.
Der ISR wartet dann bis zu 10µs darauf, dass das BSYN wieder High wird. Wenn es schon vorher High wird, dann war das ein HSync, wenn nicht, dann ist es ein VSync.
Bei HSync wird zur Zeile +1 addiert.
Bei VSync wurde bisher immer die Zeile auf 0 gesetzt.
Mit #293 ist es so, dass nur noch auf 0 gesetzt wird, wenn Zeile>16 ist. Ansonsten wird auch bei VSync +1 zur Zeile addiert. Dadurch werden die VSync-Impulse schon als Zeilen mitgezählt.
#294 beseitigt eine Nebenwirkung dieser neuen Zählweise: Zeile 0 ist jetzt nur noch kurz, die Neuberechnung der Pixelabstände verpasst ständig die Gelegenheit.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
298
22.04.2024, 19:48 Uhr
MarioG77

Avatar von MarioG77

Danke für die Erklärung.
Ich verstehe zwar noch nicht, warum das am Verhalten nichts geändert hat, aber damit konnte ich jetzt etwas experimentieren.

Laut LA hat ein Sync Impuls eine Breite von ca 5,1µs.

Ich habe den Glitchfilter von 3,2µs auf 0,8µs reduziert - das scheint gut zu laufen.
Da das den Timeout von 10µs aber auch beeinflusst, habe ich jetzt etwas mit der Schleife experimentiert:
Bei einem Wert von 55, also ca 5,5µs habe ich jetzt ein perfektes Bild.
Lediglich ein Flimmern eine Zeile unterhalb der Statuszeile ist zu sehen.

Echt Super Gefühl, jetzt auf den Monitor zu schauen!

Die Frage ist nun, ob das für die anderen Systeme ausreicht. 1834 kann ich ja direkt testen.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
299
22.04.2024, 19:52 Uhr
Rolly2



Hallo Mario,
testest du am 1834 mit einer MON oder einer COL-Karte?

VG, Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
300
22.04.2024, 20:26 Uhr
MarioG77

Avatar von MarioG77

Immer MON! Hier geht es um digitale Monochrom Signale.

So endlich hab ich es auch in Ladder in Level 2geschafft...
Bild stabil. Muss jetzt mit den anderen 1715 Platinen testen.

Der 1834 geht aber nicht mehr. Der Glitchfilter ist da scheinbar zu lang!
Dort ist der Impuls nur etwa 2µs (H) / 900ns (V) lang.

Ich weiß nicht, wie es beim 7100 aussieht. Auf den Bildern Stefan sieht es aber ähnlich kurz aus.

Hab' schon überlegt, ob man beim Start nicht eine Auto Detection einbauen könnte...

Man könnte hier eine Variable setzen und einen bedingten Sprung auf die Hälfte der NOPs durchführen.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004

Dieser Beitrag wurde am 22.04.2024 um 20:30 Uhr von MarioG77 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
301
22.04.2024, 20:41 Uhr
Rolly2



Ja, OK. War ja schon mal gefragt worden.

VG, Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
302
22.04.2024, 20:50 Uhr
MarioG77

Avatar von MarioG77

Kein Problem, war auch nicht aggressiv gemeint, sondern wollte es nur nochmal deutlich sagen
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
303
22.04.2024, 21:40 Uhr
Ordoban



Es gibt für die GPIO's auch einen Input Filter. Ich weiß jetzt nicht wie man den in C aktivieren kann, oder ob der vielleicht auch schon aktiviert ist.
Aus esp32-s3_technical_reference_manual_en.pdf Seite 463

Zitat:

2. Optionally enable the filter for pin input signals by setting the register IO_MUX_FILTER_EN. Only the signals with a valid width of more than two APB clock cycles can be sampled, see Figure 6-4.


--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
304
23.04.2024, 06:57 Uhr
Bert



Die Taktfrequenz für den APB dürfte bei 80 MHz liegen. Damit müssen die Signale eine minimale Breite von 25 ns haben um durch das Filter zu kommen. Die µs-Pulse müssen in Software gefiltert werden.

Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
305
23.04.2024, 07:07 Uhr
dh0jsv



Ein interessantes Projekt auf jeden Fall, ich verfolge es auch mit. Nur weil mal die Frage kam, ob es überhaupt jemand interessiert
--
Sven
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
306
23.04.2024, 10:25 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Bert schrieb
Die Taktfrequenz für den APB dürfte bei 80 MHz liegen. Damit müssen die Signale eine minimale Breite von 25 ns haben um durch das Filter zu kommen. Die µs-Pulse müssen in Software gefiltert werden.


Ja, hab ich auch schon befürchtet.
Ich will heute Mal schauen, ob ich mit dem Oszi die Dauer der Störimpulse vielleicht genauer Messen kann.
Ich sollte dafür einen Trigger haben... Wobei... Bei meinem Oszi ist bei max 200MHz Schluss... Ich probier es trotzdem Mal. Die Impulse sollte theoretisch langsamer sein.


Zitat:
dh0jsv schrieb
Ein interessantes Projekt auf jeden Fall, ich verfolge es auch mit. Nur weil mal die Frage kam, ob es überhaupt jemand interessiert


Danke
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
307
23.04.2024, 18:28 Uhr
Ordoban



Der Filter scheint einen Effekt zu haben. Bei meiner neuesten Spielerei hatte ich auch ab und zu springende Zeilen. Mit dem Filter dann nicht mehr.

Zum Aktivieren des Filters in die capture.c ins setup_abg() nach dem gpio_config eintragen:

Quellcode:

    gpio_glitch_filter_handle_t filter = NULL;
    gpio_pin_glitch_filter_config_t config =
    {
        .clk_src = GLITCH_FILTER_CLK_SRC_DEFAULT,
        .gpio_num = PIN_NUM_ABG_BSYNC1,
    };
    ESP_ERROR_CHECK(gpio_new_pin_glitch_filter(&config, &filter));
    ESP_ERROR_CHECK(gpio_glitch_filter_enable(filter));
    config.gpio_num = PIN_NUM_ABG_BSYNC2;
    ESP_ERROR_CHECK(gpio_new_pin_glitch_filter(&config, &filter));
    ESP_ERROR_CHECK(gpio_glitch_filter_enable(filter));


und natürlich den include:

Quellcode:

#include "driver/gpio_filter.h"



Eine Vorschau auf das nächste Feature: der Pixel-Debugger.



Der liest immer nur 16 Zeilen ein, legt eine Statistik über die einzelnen Samples an, und stellt diese Statistik grafisch dar. Auf diese Wiese kann man sehen welche Samples stabile Pixel enthalten, oder flackern.
Die blauen senkrechten Linien sind die Samples, die als Pixel angezeigt werden würden.
Dunkelgrün sind helle, stabile Samples. Hellgrün ist da wo ein Pixel ein stabiles Sample trifft. Gelb ist ein flackerndes Sample, bei rot trifft ein Pixel ein flackerndes Sample.
Man möchte also viel hellgrün und kein rot sehen
Das ist noch nicht ganz fertig, es fehlt noch der "Feinschliff".
Edit: uff, ein 256-Farben-PNG-Foto sieht ja grausam aus, mit jpg ersetzt.
--
Gruß
Stefan

Dieser Beitrag wurde am 23.04.2024 um 18:31 Uhr von Ordoban editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
308
23.04.2024, 18:43 Uhr
MarioG77

Avatar von MarioG77

Das sind die größten Störimpulse, die ich einfangen konnte - wenn das Bild stabil ist:


Die 0,8µs Pause machen wir ja nur, um das Einschwingen abzuwarten, da sonst die eigentlichen Trigger evtl. als Störimpuls erkannt werden.

wobei das Signal nicht so lange einschwingt - zumindest laut Oszi...


Mit 68 Ohm vor dem Oszi:

Ändert nicht sehr viel. Verstehe nicht, warum da kein Signal kam.
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
309
23.04.2024, 18:52 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb
Der Filter scheint einen Effekt zu haben. Bei meiner neuesten Spielerei hatte ich auch ab und zu springende Zeilen. Mit dem Filter dann nicht mehr.


Und was für einen. Ich habe ohne die NOPs ein stabiles Bild.


Zitat:

Eine Vorschau auf das nächste Feature: der Pixel-Debugger.


Cool, bin gespannt...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
310
23.04.2024, 19:17 Uhr
Ordoban




Zitat:
MarioG77 schrieb
Und was für einen. Ich habe ohne die NOPs ein stabiles Bild.


Goil!

Spricht was dagegen, aus dem ISR die alten auskommentierten C-Sequenzen rauszuwerfen? Die waren ursprünglich zum besseren Verständnis, aber mittlerweile hat sich an der Assembler-Funktion so viel geändert, dass die nur noch verwirren.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
311
23.04.2024, 19:18 Uhr
MarioG77

Avatar von MarioG77

Auf dem EC1834 MON bekomme ich aber nur wieder Bild, wenn ich die Scanline Geschichte aus #293/#294 zurückbaue...
Dann springt das Bild auf dem 1715 aber auch wieder...

Ich zeichne Mal den 1834 mit dem LA auf, wenn es funktioniert...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
312
23.04.2024, 19:28 Uhr
MarioG77

Avatar von MarioG77

Im Gegensatz zum 1715 sind es dort viel weniger VSYNC Impulse (6 statt 12)


D.h. man müsste den ISR dementsprechend anpassen.
Funktioniert das bei deinem A7100 mit dem Code von oben?
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
313
23.04.2024, 20:06 Uhr
Ordoban




Zitat:
MarioG77 schrieb
Funktioniert das bei deinem A7100 mit dem Code von oben?


Ja, geht.
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
314
24.04.2024, 08:48 Uhr
MarioG77

Avatar von MarioG77


Zitat:
Ordoban schrieb

Zitat:
MarioG77 schrieb
Und was für einen. Ich habe ohne die NOPs ein stabiles Bild.


Goil!

Spricht was dagegen, aus dem ISR die alten auskommentierten C-Sequenzen rauszuwerfen? Die waren ursprünglich zum besseren Verständnis, aber mittlerweile hat sich an der Assembler-Funktion so viel geändert, dass die nur noch verwirren.


Der Post ist gestern untergegangen...
Ja, wenn die Codesequenzen nicht mehr passen, dann raus damit. Fällt mir so schon schwer, dem zu folgen...

Ich wollte da auch noch etwas mehr Text zur Erläuterung rein bringen, allerdings komme ich kaum hinterher, dass ich ihn verstehe - so schnell, wie du da immer erweiterst...
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
315
24.04.2024, 22:51 Uhr
Ordoban



So, der Pixel-Debugger ist auf Github. Den hätten wir schon eher gebraucht.
Ich hab auch den ISR etwas umstrukturiert, und einen fiesen Bug entfernt. Ich hoffe dass die neuen Kommentare etwas verständlicher machen was da drin passiert.

Ich hab nächste Woche Urlaub (bei Mama in Chemnitz), und dort keine Gelegenheit für Spielereien mit dem Oldtimer. Da haste erstmal etwas Ruhe vor mir
--
Gruß
Stefan
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
316
Heute, 10:40 Uhr
MarioG77

Avatar von MarioG77

Cool. Dieses Mal wird der Merge bei github nicht so einfach, weil ich vermutlich in dem Bereich auch rumgefummelt und leider schon eingecheckt habe...

Ich schaue dann, dass ich den Code verstehe und rausfinde, warum der EC1834 MON nicht mehr läuft (SPI startet schon nicht).

Viel Spaß in Chemnitz!
--
Gruss Mario

Betriebsbereit: KC85/3, 2x [KC85/4, D004+Floppy], PPC512, PC1512, 2xEC1834, Soemtron 286, 3x PC1715, picoAC1
Zu restaurieren: 1x D004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek