Neue ct-BASIC-Version mit Detailverbesserungen

Das Forum für die Software der FPGA-Basisplatine
Antworten
cm
Konstrukteur
Konstrukteur
Beiträge: 124
Registriert: 06.12.2007, 10:36
Wohnort: Hannover
Kontaktdaten:

Neue ct-BASIC-Version mit Detailverbesserungen

Beitrag von cm »

Version 2.2b: u.a. extensiver Fehler-Check bei LABREQ ohne Ausstieg des Programms, Fehlerabfrage über LABERR-Funktion möglich, Baudratenumschaltung mit optionalem zweiten LABBUS-Parameter usw.

Achtung: "Seltene" Funktion SADD() entfallen, Token für LABERR gebraucht.

Angepasstes EHBC.EXE ist online.
Zuletzt geändert von cm am 02.11.2009, 19:00, insgesamt 1-mal geändert.
Carsten Meyer

Redaktion c't
cm
Konstrukteur
Konstrukteur
Beiträge: 124
Registriert: 06.12.2007, 10:36
Wohnort: Hannover
Kontaktdaten:

Baudratenumschaltung

Beitrag von cm »

Ach ja: Mit dem main.bit vom 02.11.09 sollte auch die Baudraten-Umschaltung endlich funktionieren. Ich hatte da einen üblen Designfehler in der Baudraten-Generierung, der sich anfangs nicht auswirkte :evil:.

Geht jetzt auch mit LABBUS <bus>,<bdsel>, also etwa LABBUS 2,1 für 19200 Bd auf SerialCore. Rücksetzen nicht vergessen, wenn wieder Optobus verwendet wird!

Außerdem empfängt LABINP jetzt komplette Strings und nicht erst ab "=". Falls man mal etwas anderes dran betreiben will. Gibt bei Pollin gerade ein MAX180-Entwicklungsboard (acht 12-Bit- AD-Eingänge) für nen Zehner, mit RS232.
Carsten Meyer

Redaktion c't
magicroomy
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 205
Registriert: 01.12.2007, 09:23

Re: Neue ct-BASIC-Version mit Detailverbesserungen

Beitrag von magicroomy »

Gibts das neue Basic auch schon für die LCD Variante ?
cm
Konstrukteur
Konstrukteur
Beiträge: 124
Registriert: 06.12.2007, 10:36
Wohnort: Hannover
Kontaktdaten:

Re: Neue ct-BASIC-Version mit Detailverbesserungen

Beitrag von cm »

magicroomy hat geschrieben:Gibts das neue Basic auch schon für die LCD Variante ?
Fast. Muss das main.bit noch anpassen, da ist auch der Bock mit der Baudratenumschaltung drin.
Carsten Meyer

Redaktion c't
HSiebrecht
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 116
Registriert: 30.11.2007, 23:50
Wohnort: Westfalen

Re: Neue ct-BASIC-Version mit Detailverbesserungen

Beitrag von HSiebrecht »

cm hat geschrieben:Ach ja: Mit dem main.bit vom 02.11.09 sollte auch die Baudraten-Umschaltung endlich funktionieren. Ich hatte da einen üblen Designfehler in der Baudraten-Generierung, der sich anfangs nicht auswirkte :evil:.

Geht jetzt auch mit LABBUS <bus>,<bdsel>, also etwa LABBUS 2,1 für 19200 Bd auf SerialCore. Rücksetzen nicht vergessen, wenn wieder Optobus verwendet wird!
Ja, Danke, Super, mit dem neuen main.bit funktioniert die Baudraten-Umschaltung. Kurzer Test mit allen Baudraten war erfolgreich.

Etwas "off-topic" :) : Was mir jetzt noch fehlt, sind die funktionierenden Inports der FPGA-IOCORE Karte. Gibt es da schon etwas neues.
Viele Grüße

Helmut

Die meisten Desaster in der IT Welt haben eine gemeinsame Ursache: Wir machen mal eben.
cm
Konstrukteur
Konstrukteur
Beiträge: 124
Registriert: 06.12.2007, 10:36
Wohnort: Hannover
Kontaktdaten:

Re: Neue ct-BASIC-Version mit Detailverbesserungen

Beitrag von cm »

