Neue ct-BASIC-Version mit Detailverbesserungen
Neue ct-BASIC-Version mit Detailverbesserungen
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.
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
Redaktion c't
Baudratenumschaltung
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 .
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.
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
Redaktion c't
-
- kann c't-Lab-Module konstruieren
- Beiträge: 205
- Registriert: 01.12.2007, 09:23
Re: Neue ct-BASIC-Version mit Detailverbesserungen
Gibts das neue Basic auch schon für die LCD Variante ?
Re: Neue ct-BASIC-Version mit Detailverbesserungen
Fast. Muss das main.bit noch anpassen, da ist auch der Bock mit der Baudratenumschaltung drin.magicroomy hat geschrieben:Gibts das neue Basic auch schon für die LCD Variante ?
Carsten Meyer
Redaktion c't
Redaktion c't
-
- kann c't-Lab-Module konstruieren
- Beiträge: 116
- Registriert: 30.11.2007, 23:50
- Wohnort: Westfalen
Re: Neue ct-BASIC-Version mit Detailverbesserungen
Ja, Danke, Super, mit dem neuen main.bit funktioniert die Baudraten-Umschaltung. Kurzer Test mit allen Baudraten war erfolgreich.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 .
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!
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.
Helmut
Die meisten Desaster in der IT Welt haben eine gemeinsame Ursache: Wir machen mal eben.
Re: Neue ct-BASIC-Version mit Detailverbesserungen
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.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.
Carsten Meyer
Redaktion c't
Redaktion c't
Re: Neue ct-BASIC-Version mit Detailverbesserungen
Jetzt online, bitte mal testen, mein Aufbau ist zur Zeit zerpflückt.magicroomy hat geschrieben:Gibts das neue Basic auch schon für die LCD Variante ?
Neuen main.bit nicht vergessen!
Carsten Meyer
Redaktion c't
Redaktion c't
-
- kann c't-Lab-Module konstruieren
- Beiträge: 205
- Registriert: 01.12.2007, 09:23
Re: Neue ct-BASIC-Version mit Detailverbesserungen
Sieht gut aus !
Mein Programm kommt jetzt nicht mehr mit Syntax Error wenn ich an einem Drehregler drehe.
Danke
Gruß
Volker
Mein Programm kommt jetzt nicht mehr mit Syntax Error wenn ich an einem Drehregler drehe.
Danke
Gruß
Volker
Re: Neue ct-BASIC-Version mit Detailverbesserungen
Bitte ausprobieren und messen (Scope mit 10:1 Tastkopf!):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.
Code: Alles auswählen
.OPT Proc6502, CaseInsensitive
*=$8000 ; hier: mitten im BASIC-RAM
loop LDA $0600
STA $0600
STA $0610
STA $B000
JMP loop
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
Redaktion c't
-
- kann c't-Lab-Module konstruieren
- Beiträge: 116
- Registriert: 30.11.2007, 23:50
- Wohnort: Westfalen
Re: Neue ct-BASIC-Version mit Detailverbesserungen
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 ...
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.
Helmut
Die meisten Desaster in der IT Welt haben eine gemeinsame Ursache: Wir machen mal eben.
-
- kann c't-Lab-Module konstruieren
- Beiträge: 116
- Registriert: 30.11.2007, 23:50
- Wohnort: Westfalen
Re: Neue ct-BASIC-Version mit Detailverbesserungen
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
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
Viele Grüße
Helmut
Die meisten Desaster in der IT Welt haben eine gemeinsame Ursache: Wir machen mal eben.
Helmut
Die meisten Desaster in der IT Welt haben eine gemeinsame Ursache: Wir machen mal eben.
-
- kann c't-Lab-Module konstruieren
- Beiträge: 116
- Registriert: 30.11.2007, 23:50
- Wohnort: Westfalen
Re: Neue ct-BASIC-Version mit Detailverbesserungen
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.
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.
Viele Grüße
Helmut
Die meisten Desaster in der IT Welt haben eine gemeinsame Ursache: Wir machen mal eben.
Helmut
Die meisten Desaster in der IT Welt haben eine gemeinsame Ursache: Wir machen mal eben.
Re: Neue ct-BASIC-Version mit Detailverbesserungen
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!
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
Redaktion c't
-
- kann c't-Lab-Module konstruieren
- Beiträge: 116
- Registriert: 30.11.2007, 23:50
- Wohnort: Westfalen
Re: Neue ct-BASIC-Version mit Detailverbesserungen
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.
Nachtrag, hatte auch U4, U3 und U7 noch jeweils einen 100n C spendiert.
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.
Nachtrag, hatte auch U4, U3 und U7 noch jeweils einen 100n C spendiert.
Viele Grüße
Helmut
Die meisten Desaster in der IT Welt haben eine gemeinsame Ursache: Wir machen mal eben.
Helmut
Die meisten Desaster in der IT Welt haben eine gemeinsame Ursache: Wir machen mal eben.
Re: Neue ct-BASIC-Version mit Detailverbesserungen
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
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