HSiebrecht hat geschrieben: Etwas "off-topic" :) : Was mir jetzt noch fehlt, sind die funktionierenden Inports der FPGA-IOCORE Karte. Gibt es da schon etwas neues.
Mmmhh. Da meine nach Schaltplan gefädelte Karte super funktioniert, habe ich hier nicht weiter geforscht. Bei mir sind 74LS541 bei den InPorts drin, HCT sollten auch gehen. HC-Typen gehen nicht.
Carsten Meyer

Redaktion c't
cm
Konstrukteur
Konstrukteur
Beiträge: 124
Registriert: 06.12.2007, 10:36
Wohnort: Hannover
Kontaktdaten:

Re: Neue ct-BASIC-Version mit Detailverbesserungen

Beitrag von cm »

magicroomy hat geschrieben:Gibts das neue Basic auch schon für die LCD Variante ?
Jetzt online, bitte mal testen, mein Aufbau ist zur Zeit zerpflückt.

Neuen main.bit nicht vergessen!
Carsten Meyer

Redaktion c't
magicroomy
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 205
Registriert: 01.12.2007, 09:23

Re: Neue ct-BASIC-Version mit Detailverbesserungen

Beitrag von magicroomy »

Sieht gut aus !
Mein Programm kommt jetzt nicht mehr mit Syntax Error wenn ich an einem Drehregler drehe.

Danke

Gruß
Volker
cm
Konstrukteur
Konstrukteur
Beiträge: 124
Registriert: 06.12.2007, 10:36
Wohnort: Hannover
Kontaktdaten:

Re: Neue ct-BASIC-Version mit Detailverbesserungen

Beitrag von cm »

HSiebrecht hat geschrieben: Etwas "off-topic" :) : Was mir jetzt noch fehlt, sind die funktionierenden Inports der FPGA-IOCORE Karte. Gibt es da schon etwas neues.
Bitte ausprobieren und messen (Scope mit 10:1 Tastkopf!):

Code: Alles auswählen

	.OPT	Proc6502, CaseInsensitive
	*=$8000		; hier: mitten im BASIC-RAM
loop	LDA	$0600
	STA	$0600
	STA	$0610
	STA	$B000
	JMP	loop	
iotest.zip
(564 Bytes) 418-mal heruntergeladen
Laden mit LOAD"IOTEST.BIN",$8000
dann CALL$8000

Dieses (assembliert beigelegte) Programm liefert eine schnelle Folge von 1 Lese- und 2 Schreibzugriffen auf IO-Bereich DAC_SEL_Rd_6xx (Einzelpuls an Pin 1 U4a, über Decoder auch an Pin 1 U7) und DAC_WR_Wr_6xx (Doppelpuls an Pin 15 U4b, über Decoder auch Einzelpulse an Pin 11 von U1 und U5). Das Ergebnis des Lesezugriffs auf $0600 INPORT wird gleich wieder auf $600 OUTPORT sowie in die obere linke Bildschirmecke gepokt. Abstand der Impulse ca. 1,6 µs, Impulsbreite "low" ca. 50 ns, zur Überprüfung mit Scope. Kann nur mit Reset abgebrochen werden.

Wie gesagt, meine gefädelte IOCORE läuft prima.
Carsten Meyer

Redaktion c't
HSiebrecht
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 116
Registriert: 30.11.2007, 23:50
Wohnort: Westfalen

Re: Neue ct-BASIC-Version mit Detailverbesserungen

Beitrag von HSiebrecht »

Hallo,

danke für das update, werde heute abend mal messen und berichten.
Habe aber auch 74LS - Typen bestellt, sollten morgen ankommen.

Eine Anmerkung noch zum ct-Basic, mit 2.2b funktionierte LABBUS 2,1, bei 2.2c erhalte ich einen Syntax Error.
Die Baudratenumschaltung funktioniert aber mit POKE $31E,1 und anschliessendem LABBUS 2.

Noch einmal Danke und ...
Viele Grüße

Helmut

Die meisten Desaster in der IT Welt haben eine gemeinsame Ursache: Wir machen mal eben.
HSiebrecht
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 116
Registriert: 30.11.2007, 23:50
Wohnort: Westfalen

Re: Neue ct-BASIC-Version mit Detailverbesserungen

Beitrag von HSiebrecht »

Hallo,

ist schon spät, aber ich noch mal wie angedroht.

Erst einmal mein "Messergebnis-Schmarn" aus :

http://thoralt.ehecht.com/phpbb/viewtop ... f=24&t=290

bitte vergessen, lag wohl an meinen IC-Messadaptern, hatte da wohl Kontaktprobleme oder ungewollte Brücken.
Also diesmal klassich, Messpunkte direkt ans IC gelötet. Hier nun die Ergebnisse, wie von cm vorgeschlagen.

- IOTEST.BIN geladen und gestartet, anschliessend folgende Messungen, sorry die Bilder sind nicht ganz so scharf, sollten aber ausreichen.

Für mich sieht das gut aus, ich habe das Rd und Wr Signal wie erwartet. Was mich stutzig macht ist folgendes :

Egal was ich am Inport $600 anlege ( 00h - FFh ), im VGA-Dispaly ganz oben links ( $B000 ) wird immer FFh angezeigt, aber die 8 LED's am Outport $600 zeigen immer die bekannten, ominösen 06h an.

Bin jetzt leider mit meinen Messmitteln am Ende. Meine "Vermutung", das Rd_6xx Signal liegt ja an, ebenso am Eingang von U7 Pin 1, siehe Osci -Output, nur passt das nicht mit dem Timing (Enable Signal ) von U7 zusammen.
Hoffe heute kommen meine 74LS - Typen. Werde dann berichten

Bild : IMG_3969_k.jpg
X = 0,05 us , y = 0,2 V , 10:1 Tastkopf
Oben U4a Pin 1
Unten U4b Pin 15

IMG_3970_k.jpg
X = 0,10 us , y = 0,2 V , 10:1 Tastkopf
Oben U4a Pin 1
Unten U4b Pin 15

IMG_3967_k.jpg
X = 0,,05 us , y = 0,2 V , 10:1 Tastkopf
Oben U7 Pin 1
Unten U1 Pin 11
Dateianhänge
IMG_3969_k.jpg
IMG_3970_k.jpg
IMG_3967_k.jpg
Viele Grüße

Helmut

Die meisten Desaster in der IT Welt haben eine gemeinsame Ursache: Wir machen mal eben.
HSiebrecht
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 116
Registriert: 30.11.2007, 23:50
Wohnort: Westfalen

Re: Neue ct-BASIC-Version mit Detailverbesserungen

Beitrag von HSiebrecht »

Hallo zusammen,

so habe meine 74LS - Typen erhalten, leider identisches Fehlerbild, war ja fast zu erwaten.

Funktionalität von U7 ist gegeben, siehe Osci-Outputs, mich stört aber die kurze Zeit ca. 15 ns wo U7 Pin 1 = Q1 noch aktiv ( Low ) ist und dem Wechsel von U7 Pin 18 = Ausgang D0 von Low nach High Pegel.

Unten die Bilder vom Osci.

IMG_3979_k.jpg
X = 0,05 us , y = 0,2 V , 10:1 Tastkopf
Oben U7 Pin 1
Unten U7 Pin 18 , an U7 Pin 2 = Low-Signal.


IMG_3977_k.jpg
X = 0,05 us , y = 0,2 V , 10:1 Tastkopf
Oben U7 Pin 1
Unten U7 Pin 18 , an U7 Pin 2 = High-Signal.
Dateianhänge
IMG_3979_k.jpg
IMG_3977_k.jpg
Viele Grüße

Helmut

Die meisten Desaster in der IT Welt haben eine gemeinsame Ursache: Wir machen mal eben.
cm
Konstrukteur
Konstrukteur
Beiträge: 124
Registriert: 06.12.2007, 10:36
Wohnort: Hannover
Kontaktdaten:

Re: Neue ct-BASIC-Version mit Detailverbesserungen

Beitrag von cm »

Das sieht doch schon mal gut aus, bei mir nicht wesentlich anders.

Jetzt haben wir nur noch eine Chance: Evt. kommen die Signale über die 220-Ohm-Widerstände zu spät am FPGA an. Probier mal 100 oder 47 Ohm, vielleicht erstmal auf dem untersuchten Pin 18. Mess mal, ob die Signale am FPGA-VG so oder verzögert ankommen. Die "CPU" liest mit steigender Flanke des Sel_Rd-Signals.

Hier kommt es auf ein paar Nanosekunden an!

Ich habe bei mir induktionsfreie SMD-Widerstände drin, möglicherweise verzögern bedrahtete schon ein paar Nanosekunden zuviel. Bei TTL darf man eigentlich die Schutzwiderstände ganz weglassen, weil TTL-Ausgänge auf "1" nur einen ungefährlichen Strom liefern können. 220 Ohm scheinen mir im Nachhinein auch etwas viel.

BTW: Das angezeigte "F/F" in der Bildecke ist das ASCII-Zeichen "Formfeed", hat nichts mit dem Hex-Wert $FF zu tun!
Carsten Meyer

Redaktion c't
HSiebrecht
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 116
Registriert: 30.11.2007, 23:50
Wohnort: Westfalen

Re: Neue ct-BASIC-Version mit Detailverbesserungen

Beitrag von HSiebrecht »

Hallo Carsten,

danke für das Update.

So, habe mal 47 Ohm ( Metallfilm ) statt der 220 Ohm für R8 ( Vorwiderstand D0 ) eingebaut, leider identisches Ergebniss wie vorher.
Siehe Osci-Bilder IMG_3984_k.jpg und IMG_3988_k.jpg.

Anschliessend habe ich für R8 einen 100 Ohm SMD Widerstand eingesetzt, immer noch das Problem bei D0. Osci-Bild IMG_3991_k.jpg.

Für Bild IMG_3984_k.jpg gilt,

- Kanal A ( oben ) = U7 Pin 18, an U7 Pin 2 = High Signal.

- Kanal B ( unten ) = VG-Leiste b32 der CORE_IO = FP20 D0, also vor R8.

- Externer Trigger auf U7 Pin 1 = RD_60x.

Bild IMG_3988_k.jpg = IMG_3984_k.jpg, jedoch Kanal B nach oben verschoben um zeitlichen Versatz von ca. 10 ns zu ermitteln.

Bild IMG_3991_k.jpg = IMG_3988_k.jpg, diesmal mit 100 Ohm SMD Widerstand, ebenfalls ca. 10 ns Laufzeitunterschied über R8.

Das verstehe ich wirklich nicht so ganz, wenn ich mich recht entsinne haben wir ca. 10 ns Laufzeit / Verzögerung bei einem TTL Gatter, aber über einen Widerstand 10 ns. Ok, da ist mein Osci ( 60 MHz ) schon an seinen Grenzen um ein besseres Ergebniss zu erzielen, aber der zeitliche Versatz ist nun mal da, und wenn es dann noch auf jede Nanosekunde ankommt. :roll:

Nachtrag, hatte auch U4, U3 und U7 noch jeweils einen 100n C spendiert.
Dateianhänge
IMG_3984_k.jpg
IMG_3988_k.jpg
IMG_3988_k.jpg (10.73 KiB) 13221 mal betrachtet
IMG_3991_k.jpg
Viele Grüße

Helmut

Die meisten Desaster in der IT Welt haben eine gemeinsame Ursache: Wir machen mal eben.
VGOE
kann c't-Lab-Bausätze löten
kann c't-Lab-Bausätze löten
Beiträge: 45
Registriert: 26.10.2009, 10:56

Re: Neue ct-BASIC-Version mit Detailverbesserungen

Beitrag von VGOE »

Versuch mal einfach einen Metallfilmwiderstand durch einen Kohleschichtwiderstand zu ersetzen.
Es gibt leider immer wieder Produktionschargen, wo der induktive Belag bei MF Rs höher ausfällt, als bei Kohle Rs. Sollte nicht vorkommen aber hat mich schon Stunden der Suche gekostet. Ansonsten versuch mal von Deinem Lieferanten das Datenblatt der Widerstände abzufragen. Dort kann man dann den induktiven und kapazitiven Belag nachlesen und die Verzögerung berechnen. Bei den hier eingesetzten Frequenzen reicht der induktive Belag, der Kapazitive wird sich nach meinen Erfahrungen erst jenseits von 750MHz bemerkbar machen.
CU
Volker
Antworten