Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » Projekt: K1000 auf Microcontroller-Basis » Themenansicht

Autor Thread - Seiten: -1- [ 2 ]
000
31.08.2011, 20:14 Uhr
Micha

Avatar von Micha

Durch eine Antwort in dem K1000-Emu Thread inspiriert hab ich mich an die Vorbereitungen für folgendes Projekt herangewagt:

Den Tischrechner Robotron K100x mittels Atmel Microcontroller(n) nachbilden. Eigentlich bin ich überhaupt nicht der talentierte Bastler. Das für mich faszinierende an diesen Atmel-Dingern ist, dass man recht komplexe Dinge mit einem Minimum an Hardware und externer Beschaltung erreichen kann. Um den Preis, dass man eben auch einiges an Logik per Software erledigen muss was sonst die Hardware gemacht hätte.

Garkeine Frage - dieses Konzept ist praktisch diametral entgegengesetzt zum originalen Harware-Konzept des K1000, bei dem U808-typisch alles mit *seeehr* aufwendigen externen Schaltungen realisiert ist.

Sei es drum. Die Atmels sind für mich eine Chance, mit wenig Bastelaufwand etwas hinzubekommen das funktioniert. Vorläufig schwebt mir eine Schaltung vor, bei der 4 Microcontroller zusammenarbeiten, um die insgesamt angestrebte Funktionalität zu realisieren. Hier ist eine ganz grobe Übersicht wie das aussehen könnte. Ich will versuchen, das zunächst auf 'nem Breadboard aufzubauen. Hab schon ein paar Teile bestellt.

Da ich selber sehr wenig Bastel-Erfahrung habe und auch niemanden in meinem Umfeld fragen kann hier meine bisherige Fragenliste:

* in dem Beispiel zur LED-Anzeigenbeschaltung wird der Transistortyp BC328 angegeben. Bei Reichelt gibts gleich drei davon: BC328-16/25/40. Ist es egal welcher oder spielt das ne Rolle?
* welches ist die geeignetste Kommunikation zwischen den Microcontrollern? Bin durch "googeln" auf TWI gestossen, gibt aber wohl Alternativen. Muss mich in eine Variante einarbeiten (welche?)
* welcher Atmel wäre am besten für die "CPU" geeignet (die Emulation braucht mindestens 8 KB Rom und 4 KB Ram)?
* hab bisher keine wirklich akzeptablen Bastel-Elemente für Tasten gefunden. Womit würdet ihr so eine Tischrechner-Tastatur nachbasteln? Ideal wären Tasten in die man eine Beschriftung einlegen oder oben aufkleben kann.

Hier werden bestimmt demnächst noch viele Fragen kommen. Hoffentlich toleriern diejenigen, die schon alles und mehr zum Thema Basteln wissen meine Unwissenheit




Links:
Blockschaltbild: www.merseberger.de/K1000/K1000_Prototyp_Blockschema_rev0.png
Beispiel 7-Segment-Ansteuerung: http://www.mikrocontroller.net/articles/AVR-Tutorial:_7-Segment-Anzeige
TWI Beispiel: http://www.nongnu.org/avr-libc/user-manual/group__twi__demo.html
Reichelt BC328: http://such001.reichelt.de/?SID=12Tkqr0X8AAAIAAA-DgAc2bbe59044d07ecc5a0f085d6401dd309;ACTION=444
--
Denken ist wie googeln, nur krasser.

Dieser Beitrag wurde am 31.08.2011 um 20:16 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
31.08.2011, 23:17 Uhr
holm

Avatar von holm

Denke mal über ICs wie ULN2003 statt der Einzeltransistoren für die LED Anzeige nach, genauso wie ggf. Widerstandsnetzwerke und ähnlichen Kram.
Ich bin mir auch sehr sicher, das ein einzelner Atmega in der Lage ist, den Gesammtaufwand zu beherrschen (ich programmiere die Dinger kommerziell), dazu braucht man wirklich keine 4 Stück
Porterweiterungen sind einfach mit Schieberegistern zu bewerkstelligen etc. pp..

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
01.09.2011, 08:24 Uhr
felge1966

Avatar von felge1966

@Micha
Falls du bisher noch keine Erfahrungen mit den Atmels hast, würde ich dir erst einmal das Projekt http://www.mikrocontroller.net/topic/177481
CPM auf AVR empfehlen. da kannst du dir die Emulation des 8080 genauer ansehen.
Als Anfängerprojekt ist dein Vorhaben (ohne dir den Mut nehmen zu wollen) nicht geeignet.

Gruß Jörg

Dieser Beitrag wurde am 01.09.2011 um 08:24 Uhr von felge1966 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
01.09.2011, 08:28 Uhr
PeterSieg



Hi.

Für die Anzeige gibt es mind. 2 mögliche Varianten:
LCD: http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD
LED: http://www.mikrocontroller.net/articles/AVR-Tutorial:_7-Segment-Anzeige
(Auch eine BAS Videoausgabe wäre möglich)

Generell sind die Tutorials dort sehr gut!

Für die Tastatur hat E.Mueller für den Tiny 2009 eine 12x4 Matrixtastatur mit einem 4-bit zu 16 Dekoder IC (74154?) realisiert.
http://hc-ddr.hucki.net/wiki/doku.php/tiny:emueller

Realisierung in C (GCC). Dann kann man sowohl ein erstes Testprogramm für den PC erstellen und für den AVR. Erste Version kann auch über serielle Schnittstelle bedient werden und dann später zuerst Anzeige dazubauen und zuletzt Tastatur.

Ich denke auch 1 AVR sollte reichen. Ich empfehle ATmega644/1284/2560.

Viel Erfolg und Spaß!
Peter
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
06.09.2011, 20:16 Uhr
Micha

Avatar von Micha

Vielen Dank für die Tips!

'ne LCD oder Video-Ausgabe geht in diesem Fall garnicht - so ein Tischrechner muss einfach 7-Segment-LED Anzeige haben ;-)
Die Tastatur für den Tiny 2009 muss ich mir auf jeden Fall ganz genau anschauen, so wie ich es sehe ist das die einzige brauchbare Bastel-Lösung zu dem Thema die mir bisher vorliegt. Alternative: die Tastatur und einiges anderes von einem echten K1000 direkt verwenden, der es beim besten Willen nicht mehr tut... also den Nachbau im Originalgehäuse realisieren. Hab sowieso 2 K1003 hier, aus denen mit etwas Glück irgendwann mal ein original funktionierender wird... und dann ist eben ein Gehäuse übrig.

Inzwischen hab ich mich Schritt für Schritt in die faszinierende Welt der Atmels eingearbeitet. Und dabei auf die harte Tour festgestellt, dass man bei solchen Experimenten *MINDESTENS* den Zeitfaktor 5 gegenüber dem optimalen Ablauf ansetzen sollte Irgendwas hakelt immer und treibt einen in den Wahnsinn, bis dann endlich irgendwann ein Licht aufgeht. Es ist ein Lernprozess, und lernen tut man nun eben nun mal nur durch Fehler. Von blinkenden Leuchtdioden über dezimale Ziffernanzeigen bin ich inzwischen bei der Kommunikation mehrerer Atmels per TWI Bus angelangt. Ich werd wohl doch bei dem Konzept mehrerer per TWI Kommunikation vernetzter Atmels bleiben, die sich in spezielle Aufgaben teilen. Die einfacheren Atmels sind einfach verführerisch billig, und so kommt man mit einem Minimum an Schaltung davon...
--
Denken ist wie googeln, nur krasser.

Dieser Beitrag wurde am 06.09.2011 um 20:59 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
07.09.2011, 21:34 Uhr
Gerhard



Hallo Micha,

ich bin zwar kein K1000-Fan und habe auch so gut wie null Ahnung von Atmels u.dgl., aber da ich auch so einen defekten K1003 dastehen habe und mich auch ein wenig mit der Emulation von (noch älteren) Rechnern befasst habe, finde ich die Sache recht interessant, habe allerdings einiges nicht verstanden:

Für die Idee, die Tastatur und die Anzeige mit Atmels nachzubilden, wünsche ich jedenfalls viel Erfolg.
Aber zwischen dem Eintippen der Daten und der Ausgabe des Ergebnisses muss der Rechner ja einiges tun, nämlich rechnen. Und das kann er, wie ich aus eigener (ein Vierteljahrhundert alter) Erfahrung weiß, sehr genau, wenn auch in einem Schneckentempo, das wir schon damals (noch nicht computerverwöhnt) als quälend langsam empfanden. Das ist allerdings kein Wunder, es liegt einerseits an der schwerfälligen BCD-Gleitkommaarithmetik, zum anderen daran, dass der U808-Dino die meiste Zeit damit beschäftigt ist, die Daten von seinem 8 Bit Flaschenhals-Bus zu multiplexen und demultiplexen. Und daran liegt auch der gewaltige Hardwareaufwand rings um den Prozessor (der eigentlich erst dadurch zu einem solchen wird). Und die Software dazu ist auch nicht gerade schlank.

Meine Fragen dazu sind nun:
a) Wer hatte eigentlich seinerzeit die ROMs des K1003 ausgelesen?
(Holm?) Gab es vielleicht auch mehrere Varianten?
b) Ich habe damals das Ganze disassembliert und zu meinem eigenen Erstaunen größtenteils einen sinnvollen , wenn auch nicht sehr durchschaubaren, Maschinencode (spaghettissimo!!!) bekommen. Das Listing von den insbesamt 6,75KByte (+ 2KB vom Mathemodul) ist ca. 80 Seiten lang. Hat sich inzwischen jemand näher damit beschäftigt und neue Erkenntnisse gewonnen?
c) Wie willst Du in Deinem Fall dieses "Mittelstück" der Gesamtaufgabe realisieren? Hältst Du es für erfolgversprechend, den Urcode so wie er ist in Deinen Emu zu stecken, oder wäre es doch einen Versuch wert, die Programmstruktur zu enträtseln?

Ich habe inzwischen rausbekommen, dass der Programmkern incl. I/O in den ersten 2KB (Adr. 0..07FF) liegen müsste, die zweiten 2KB (Adr. 1800H..1FFFH) enthalten viele Subroutinen dazu (vermutlich die eigentlichen Rechenalgorithmen), Mathemodul Adr. 2000H..27FFH.
die Eproms mit BM 90 u. 91 (Adr. 3000H..31FFH) gehört zur Magnetkarteneinheit, der Rest zum Drucker einschl. Textmodus.

Freundliche Grüße
Gerhard
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
07.09.2011, 22:20 Uhr
holm

Avatar von holm

Ja ich hatte die Roms ausgelesen und meinen K1003 im Endeffekt reparieren können.
Der Test des Druckers und des Magnetstreifenlesers steht allerdings noch aus.
Ich habe auch Nichts weiter zur Programmanalyse beigetragen, mir fehlt einfach Zeit...

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
08.09.2011, 21:12 Uhr
Micha

Avatar von Micha

@Gerhard:

meine Hochachtung vor jedem der in der Lage ist, ein statisch vorliegendes Disassembler-Listing ansatzweise zu verstehen. Maschinensprache atomisiert Problemlösungen bis zur Unkenntlichkeit.

b) für meine bisherigen Basteleien war die Vorarbeit vom Forum-Mitglied AE eine ganz wichtige Voraussetzung. Der hatte (offenbar durch scharfes Angucken der Listings) herausbekommen dass im Bereich ab ca. 300h die Tastaturabfrage erfolgt, und diese ansatzweise kommentiert.

Ich selber hab zunächst mal ne Prozessor-Emulation geschrieben, den originalen K1000 ROM im Rahmen dieser Emulation gestartet, und dann mal geschaut was mit den I/O Ports geschieht.
Das Verstehen bezüglich der OUT Ports war relativ einfach. Die Ansteuerung der LEDs ist nachvollziehbar. Zumindest im Grundprinzip. Es werden alle Ziffern der Anzeige nacheinander durchgeschaltet. Und innerhalb jeder Ziffer alle Segmente.

Wie die Tastatur-Eingabe funktioniert und wo sie abgefragt wird, daran hab ich mir ca. 3 Wochen lang die Zähne ausgebissen. Ohne die Informationen von AE hätt ich das vermutlich nie rausbekommen.
Inzwischen hab ich ne Ahnung wie diese Eingabe funktioniert, konnte es in ner Emulation unter Windows/Excel erfolgreich realisieren.

c) tatsächlich hab ich vor, den originalen ROM Code des K1000 so wie er ist in eine Emulation einzubetten. Zumindest zunächst. Ohne die Aktivierung der Zusatz-Geräte Magnetkarten-Leser und Drucker funktioniert es so. Alles weitere ist vorläufig...

Mein derzeitig größtes operatives Problem:
ich bastle auf Breadboard-Basis. Der "größte" Atmel der sich auf ein Breadboard aufstecken lässt ist der Atmega 644. Der hat mehr als ausreichend Flash für dieses Projekt aber eben "nur" 4K Ram. Muss mal sehen ob/wie ich den K1000 RAM einschränken kann. 4K war ja die maximale Ausbaustufe...
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
08.09.2011, 21:33 Uhr
tp




Zitat:
Micha schrieb
Mein derzeitig größtes operatives Problem:
ich bastle auf Breadboard-Basis. Der "größte" Atmel der sich auf ein Breadboard aufstecken lässt ist der Atmega 644. Der hat mehr als ausreichend Flash für dieses Projekt aber eben "nur" 4K Ram. Muss mal sehen ob/wie ich den K1000 RAM einschränken kann. 4K war ja die maximale Ausbaustufe...

Kaufst Du Dir ein Teensy++ 2.0 Board hast Du immerhin 8K http://www.pjrc.com/teensy/ und 'nen USB Port gibt's direkt mit dazu .
--
Die Zeit ist auch nicht mehr, was sie mal war! (Albert Einstein)

Dieser Beitrag wurde am 08.09.2011 um 21:33 Uhr von tp editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
09.09.2011, 10:42 Uhr
PeterSieg



Hi. Der 1284 kostet 7-8€ ist PIN kompatibel zum 16/32/644 und hat 16kb SRam.
Gibts über ebay z.B bei elecont, CSD, und machmal auch bei Pollin..

Peter
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
09.09.2011, 10:48 Uhr
Gerhard



@Micha


Zitat:
Micha schrieb
Maschinensprache atomisiert Problemlösungen bis zur Unkenntlichkeit.

Das ist leider so und gilt für den U808 ganz besonders, zumal der auch noch einige MOV- und auch OUT-Befehle für ganz was anderes zweckentfremdet. Trotzdem reizt mich ein Versuch, ein bisschen dahinterzusteigen.
In der Tat liegt von 0310H bis 032DH eine Subroutine, beginnend mit IN 02, die den IN 00-Befehl enthält, umrahmt von diversen OUT-Befehlen. Ähnliche Befehlsfolgen folgen nochmals ab 035CH und ab 046EH.
Kannst Du mir mal die Kommentare zukommen lassen, die Hartmut Dir zugeliefert hat? (Ich hoffe, er hat nichts dagegen.)

Ich glaube, unsere Interessen kommen sich da nicht in die Quere, sondern können sich ergänzen. In Sachen Bastelei will und kann ich Dir nicht ins Handwerk pfuschen, zumal ich da absoluter Laie bin. Ich schleppe allerdings schon längere Zeit eine ganz andere Idee mit mir herum: nämlich die die gesamte Logik des K100x softwaremäßig auf einem anderen Rechner (evtl. sogar KC) nachzubilden und vom Original nur die Tastatur und die Anzeige beizubehalten. Mal sehen, was da vom Programm übrigbleibt, wenn der ganze hardware- (808)-bedingte Ballast wegfällt.
Ob ich je dazu komme, steht in den Sternen, da bei mir noch etliche dringendere (und interessantere) Dinge rumliegen, die gern fertig werden möchten...
Immerhin habe ich schon mal die Tastatur abgetrennt und einen Steckverbinder dazwischengesetzt, um die Tastatur unabhängig verwenden zu können.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
17.09.2011, 08:38 Uhr
Micha

Avatar von Micha

Das Projekt nimmt inzwischen konkret Gestalt an: Abbildung.
Wie in 000 skizziert bedient jeweils ein Atmega8 die Hälfte des 16-stelligen Displays. Diese beiden Microcontroller sind mit einem weiteren Atmega1284 (der "ZVE" des K1000) per TWI verbunden. Ein extra Microcontroller für die Tastatur ist nicht notwendig, da der 1284 genügend IO Pins übrig hat.

Der Verbund dieser drei MC funktioniert bereits, eine Art Anzeigetest ist stabil stundenlang gelaufen. Nun liegt die Arbeit vor mir, den U808 Emu in C umzuschreiben. Bin schon wahnsinnig gespannt wieviel Performance diese Bastelkiste nachher im Vergleich zu einem echten K1000 liefert.

Die Schaltung läuft so wie sie ist stabil, bisher ist kein Absturz aufgetreten. Mir ist unklar ob ich trotzdem prophylaktisch Stütz- und Abblockkondensatoren hinzufügen sollte, wie das in manchen Tutorials oder Büchern empfohlen wird, oder ob das Aberglaube ist...

Leider hab ich bisher noch nichts wirklich passendes gefunden, wie man aus beschaffbaren Bauteilen eine vernünftige Matrix-Tastatur aufbauen könnte. Werd wohl zunächst eine echte K1000-Tastatur anklemmen.
--
Denken ist wie googeln, nur krasser.

Dieser Beitrag wurde am 17.09.2011 um 08:56 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
17.09.2011, 11:14 Uhr
PeterSieg



prima!

Hier Info's zur C64 Tastatur, die auch eine Matrixtastatur ist und an die man günstig dran komman sollte..

http://www.c64-wiki.de/index.php/Tastatur

Evtl. hilft dir das ja..

Peter
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
17.09.2011, 12:19 Uhr
holm

Avatar von holm

2 Atmegas für die Anzeige? Micha. das ist totaler Overkill.
Ein paar kaskadierte Schieberegister hätten das auch erledigt und die werden auch nur mit Clock, Data und evtl. Reset angesteuert (muß nicht sein, da man den Laden auch "leerschieben" kann).
Das Ganze paßt dann ideal an die SPI.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 17.09.2011 um 12:20 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
17.09.2011, 15:30 Uhr
Micha

Avatar von Micha


Zitat:
holm schrieb
... Das Ganze paßt dann ideal an die SPI.

Das ist wirklich ein guter Punkt. Mit den drei MCs komm ich mir schon manchmal vor wie Dynamit-Harry, wenn ich die Drähte des ISP zum 100sten Mal in das Steckerboard reinfummle. Dafür hat die ISP Programmiererei aber auch einen hohen Spassfaktor, wegen der lustigen Namen wie Miso oder Mosi

Bei dem niedrigen Preis der Atmegas bin ich garnicht auf die Idee gekommen, auch nur über Alternativen nachzudenken. So einen Atmega8 bekommt man ja schon um die 2,50 Euro. Natürlich ist der total unterfordert. Ich hab aber Zweifel, ob ich bei der Verwendung klassischer Digitalschaltkreise billiger oder mit weniger Beschaltungsaufwand davonkäme.

Das mit der C64 Tastatur ist ne gute Idee, denke das wär mit wenig Aufwand zumindest zum Testen machbar. Ich schau neuerdings immer ganz neidisch auf die Kassenterminals bei Edeka & Co. Das sind so auf die spezielle Anwendung massgeschneiderte Tiptasten-Matrizen, mit Einlege-Beschriftung in den Tasten. Muss mal intensiver googeln, ob man an Teile für solche Spezial-Terminals irgendwie rankommt...
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
17.09.2011, 16:06 Uhr
holm

Avatar von holm

Suche nach POS Terminal (Point of Sale)...

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
20.09.2011, 11:25 Uhr
Micha

Avatar von Micha

Sehr guter Hinweis. Mal schauen ob ich mit dem hier was reissen kann:
http://www.ebay.de/itm/Wincor-Nixdorf-TA85-POS-Kassentastatur-Tastatur-/260687521783?pt=Kassen_Abrechnungen&hash=item3cb22fe7f7
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
20.09.2011, 19:01 Uhr
PeterSieg



Nun, wenn du direkt eine PS/2 Tastatur anschließbar machst, kannst du so ziemlich alles anschließen.. ;-) Ist dann aber keine Matrixtastatur mehr..

Peter
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
25.09.2011, 18:35 Uhr
Micha

Avatar von Micha

Bis auf das leidige Thema Tastatur geht es gut voran: Aktuelles Foto

Die Schaltung ist inzwischen ziemlich gründlich ausgetestet, der Emu für die U808 Umgebung in C ist geschrieben, der emulierte K1000 startet mit der originalen Firmware in sein Einschaltbild.
Woran es derzeit hapert ist eine richtige Tastaturanbindung zum Experimentieren. Vorläufig hab ich nur zwei Taster aus der Bastelkiste auskramen können, die ich zum Probieren an bestimmte I/O-Pin Kombinationen anstecken kann.

Und inzwischen ist mir auch klar dass die Verschaltung dieses Prototypen alles andere als optimal ist. Ich hatte vergessen, dass die beiden "Hälften" des Displays beim echten K100x nicht einfach in der Mitte aufgeteilt sind, sondern auf eine recht verworrene Weise auf zwei Ports aufgeteilt sind. Hab das diesmal durch umständlichen Programmcode entwirren müssen.

Der nächste Prototyp wird anders strukturiert: da bedient der "Hauptprozessor", ein Atmega 1284P, das Display und die Status-LEDs nebenbei mit (dafür hat er genug I/O Pins), und ein zweiter Atmega8 kümmert sich um die Tastatur.

Ich warte z.Z. sehnsüchtig auf die auf ebay ersteigerte Kassentastatur. Mal sehen ob ich die direkt zeilen-/spaltenweise anzapfen kann. Das wär toll...
--
Denken ist wie googeln, nur krasser.

Dieser Beitrag wurde am 25.09.2011 um 18:44 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
25.09.2011, 21:37 Uhr
PeterSieg



Noch ein Tipp. Die Entwicklung immer gut dokumentieren.. da haben später alle was davon. Und das Ganze dann auf eine schöne Webseite..

Was ist aus der - zugegeben nicht stilechten - Variante, eine PS/2 Tastatur anzubinden geworden..?

Viel Spaß und Erfolg weiterhin.

Peter

Dieser Beitrag wurde am 25.09.2011 um 21:38 Uhr von PeterSieg editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
27.09.2011, 14:54 Uhr
Micha

Avatar von Micha


Zitat:
Die Entwicklung immer gut dokumentieren..

@PeterSieg: das ist ein guter Punkt. Mein Stapel an fliegenden Blättern mit Skizzen und Bemerkungen nimmt derzeit immer mehr zu. Und auch der Zeitaufwand, mich durch diese durchzuwühlen wenn ich etwas nachgucken möchte...
Muss mir wohl bald mal die Zeit nehmen, einen ordentlichen Plan aufzuzeichnen.

Derzeit bin ich etwas frustriert. Mein Prototyp macht inzwischen 100% korrekt das, was auch ein echter K1001 kann. Aber das "Look & Feel" ist nicht richtig. Ein echter K1000 blinkert kurz mit den Anzeigen auf jeden Tastendruck. Das wird mit zwei OUT Befehlen gesteuert. Ist eigentlich nicht funktionswichtig, aber ergonomisch sinnvoll und eben auch "stilecht". Hab mich diesbezüglich mit dem Konzept des ersten Prototyps vertan. Die Kombination von Ziffernausgabe über einen seriellen Bus und mit schnellem kurzem Aus/Anschalten der Ziffern bekomme ich nicht auf die Reihe (und weiss inzwischen besser wie man das machen sollte...)
Die Frage ist nun ob ich den ersten funktionierenden Prototyp auseinanderrupfen sollte zwecks Teile-Gewinnung, oder ob ich paar Tage Geduld hab bis die nächste Lieferung von Reichelt eintrifft
--
Denken ist wie googeln, nur krasser.

Dieser Beitrag wurde am 27.09.2011 um 15:02 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
021
27.09.2011, 17:11 Uhr
Mobby5



@Micha
Dann schick doch seriell einen Code für "Taste gedrückt" rüber. Darauf hin muss der "Display-Controller" eben mal blinken.
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
022
27.09.2011, 17:22 Uhr
PeterSieg



Jup. Den Vorschlag von Mobby5 finde ich gut. Würde den ersten Prototypen nicht schlachten.. ein paar Tage über den zweiten zu 'brüten' während man auf die Teile wartet fällt zwar schwer.. aber kann auch neue Ideen zu Tage fördern..
Alternativ eine Leitung für 'Anzeige blinken' vom 1284 zu den Slaves spendieren. High = normale Anzeige, Low = Anzeige aus.. so könnte man selbst die Blinkfrequenz etc. zentral steuern..

Peter

Dieser Beitrag wurde am 27.09.2011 um 17:23 Uhr von PeterSieg editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
023
28.09.2011, 09:09 Uhr
Micha

Avatar von Micha

mir isses vorhin gerade wie Schuppen aus den Haaren gefallen: immer wenn die "BES" (besetzt) LED aufleuchtet gehen zeitgleich bei der Anzeige die Lichter aus. Das passiert kurz bei jeder Taste die gedrückt wird aber auch, wenn ein Programm gestartet wird. Damit hab ich ein klar definiertes Kriterium wann die Anzeige abgeschaltet werden muss :-)

Edit: wär zu einfach gewesen -da Fehlermeldungen eben auch im "BES" Zustand angezeigt werden :-(
2. Edit: inzwischen hab ich es doch noch hin bekommen, dass der Prototyp wie ein echter K100x blinkt. Somit ist das Projekt in seiner ersten Phase komplett. Ich werd am WE alles dokumentieren und einen Link veröffentlichen.


Hab übrigens inzwischen mal die Performance meines selbstgebastelten K1000 anhand verschiedener Programme mit einem echten K1002 verglichen:
Der auf einem ATMega 1284P mit 8MHz Takt laufende "K1000" ist ziemlich genau um den Faktor 1,6 schneller als das echte Gerät. Liesse sich also mit dieser Technik wahlweise auf Originalgeschwindigkeit einbremsen, oder mit einem externen 20 MHz Quarz bis auf die max. 4-fache Geschwindigkeit eines echten K100x beschleunigen. Wenn man die U808 Emulation in Assembler schreiben würde wär sicher mehr möglich, aber da will ich derzeit nicht ran.
--
Denken ist wie googeln, nur krasser.

Dieser Beitrag wurde am 28.09.2011 um 14:35 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
024
28.09.2011, 11:06 Uhr
PeterSieg



Sehr schön.. freue mich schon auf Schaltplan und Firmware.. ;-)

Peter
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
025
28.09.2011, 22:11 Uhr
Micha

Avatar von Micha

heute ist *ENDLICH* die gebrauchte Wincor/Nixdorf Kassentastatur eingetroffen, die ich auf ebay vor ca. einer Woche für 10 Euro gekauft hatte. Ich glaub das Teil ist fast optimal für dieses Bastelprojekt. Man kann die Tasten nach Belieben umgruppieren oder eigene Labels einlegen.

Und inzwischen kann ich mich auch ganz gut mit der Idee anfreunden die Tastatur per PS/2 Interface anzuschliessen. Hab schon eine Quelle / Beispielprojekt gefunden: http://www2.htw-dresden.de/~beck/Atmel/Keyboard/PS_2-keyboard.html

Hab heute schon mal die Labels beschriftet, morgen probier ich die Anbindung einer PS/2 Tastatur an einen Atmel.


--
Denken ist wie googeln, nur krasser.

Dieser Beitrag wurde am 28.09.2011 um 22:30 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
026
29.09.2011, 21:51 Uhr
Micha

Avatar von Micha

ich habe fertig

Bin gerade ganz euphorisch. So wie es aussieht hat doch noch alles ein gutes Ende genommen. Heute hatte ich ja die Kassentastatur auseinandergepflückt, und die sichere (aber häßliche) Option Anbindung per PS/2 abgewählt. Wär fast schief gegangen, nachzulesen im Matrixtastatur-Thread. Aber ich hatte Glück: die Pfostenstecker lassen sich doch in nem Breadboard betreiben. Man muss sie nur immer mit "Sie" ansprechen, darf auf keinen Fall dran ruckeln. Ich hab einfach alles auf nem Brett ruhiggestellt. Der Prototyp 1 funktioniert jetzt (incl. Tastatur). Er kann alles was ein K1001 mit 4K Ram auch kann.

Größtes Manko: man kann keine Programme speichern oder laden. Das ist ein Teilprojekt für den nächsten Prototypen. Neben Aufräumen/Vereinfachen der Schaltung ist dann auch die Einbindung eines SD-Card Readers Thema. Beispiele zum Thema Atmega + SD-Card gibts ja im Web einige.


--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
027
29.09.2011, 22:25 Uhr
PeterSieg



Herzlichen Glückwunsch!

Das ist doch mal ein Glas guten Rotwein wert.. ;-)

Peter
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
028
02.10.2011, 14:40 Uhr
Micha

Avatar von Micha

Ich muss ja auch sagen ich bin begeistert, wie rapide sich mit den Atmel Microcontrollern ein mittelschwer komplexes Projekt realisieren lässt. Von der ersten Teilelieferung bis heute ist nur ein knapper Monat vergangen. Die erforderlichen Elektronikkenntnisse waren minimal, eher waren Vorkenntnisse im Programmieren mit C von Vorteil. Das Gerät ist zwar nicht perfekt, aber funktional.

Ein Glücksfall war ganz sicher, dass ich eine gebrauchte Kassentastatur bekommen konnte, die fast perfekt zu diesem Vorhaben passt. Hätte ich angefangen, selber etwas aus Tastern aufzubauen, wär das Ergebnis wahrscheinlich schauderhaft...

Hab mich dann heute mal drangemacht, einen Schaltplan sowie eine Stückliste vom Ist-Zustand zu erstellen. Kann bei Interesse hier heruntergeladen werden:

Unterlagen zum K1001uC

Wenn man sich so einen Rechner auf den Schreibtisch stellt beneiden einen entweder alle, oder halten einen für komplett plemm plemm. Ist doch beides toll, oder? ;-)
--
Denken ist wie googeln, nur krasser.

Dieser Beitrag wurde am 02.10.2011 um 18:30 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
029
05.10.2011, 20:08 Uhr
Rainer



ein schönes Projekt! mach weiter so! Wenn dann ne SD-Karte drann ist zum speichern wäre vielleicht auch die Ansteuerung eines Kassendruckwerkes interessant. Bau ich bestimmt mal nach, wenn der endgültige Ausbauzustand fertig ist mach ich vielleicht ne Platine...
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
030
07.10.2011, 15:42 Uhr
PeterSieg



Falls es mal eine Platine geben sollte, melde ich mal Interesse dafür an.

Peter
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
031
16.10.2011, 18:29 Uhr
Micha

Avatar von Micha

Baustellen-Eröffnung ;-)



Ab sofort bastel ich an einer überarbeiteten Version. Mit nur einem Atmega, und mit SD-Card als Speichermedium. Und mit ein wenig verbesserter Ergonomie. Mal sehen was aus dem Prototyp (Foto) demnächst wird.
--
Denken ist wie googeln, nur krasser.

Dieser Beitrag wurde am 16.10.2011 um 21:34 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
032
20.10.2011, 16:52 Uhr
Rainer



und dann am besten noch sowas ansteuern, dann isser komplett:

http://www.ebay.de/itm/360401913900?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
033
21.10.2011, 21:14 Uhr
Micha

Avatar von Micha

ja, ich halte seit einiger Zeit intensiv Ausschau nach nem geeigneten Thermodrucker der beschaffbar ist, nicht zu teuer und nicht zu klobig. Das hier ist schon ne ganz gute Option. Bissl klobig aber was besseres hab ich bisher auch nicht gefunden.

Bei dem zweiten Prototypen, der derzeit entsteht sind einige Erfahrungen mit dem ersten eingeflossen:
* Die Tastatur ist nicht mehr so kunterbunt, ich hab versucht die Verwendung verschiedener Farben zu minimieren.
* Tastaturbeschriftungen mit der größt-möglichen Zeichengröße, um sie besser ablesen zu können
* Ich verwende jetzt rote 7-Segment-Anzeigen, die sind einfach von der Helligkeit optimal.
* Die Anzeige ist nach vorn gebracht worden und pult-artig gestaltet für einen besseren Blickwinkel.

Mein Sorgenkind #1 ist derzeit die Anbindung der Tastaturmatrix. Diesmal hab ich einen Verbinder erwischt der etwas anders konstruiert war und sich für Breadboard überhaupt nicht eignet. Im Verlauf meiner Reparatur-Versuche wurde es dann immer schlimmer, schliesslich hab ich das hier als Notlösung konstruiert, aber wenig Vertrauen dazu:


So sehen die beiden Proto's derzeit aus:

--
Denken ist wie googeln, nur krasser.

Dieser Beitrag wurde am 21.10.2011 um 21:21 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
034
21.10.2011, 21:24 Uhr
Rolanet

Avatar von Rolanet

Wirklich ein tolles Projekt! Ich verfolge alles mit großem Interesse!
--
"Das Internet? Gibt's den Blödsinn immer noch?" (Homer Simpson)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
035
25.10.2011, 20:59 Uhr
Micha

Avatar von Micha

die Bastelei vom letzten WE ist völlig in die Hose gegangen - ich musste einige (an sich triviale) Erkenntnisse wieder mal neu auf die harte Tour lernen:

Nachdem die Bastelei in den letzten Wochen sehr zügig und fast ohne Fehler funktioniert hatte dachte ich jetzt, ich kann auch mal Zeit sparen und die komplette Schaltung in einem Zug aufbauen, ohne baugruppenweise zu testen. Als ich dann alles zusammen hatte und den Strom einschaltete, verhielt sich das Gerät - ähm - unerwartet. Fehlersuche an einer Drahtkommode ist nicht wirklich spassig.
Und dann kam es noch schlimmer: 3 Ports meines Atmega verhielten sich nicht wie erwartet. Wahrscheinlich durchgefeuert (hatte mal kurzzeitig Ground mit Zero verwechselt). Hab das Ding dann in einem emotionalen Moment in die Mülltonne entsorgt.
In den letzten beiden Tagen hab ich alles auseinandergenommen und Stück für Stück wieder verdrahtet und mit massgeschneiderten Testprogrammen jeweils ausprobiert.
Dabei musste ich feststellen, dass ich einem voreiligen Schluss aufgesessen war. Der neue Atmel hatte genau das gleiche Problem - die gleichen 3 Ports gingen nicht (?) Nach etwas Googeln hatte ich die Ursache: wenn man das JTAG Interface nicht in den FUSES deaktiviert, treiben bestimmte Pins von Port C keine Leistung. GRRRRR!!!!!! ÄRGER!!!!!

Naja, hab ich eben wieder mal was auf die harte Tour gelernt:
* Schaltungen immer stückweise aufbauen und testen,
* das Kleingedruckte in den Datenblättern lesen, um keine voreiligen/falschen Schlüsse zu ziehen.

Hihi, irgendwo hab ich mal den Spruch gelesen: "Alle Menschen sind schlau. Die einen vorher, die anderen hinterher."
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
036
25.10.2011, 21:43 Uhr
PeterSieg



Solche emotionalen Zustände kenn wohl jeder, der hier bastelt.. ;-)

Da hilft nur Ruhe und Besonnenheit, sonst geht das Karma in den Eimer :-)

(Das ist aber viel leichter gesagt als getan)

Der Weg ist das Ziel.

Peter
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
037
26.10.2011, 14:16 Uhr
TTL-Grab



Ja, den Fehler mit den JTAG-Fuses macht man aber nur einmal. Ich hab damals bei einer Umstellung von 8535 auf ATmega auch stundenlang vor meinem Quellcode gebruetet, alles war schick und ging trotzdem nicht. Als ich das Datenblatt etwas genauer konsultierte, fiel es mit wie Schuppen aus den Haaren

Gruss Micha
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
038
30.10.2011, 09:35 Uhr
Micha

Avatar von Micha

ich glaub inzwischen, dass es in der digitalen Elektronik "gutartige" und "bösartige" Schaltungen gibt ;-)

Meine erste Variante mit mehreren ATmegas, die per TWI kommunizieren war/ist sehr robust. Die Hardware lief praktisch von Anfang an ohne wesentliche Probleme.

Diesmal versuch ich mich zwecks Ansteuerung der Segmentanzeigen mit einer Kombination aus 74HC595 Schieberegistern und ULN2803A: praktisch eine Reihe aus 8 npn Transistoren, die die diskreten Transistoren vom letzten Mal ersetzen sollen. Ansatzweise funktioniert das Ganze, aber seit Tagen hab ich das Problem, dass eine der Anzeigestellen meistens dunkel bleibt, bzw. ab und zu langsam aufleuchtet. Dann macht diese Anzeigestelle eine Weile genau dass, was sie soll, und taucht dann ganz allmählich wieder für eine Weile ins Dunkel ab. Als ob ein Signalpegel driftet und nicht klar auf + oder - festgezurrt ist. Dabei hab ich nun die Schaltung schon zum 100sten Mal durchgesehen, alle einbezogenen Drähte gewechselt sowie auch den betroffenen ULN und den 74HC Schieberegister-Chip.

Jeweils ein 100nF Kondensator direkt neben der Spannung für die Chips hat die Sache etwas verbessert aber das Problem nicht komplett beseitigt.

Edit: es gibt da eine Sache die mir unklar ist, vielleicht kann da jemand helfen: bei dem ULN2803A, der ja praktisch vom Verhalten eine Reihe aus 8 npn Transistoren nachbildet, hab ich GND, sowie jeweils IN und OUT beschaltet. Ausserdem hat dieser Schaltkreis noch einen Pin "common free wheeling diodes" dessen Zweck mir unklar ist, den ich offen gelassen habe...
--
Denken ist wie googeln, nur krasser.

Dieser Beitrag wurde am 30.10.2011 um 09:41 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
039
30.10.2011, 09:59 Uhr
holm

Avatar von holm

Da sind die common wheeling Diodes angeschlossen :-)

Manno, im Chip sind Freilaufdioden integriert die man gut gebrauchen kann, wenn man induktive Lasten wie Relais usw. schaltet, der Anschluß geht dann an die Relaisbetriebsspannung.

Ich bin mir sicher das Du da ein Softwareproblem hast, das hört sich für mich nach Strobokopeffekt an. Ist die Anzeigebetriebsspannung gesiebt oder nur gelichgerichtet und übleragern sich dann die 100Hz mit der Ausgabefrequenz für die Anzeige?

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 30.10.2011 um 10:00 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
040
30.10.2011, 10:20 Uhr
Micha

Avatar von Micha

wenn ich die Antwort richtig deute kann ich den "common wheeling diodes" (pin10) also ohne Bedenken unbeschaltet lassen?

Zum zweiten Punkt: tatsächlich hab ich inzwischen mal mit einem Netzteil an Stelle von Batterien experimentiert. Und tatsächlich hab ich dann einen schick anzusehenden Effekt, dass die Anzeigestellen eine nach der anderen schön langsam aus- und wieder einblenden. Sieht richtig schick aus, auch wenn es für ein Taschenrechner-Display nicht wirklich sinnvoll ist

Derzeit bastel ich wieder mit ner Batterie als Spannungsquelle, also ganz glattem Gleichstrom. Das Problem beschränkt sich auf die erste Stelle im Schieberegister, gleich nach dem Ausgabeport vom Atmel. Diese erste Stelle spinnt immer wieder...
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
041
30.10.2011, 14:09 Uhr
holm

Avatar von holm

Überlege Dir Dein Timing nochmal genau und wann Daten übernommen und auf die Ausgänge geschaltet werden. Ich bin mir sicher, dass sich das Problem auch da anfindet.

Findet hier evtl. Jemand meine hellseherischen Fähigkeiten cool? Beifall von irgendwoher?

*grin*
Alles schon selbst erlebt...

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
042
31.10.2011, 20:05 Uhr
Micha

Avatar von Micha

der Herr Holm hatte natürlich recht. Vermutlich entwickelt man einen siebenten Sinn für sowas, wenn man nur lange genug damit bastelt...

Es war kein Hardware- sondern ein Software-Problem.
Konkret benutze ich zwei Schieberegister vom Typ 74HC595 in Serie. Da wird jedes 16. Mal eine "1" reingeschoben, ansonsten "0".

Nachdem ich alles mögliche probiert hatte, hab ich mir nochmal überlegt, was bei jener problematischen Stelle anders ist. Das war folgendes: ich hab die "1" am Ausgang zum Schieberegister in diesem Zyklus stehen lassen. Nachdem ich jetzt die "1" sofort abschalte, nachdem sie zum seriellen Eingang des Schieberegisters gesendet wurde, funktioniert alles wunderbar. Womöglich hat der Status des seriellen Eingangs so eines 74HC595 nebenbei einen Einfluss auf das Verhalten der Ausgangsports. Muss wohl so sein und steht sicher auch im Datenblatt. Jaja, ich gebs ja zu, ich gehör auch zu den Typen die erst mal die Datenblätter nicht lesen und dann alles auf die harte Tour lernen
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
043
31.10.2011, 20:29 Uhr
holm

Avatar von holm

:-)

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
044
10.11.2011, 19:25 Uhr
Micha

Avatar von Micha

Der 2. Prototyp war und ist ne schwere Geburt. Inzwischen hab ich ihn soweit am Laufen dass die K1001 Funktionalität gegeben ist (ohne Speichermedium, ohne Drucker). Also wie schon mal gehabt. Allerdings ist der Anschluss jener Peripherie diesmal schon in der Schaltung vorgesehen, entsprechende Ports reserviert. So sieht die Kiste aktuell aus (neben einem K1003 mit abgenommenem Gehäuse):


--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
045
10.11.2011, 19:35 Uhr
Rolanet

Avatar von Rolanet

"Treffen der Generationen" - Einfach Beeindruckend!
--
"Das Internet? Gibt's den Blödsinn immer noch?" (Homer Simpson)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
046
20.11.2011, 12:59 Uhr
Micha

Avatar von Micha

inzwischen hab ich nen SD-CARD Reader gebastelt:

http://www.merseberger.de/K1000/Prototyp2/sdcard.jpg

Der Vorgang beleuchtet mal wieder mal die Tatsache, dass der Aufbau entsprechender Hardware nur ein kleiner Teil der Gesamtaufgabe ist. Meine Hardware macht derzeit noch gar nix, muss erst mal die entsprechende Software testen und anpassen. Schaltung und Treibersoftware stammen von der Website von Ulrich Radig.

Eines ist auf jeden Fall klar: hier muss ich die Original-Firmware des K100x patchen, wenn ich auf einer SD-Card mehrere Programme unterbringen möchte. Gottseidank hat Forum-Mitglied AE den Code schon ziemlich gut dokumentiert.
Was mir derzeit vorschwebt:
Die Befehle MKL und MKS so modifizieren, dass sie ein dreistelliges Argument erwarten. Praktisch so wie das D/P macht. Vielleicht lassen sich ja Code-Teile von D/P für diesen Zweck wiederverwenden
Damit könnte ich dann 1000 Programme auf einer SD-Card ablegen. Ich denke das ist genug für die Restlebenszeit unseres Universums, davon auszugehen, dass es bis ans Ende jeglicher Zeit nicht mehr als 1000 K1000-Programme geben wird
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
047
20.11.2011, 13:34 Uhr
holm

Avatar von holm

"Niemand wird jemals mehr als 640KByte RAM benötigen...."

:-)
Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
048
20.11.2011, 13:35 Uhr
Micha

Avatar von Micha

abso-fucking-freaking-lutely!
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
049
20.11.2011, 15:27 Uhr
holm

Avatar von holm

Laß das mal mit "fucking" in Bezug auf diese Person, mir fliegen sonst die Pickel wie Leuchtkuglen davon...

:-)

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
050
20.11.2011, 16:52 Uhr
PeterSieg



Hi. Wie ich sehe hast du 2xSI-Dioden zur Spannungsreduktion genommen..
Mit 4 von 5 SD Karten ging das auch früher.. heute..?
Besser ist es einen 3.3V Spannungsregler einzusetzen. z.B LF33CV oder
LP2950-CZ3.0

Peter
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
051
20.11.2011, 17:29 Uhr
Micha

Avatar von Micha

die zwei niedlichen kleinen Fire-Ants...

ja ich weiss, die Spannungsreduzierung mit zwei Dioden ist ne "schmutzige Lösung". Ich hoffe es reicht für diesmal zum Probieren. Für den richtigen Typ möchte ich auf die Schaltung von Roland Riegel zurückgreifen, der hat ne saubere Lösung veröffentlicht.
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
052
27.12.2011, 22:45 Uhr
Micha

Avatar von Micha

Betreff: SD-Card Anbindung

Das Projekt hier kommt wohl nur in Urlaubstagen deutlich voran. Das Grund-System, der Rechner, funktioniert ja seit Oktober. Mit der Einbindung eines Massespeichers (Ersatz für die originalen Magnetkarten) schleppt's sich seitdem so hin. Mein Breadboard-Aufbau verhält sich bockig. Mal liest die Karte, mal gibts nur Fehler. Ich glaub SD-Card Interface und Breadboard is womöglich keine gute Kombi...
Die Initiative von Olli für ein ähnliches Projekt sowie paar freie Tage haben mich motiviert, das hier mal wieder hochzuholen nach langer Zeit. Ich hab mir überlegt, dass ich eine kleine Extra-Platine, rel. unabhängig vom Hauptprojekt, entwerfe. Mit einem SD-Card-Adapter, einem Atmega sowie einem TWI Anschluss. Sowas lässt sich dann auch für diverse andere AVR Projekte wiederverwenden, die Massespeicher benötigen und wo es nicht so wahnsinnig auf Geschwindigkeit ankommt (das TWI wird ganz sicher das Nadelöhr).
Die angehängte Skizze ist mein allererser Versuch mit Target 3000/PCB-Pool-Edition. Werd die Tage mal versuchen das auf ne möglichst kleine Leiterplatte zu bekommen und als Prototyp herstellen lassen.
Über Tips / Hinweise zu mögl. Fehlern wär ich dankbar.

http://www.merseberger.de/K1000/Prototyp2/SDcard_card.pdf
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
053
28.12.2011, 13:13 Uhr
paulotto



was ist ein TWI? Ich stehe auf dem Schlauch...

CU,

Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
054
28.12.2011, 13:40 Uhr
TTL-Grab



TWI bedeutet "two wire interface" und ist die Atmel-Bezeichung fuer den I2C-Bus

Gruss Micha
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
055
28.12.2011, 14:12 Uhr
holm

Avatar von holm

I2C ist patentiert, deswegen dieser Budenzauber...
Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
056
28.12.2011, 15:43 Uhr
Micha

Avatar von Micha

darf man alles nicht so eng sehen. Namen sind Schall und Rauch. Und ja, TWI is Atmels Umgehung der geschützten Bezeichnung I2C. Ich persönlich finds auch doof so ne Kürzel patentrechtlicht zu schützen. Aber mich fragt ja wieder mal niemand...

Vom praktischen Gesichtspunkt ist das Two Wire Interface ne feine Sache. Solange es nicht auf Hochgeschwindigkeit ankommt ist das ne prima Möglichkeit, mit lediglich zwei Drähten mehrere Microprozessoren zur Kooperation zu bringen.
--
Denken ist wie googeln, nur krasser.

Dieser Beitrag wurde am 28.12.2011 um 16:54 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
057
28.12.2011, 19:14 Uhr
holm

Avatar von holm

Wobei es auch noch SPI als solches gibt, auch wenn eine SPI I2C senden kann :-)
Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
058
28.12.2011, 19:26 Uhr
Micha

Avatar von Micha

genau! Und dann gibts ausserdem noch Freiberg in Sachsen. Ich glaub ich muss dringend ma vobei kommen. Bei ner Freiberger Eierschegge aufm Schwanenschlösschen aufm Kreuzteich bereden wie das mit dem SPI nu würglich geht...
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
059
28.12.2011, 22:51 Uhr
holm

Avatar von holm

Bei einer Eierschecke? Ich glaube ich geh fest.
Mit einem Freiberger Bier dazu? Danach können wir gliech in die alte Kreuzmühle gehen, da ist die Firma von dem der in Szeczin 1984 die E60 repariert hat..

:-)

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
060
29.12.2011, 11:14 Uhr
Micha

Avatar von Micha

ich glaub, ich begrabe meine Pläne, selber ne SD-Card Zusatzplatine zu basteln, ganz schnell wieder. Habe beim "googeln" das hier entdeckt:

http://www.shop.display3000.com/elektronikmodule/sd-speicherkartenplatine.html#

Da gibts für ca. 20 Euro ne Miniplatine die genau das bietet was ich benötige. Wenn ich selber was mache (oder anfertigen lasse) komme ich mit Sicherheit auf ein Mehrfaches. Gibt trotzdem noch genug zu tun. Die Hauptplatine ist ja schliesslich auch noch nicht entworfen. Und die werd ich wohl nicht per "googeln" finden...
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
061
08.01.2012, 17:45 Uhr
Micha

Avatar von Micha

genau wie der alte Holzmichel lebt auch dieses Projekt immer noch

während ich immer noch auf die SD-Karten Karte warte, hab ich inzwischen mal versucht, die "Hauptplatine" in Target 3001 als Schaltplan zu zeichnen. Spiele mit dem Gedanken, einen Prototyp über PCB-Pool anfertigen zu lassen, falls die Kosten nicht völlig ausufern. Das ist der aktuelle Schaltplan:

http://www.merseberger.de/K1000/Prototyp2/K1000uC_v2.0.pdf

Wär über jeglichen konstruktiven Kommentar dankbar. Insbesondere bewegen mich folgende Fragen:

- SMD oder DIL? Wenn ich's fertigen lasse ist SMD sicher die platzsparendere, also billigere Variante. Aber dann sind die Chancen später selber zu modifizieren bzw. Designfehler auszubessern fast Null.

- Spannungsversorgung: hier einfach nur als Hohlstecker vorgesehen, mit der Annahme dass ein +5V Netzteil reingesteckt wird. Ist der "Luxus" extra noch auf der Schaltung einen 5V Spannungsregler vorzusehen sinnvoll?

- "übrige" Adern auf Flachkabel: hab für die Verbindung zur Display-Platine ein 34-poliges Flachband vorgesehen. 3 Adern würden frei bleiben. Was macht am meisten Sinn: frei lassen/alle auf Masse/zwischen Masse und VCC gleichmässig aufteilen?
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
062
08.01.2012, 18:23 Uhr
Rolli



Wie sieht die Schaltung am anderen Ende des Dispay-Connectors aus?(Was für 7-Segment-Anzeigen werden denn verwendet, wo befinden sich die Widerstände für die Segmentströme?)

Gruß
Rolli
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
063
08.01.2012, 18:37 Uhr
Micha

Avatar von Micha

das Display wollte ich hauptsächlich aus mechanisch/konstruktiven Gründen getrennt halten - um die Anzeigen und die 5 Status-LEDs z.b. geneigt oder erhöht im Gehäuse positionieren zu können.

Der Display-Teil enthält 5 Status-LEDs (Signale NEUGR,GRAD,BES,STOP,KOMPL) sowie 16 Stück 7-Segment-Ziffern - Typ "Common Cathode", ich verwende im Breadboard-Prototyp Kingbright SC-52 11 RT.
Weiter soll die Display-Platine eigentlich keine Elektronik enthalten. Die Signale c0 bis c15 gehen jeweils auf die gemeinsame Kathode einer Ziffer, die Signale segA..G sowie DP sind über alle Ziffern parallel verbunden. Hoffe das macht Sinn.

EDIT: Rolli du hast recht, ich hab die Vorwiderstände für die Anzeigen vergessen. die sollen tatsächlich auf die Hauptplatine mit drauf. Nicht wundern, in wenigen Minuten ist *simsalabim* die Zeichnung anders.
Vielen Dank für den Hinweis Rolli!

--
Denken ist wie googeln, nur krasser.

Dieser Beitrag wurde am 08.01.2012 um 19:09 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
064
08.01.2012, 19:12 Uhr
tp




Zitat:
Micha schrieb
- Spannungsversorgung: hier einfach nur als Hohlstecker vorgesehen, mit der Annahme dass ein +5V Netzteil reingesteckt wird. Ist der "Luxus" extra noch auf der Schaltung einen 5V Spannungsregler vorzusehen sinnvoll?

Für 5V und <= 500mA (zur Not mit dafür ausgelegten und nicht aus China stammenden Netzteilen auch 1A) finde ich am praktischsten, eine USB Buchse zu nehmen. Der Datenkram bleibt einfach unbeschaltet. Flexibel, preisgünstig, verpolungssicher und bei < 500mA auch mal direkt am PC betreibbar.
--
Die Zeit ist auch nicht mehr, was sie mal war! (Albert Einstein)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
065
08.01.2012, 20:13 Uhr
Micha

Avatar von Micha

das ist auch ein guter Tip, danke tp! Müsste dann also ne Mini-USB-Buchse sein? - hast du eine Empfehlung wo man so ein *Nicht-China* USB Netzteil kaufen kann zum testen?
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
066
08.01.2012, 20:28 Uhr
paulotto



ihr glaubt wohl an den Weihnachtsmann, daß ihr meint, es gibt Stecker-NT, die nicht aus China kommen? Wo lebt ihr denn? Es gibt nur gute oder weniger gute aus China...

Gruß,

Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
067
08.01.2012, 20:32 Uhr
Micha

Avatar von Micha

*drop*

Hastjarecht. Aber die Hoffnung stirbt eben zuletzt
--
Denken ist wie googeln, nur krasser.

Dieser Beitrag wurde am 08.01.2012 um 20:32 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
068
08.01.2012, 20:49 Uhr
tp



Die Buchse der Wahl hängt ja eigentlich nur vom Kabel ab. Es spricht auch nix gegen eine USB-B Buchse, soweit man passende Kabel rumliegen hat. Die meisten USB-Netzteile haben ja netterweise kein festes Kabel dran, sondern 'ne USB-A Buchse.

Wenn es SMD werden sollte, ist aber sicher die Mini-USB-B / SMD passender. Sieht dann nicht so klobig aus . Die sind aber gar nicht so leicht zu löten, da die Lötanschlüsse praktisch nicht aus dem Gehäuse rausgucken.

Eine wirklich gute Empfehlung zum Netzteil selber hab' ich auch nicht. Ich nutze zur Zeit ein 2 x USB von Delock. Naja, letztendlich ist das sicher auch aus China, funktioniert aber schon seit ca. 3 Monaten ohne Probleme im Dauerbetrieb. Ich würde zumindest um die für 2,50€ einen Bogen machen .
--
Die Zeit ist auch nicht mehr, was sie mal war! (Albert Einstein)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
069
08.01.2012, 20:55 Uhr
tp




Zitat:
paulotto schrieb
ihr glaubt wohl an den Weihnachtsmann, daß ihr meint, es gibt Stecker-NT, die nicht aus China kommen? Wo lebt ihr denn? Es gibt nur gute oder weniger gute aus China...

Jaja, ist ja auch ein Smiley dahinter . Lohnt sich trotzdem mal das Video oben anzugucken (dürfte auch verständlich sein, wenn man kein Englisch kann). Das dort auseinander genommene "Netzteil" ist laut Aufdruck für 1A spezifiziert, liefert aber bei 400mA Belastung nur noch 3,7V.
--
Die Zeit ist auch nicht mehr, was sie mal war! (Albert Einstein)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
070
09.01.2012, 11:31 Uhr
paulotto



darum sag ich ja: gute und weniger gute...

Gruß,

Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
071
09.01.2012, 12:05 Uhr
TTL-Grab



Meint ihr wirklich, eine USB-Buchse zur Spannungsversorgung waere eine gute Idee? Ein SMD-USB-Buchse schon garnicht, egal ob Mini oder nicht. Was meint ihr, wie schnell die abgerissen ist. Und wer will das Ding nur wegen der Spannungsversorgung am PC betreiben?? Da sind die Hohlstecker eine wesentlich solidere Loesung.

Gruss Micha
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
072
09.01.2012, 12:28 Uhr
Olli

Avatar von Olli

Unabhanegig ob mechanisch toll oder nicht - es Gibt USB Steckernetzteile. Das ist ein Stecker den du in eine Steckdose steckst, und "oben drauf" dann das USB-Kabel steckst.


--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
073
09.01.2012, 14:03 Uhr
tp



Dass eine SMD Buchse nicht grade große mechanische Belastungen aushält, ist klar. Aber inwieweit sich die Print-Einbaubuchsen für Hohlstecker in Bezug auf die mechanische Belastbarkeit so großartig von den "großen" USB-B Buchsen unterscheiden, erschließt sich mir nicht. Vielleicht die, die man im Gehäuse reinschrauben kann, aber evtl. gibt's sowas ja auch für USB.

Naja, letztendlich kann das ja jeder für sich entscheiden, zumal das sicher auch vom Gerät abhängt. Ich werd' mir das mit den Hohlsteckern jedenfalls nicht mehr antun solange es um 5V geht.
--
Die Zeit ist auch nicht mehr, was sie mal war! (Albert Einstein)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
074
09.01.2012, 16:24 Uhr
TTL-Grab



Meine Abneigung gegen USB-Buchsen als Stromversorgung ruehrt einfach daher, dass bisweilen Leute hilfesuchend mit ihren Druckern (es waren bis jetzt nur Drucker) bei mir auftauchen, bei denen die USB-Buchse abgerissen war, weil sie gegen das Kabel gerannt sind. Bei SMD reisst es dann noch die Leiterzuege mit runter. Und dass, obwohl die Buchse im Gehaeuse ja auch noch ein bischen Halt hat. Die Hebelwirkung des relativ grossen Steckers ist eben nicht zu unterschaetzen. Aber ich kenne ja auch nicht alle Bauformen. Vielleicht gibt es ja wirklich mechanisch stabile Ausfuehrungen.

Gruss Micha
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
075
09.01.2012, 16:38 Uhr
Rüdiger
Administrator



Zitat:
Micha schrieb
- Spannungsversorgung: hier einfach nur als Hohlstecker vorgesehen, mit der Annahme dass ein +5V Netzteil reingesteckt wird. Ist der "Luxus" extra noch auf der Schaltung einen 5V Spannungsregler vorzusehen sinnvoll?

Nimm doch einfach ein PC-Netzteil als Stromversorgung und benutze desssen Motherboard-Stecker.
Einerseits hast Du 5V und 12V zur Verfügung, andererseits brauchst Du keine Angst zu haben, versehendlich mal das falsche Netzteil anszustecken (ist mir schon mal passiert -> Alles tot).
--
Kernel panic: Out of swap space.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
076
09.01.2012, 16:56 Uhr
felge1966

Avatar von felge1966

Ich habe in der letzten Zeit häufiger folgendes Netzteil verwendet:
http://www.pollin.de/shop/dt/Nzg5OTQ2OTk-/Stromversorgung/Netzgeraete/Festspannungs_Netzgeraete/Schaltnetzteil_VOLTEK_SPEC7188B.html
Das hat mit Sicherheit auch genug Reserve für die Anzeige und kann auch mit eingebaut werden.

Gruß Jörg

Dieser Beitrag wurde am 09.01.2012 um 16:57 Uhr von felge1966 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
077
09.01.2012, 21:29 Uhr
paulotto



das ist doch, soweit ich mich erinnere, das VolkerP im Kc87 verwendet hat...

Gruß,

Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
078
10.01.2012, 08:36 Uhr
felge1966

Avatar von felge1966

Genau das Netzteil.

Ich hatte es unabhängig von VolkerP auch bei meinen Floppybeisteller für den KC85 verwendet.

Gruß Jörg
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
079
11.01.2012, 16:58 Uhr
Micha

Avatar von Micha

Gibt eben viele verschiedene Arten die Dinge "richtig" zu machen, je nach Geschmack. Vielen Dank erst mal für die vielen Anregungen!
Hab mich dann doch entschlossen bei dem Hohlstecker zu bleiben - inzwischen hab ich gelernt dass bei Hohlsteckern "Pluspol innen" Quasi-Standard ist. Einen 7805 hinten dran um das Ding halbwegs idiotensicher zu machen und noch einen Ein/Ausschalter, weil Ein/Ausschalten per Netzstecker wirklich das Letzte ist. Heute bei vielen Billiggeräten üblich, ich finds doof...

So langsam wirds auch mit mir und Target 3000 etwas effektiver - seitdem ich rausgekriegt hab wie man Busse anlegt. Aber wie man die Bezeichner von Bauteilen sinnvoll platziert muss ich mal noch erforschen

http://www.merseberger.de/K1000/Prototyp2/K1000uC_v2.0.pdf
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
080
11.01.2012, 17:10 Uhr
Rüdiger
Administrator



Zitat:
Micha schrieb
Hab mich dann doch entschlossen bei dem Hohlstecker zu bleiben - inzwischen hab ich gelernt dass bei Hohlsteckern "Pluspol innen" Quasi-Standard ist.

Schalte für alle Fälle eine Sicherung und eine Diode in Reihe und eine Leistungs-Z-Diode parallel. Das schützt vor Überspannung und Verpolung.
--
Kernel panic: Out of swap space.

Dieser Beitrag wurde am 11.01.2012 um 17:27 Uhr von Rüdiger editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
081
11.01.2012, 20:28 Uhr
holm

Avatar von holm

..sinnvoller ist eine Sicherung und eine Gräzbrücke. Überspannung (für den 7805) ist bei Wandwarzen recht selten...
Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
082
14.01.2012, 10:22 Uhr
Micha

Avatar von Micha

Bye Bye Batterie!

Schaltpläne sind eben doch zu was gut und man sollte auch ab und zu reingucken. Hab heute früh noch mal den frisch gezeichneten Schaltplan mit meiner Drahtkommode verglichen: hmm - Auf'm Plan zwei Verbindungen der 74HC595 an Masse, im Drahtverhau nur einer. Hab dann mal die fehlenden Masseverbindungen hinzugefügt und hatte gleich so eine Ahnung. Tatsächlich, wo bisher nur Batteriebetrieb funktioniert hatte geht es jetzt auch mit Netzteil. Ne praktische Lektion in Sachen "floatender" Pegel
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
083
15.01.2012, 15:40 Uhr
PeterSieg



@Micha: Ist da eigentlich auch ein Emulator in C dabei 'abgefallen'..?
Einer der sich unter Win$/Linux compilieren läßt und anstatt der Excel+VB Geschichte dienen kann..?

Peter

Dieser Beitrag wurde am 15.01.2012 um 15:40 Uhr von PeterSieg editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
084
15.01.2012, 16:12 Uhr
Micha

Avatar von Micha

ich hab während der bisherigen Entwicklung immer mal geschaut dass sich die C Sourcen auch unter Linux mit GCC übersetzen lassen. Hab dann auch mit der Version auf dem PC ein paar Probleme debugt, auch mal einen Performance-Test gemacht (auf 'nem Feld/Wald/Wiesen PC ist ca. die 300-fache Ausführungsgeschwindigkeit im Vergleich zum Original möglich).

Was bisher leider total hinten runter gefallen ist ist die Entwicklung eines gescheiten User-Interfaces für den PC. *Eigentlich* wollte ich mich ja in GTK einarbeiten. Hab dann irgendwann gemerkt dass es viel einfacher ist Hardware zusammenzutackern als eine GUI in Software zu entwickeln - daher ist dieser Teil vorerst auf der Strecke geblieben - der Mensch ist eben faul
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
085
15.01.2012, 19:27 Uhr
PeterSieg



Ich würde das auch nicht übertreiben wollen in einer ersten lauffähigen Version..
Einfach die 7-Segmentanzeigen als eine Zahlenreihe ausgeben und Return zum Anfang der Zeile.. das sollte ersteinmal gehen..

Peter
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
086
18.01.2012, 20:45 Uhr
Micha

Avatar von Micha

Heute hab ich mir mal gewagt zu "fusen"

Hatte 'ne Ladung 18,432 MHz Quarze bekommen und hab dann ganz mutig die Soft (F_CPU) und die Hardware (Fuses) entsprechend umgestellt. Hat funktioniert, jetzt läuft die Kiste mit ca. 5-facher Geschwindigkeit gegenüber dem Original. Einfach atemberaubend!!!

Nun stehe ich vor der Design-Entscheidung, wie die RS232 Schnittstelle dranbasteln. der RxD0 Pin (*) des Atmega 1284P ist frei, aber der TxD0 Pin (**) wird normalerweise für die Tastaturabfrage verwendet. Am TxD0 hängt ein Pulldown-Widerstand von 10K (entspr. Schaltplan in Beitrag 079). Weiss ev. jemand von den alten Hasen ob das ein Showstopper ist? Oder könnte das trotzdem funktionieren? ich will ja auch nur 9600 Baud
---

* Pin 14
** Pin 15
--
Denken ist wie googeln, nur krasser.

Dieser Beitrag wurde am 18.01.2012 um 20:58 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
087
18.01.2012, 22:18 Uhr
holm

Avatar von holm

Ich weiß nicht was Du da machst trotz dem ich ziemlich alt bin, ein Hase war ich aber noch nie...

Die Portausgänge eines Atmel trieben normalerweise locker 20mA, über die 10K grinst der nur.
Allerdings geht nur entweder TxD0 oder Port Pin (alternate Port Functions). Du mußt Dich da sicher für eines von Beiden entscheiden, es sei denn Du programmierst eine Software SIO auf anderen Port Pins..

Gruß,

Holm

PS: hast du die Dinger die ganze zeit mit dem internen RC Oszillator betrieben? (angezogene Handbremse?)
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 18.01.2012 um 22:19 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
088
18.01.2012, 22:38 Uhr
Micha

Avatar von Micha


Zitat:
holm schrieb
hast du die Dinger die ganze zeit mit dem internen RC Oszillator betrieben? (angezogene Handbremse?)

Ja. Ist in dem Fall nicht so wild. Geschwindigkeit ist hier eigentlich nur ein Extra-Spass, Hauptsache es funktioniert überhaupt. Den 18,432 MHz Quarz hab ich hauptsächlich wegen des RS232 Interfaces dazugenommen.
* Bisher war die Kiste ja nur das Äquivalent eines K1001
* Um auf den Level K1002 zu kommen, bin ich dran ein SD-Card Interface dranzubasteln um Programme speichern bzw laden zu können
* Der K1003 hat nen Thermodrucker. Ich hab lange drüber nachgedacht und entsprechende Bauteile recherchiert. Bin irgendwann zu der Meinung gelangt dass eine RS232 Schnittstelle sowie entsprechende Software für mich gut genug als Ersatz für den ollen Thermodrucker ist. Mit der Schnittstelle kann ich:
- Programme am PC in Mnemonics auflisten
- mittels eines Monitors den Speicherinhalt anschauen bzw. manipulieren
- Speicherbereiche zum PC laden oder speichern
Daher denke ich, ich werd nicht weiter in Richtung Thermodrucker "forschen"
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
089
18.01.2012, 23:06 Uhr
tp



Falls das mit den Pins für den seriellen Port doch noch problematisch werden sollte, gibt's auch noch NewSoftSerial.
--
Die Zeit ist auch nicht mehr, was sie mal war! (Albert Einstein)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
090
19.01.2012, 07:30 Uhr
felge1966

Avatar von felge1966

Zum Thema THermodrucker gibts in der Bucht gerade einen günstigen Bondrucker, der 15,96 Euro kostet und 40 Zeichen je Zeile hat. Ansteuerung über die paralelle Schnittstelle. Verkäufer yumatron.
Wäre eventuell eine Lösung.

Gruß Jörg
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
091
19.01.2012, 07:54 Uhr
holm

Avatar von holm

Ich habe auch solche Bondrucker im Lager. IMHO Commodore..

So eine NewSoftSerial- Geschichte bekommt man mit deutlich weniger Zeilen Code hin, als auf der verlinkten Seite schwadroniert wird. Haben die da das warme Wasser erfunden?
Kopfschüttelnd,

Hholm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
092
19.01.2012, 20:25 Uhr
Micha

Avatar von Micha

hab heute noch mal die Ports und Pins hin-und-her verwurschtelt, Hardware und Schaltplan angepasst, jetzt ist Platz für TxD und RxD

bei den billigen Bondruckern bin ich mir garnicht sicher ob die wirklich Thermo sind. Und bin mir ziemlich sicher dass die keine frei programmierbare Dot-Matrix haben wie das Okinal am K1003, sondern nur einen festen Zeichensatz. In der Auktion von Yumatron steht das so drin. Ich hab mich auch im Nov. spontan auf nen 30-Euro Tischrechner (Genie oder so ähnlich) gehechtet weil ich dachte das Druckwerk kann ich für meine Zwecke schlachten. Hat sich als minimalistisches Typenrad-Druckwerk entpuppt. Genial einfache Konstruktion. Aber eben für dieses Projekt nur zu gebrauchen wenn man den Teil der K1003 Firmware komplett neuschreiben würde...
Ich denke Protokollieren über die RS232 ist ne bessere Alternative. Da kann man ne Menge schicker Sachen mit anstellen am anderen Ende...
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
093
19.01.2012, 22:23 Uhr
holm

Avatar von holm

Die Drucker die ich habe sind Nadeldrucker und wohl Epson kompatibel, mit dem Original hat das also nicht wirklich was zu tun. Ich habe aber auch noch einen DDR Thermostreifendrucker mit IMS2 Anschluß, also IECBus oder IEEE488 oder HPIB oder ...

Das DIng dürfte so ziemlich genau das TSD16 Druckwerk haben, falls Du Dir das antun willst..
Da war wohl okinool eine Treiberplatine in K1520 Format mit dabei die nur aus Schrittmotor und Weizwiderstandstreibern für den Kopf bestand. Es war ziemlicher Sackgang das Ding zum Drucken zu bewegen, ein Kumpel hatte das in den 80ern am MC80 gemacht..
Damals gab es aber auch noch die notwendige Doku dazu.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 19.01.2012 um 22:25 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
094
22.01.2012, 17:52 Uhr
Micha

Avatar von Micha

gibt so Tage da sollte man besser zu Bett bleiben...

Hab heute nen MAX3232 drangebastelt, ein Kabel zum Terminal gelötet, die UART-Software von Peter Fleury angepasst. Alles zusammengeschaltet: ging garnix! Andere (einfachere) RS232 Software für den Atmel zurechtgebastelt, die Schaltung wieder und wieder auf Korrektheit kontrolliert: ging wieder nicht.

Genau genommen waren in dem Bild zwei Fehler versteckt: irgendwann hab ich mir bedenklich heftig an den Kopf gelangt: ich hatte die Ground Leitung vergessen am RS232 Kabel!!!
Nach entsprechender Korrektur machte die Verbindung was, aber nur wirre Zeichen.

Ich hatte wieder mal die Stromversorgung mit USB-Anschluss und hintendran ein Motorola Ladegerät verwendet. *schäm*, ist keine saubere Sache, geht aber meistens bei einfachen Sachen. Der MAX3232 braucht aber vermutlich besser stabilisierte Versorgung. Nachdem ich jetzt einen 100u Kondensator dazugeschaltet hab machen die kleinen Gizmos plötzlich alle was sie sollen
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
095
22.01.2012, 21:51 Uhr
holm

Avatar von holm

:-)

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
096
22.01.2012, 22:57 Uhr
Rolli



Hallo Micha,
was meinst Du mit frei programmierbarer Dotmatrix (Thread 092)?
Der Drucker TSD16 konnte auch nur alphanumerische Zeichen darstellen, weil zwischen jeweils fünf Punkten immer ein Punkt als Lücke fehlte. Grafikfähig war er also nicht.
Übrigens gibt es bei Pollin immer mal Thermodruckwerke (nur die Mechanik ohne Ansteuerung) für wenige Euros, wenn es denn unbedingt ein solches sein soll.

Gruß
Rolli
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
097
23.01.2012, 17:59 Uhr
Micha

Avatar von Micha

@Rolli:
hab mich bisher in den Druckerteil der Firmware des K1003 noch nicht wirklich reingekniet, so dass die folgenden Aussagen teilweise spekulativ sind.

Soweit ich es bis jetzt verstehe sind die Zeichensätze im K1003 Rom gespeichert, die Firmware bereitet das auf und sendet Pixel-Salat an den Drucker, also keine ASCII Codes (o.Ä.) die der Drucker selber handhabt. Also entweder ein Druckwerk finden dass diesen Pixel-Salat (die entsprechenden OUT Befehle) ggf. mit einfacher Konvertierung akzeptiert, oder massiv in die Firmware eingreifen. Die erste Variante ist mir sympathischer.

Wobei ich eigentlich inzwischen garnicht mehr an ein Druckwerk für die Kiste ran will. Ich finde es viel eleganter, eine RS232 Schnittstelle zu haben über die man z.B. ein Programmlisting zum PC senden kann. Damit könnte man dann potentiell viele andere schöne Sachen machen, z.B. x,y,z Register, Selektor-Status, Speicherinhalte, Programmablauf auf dem Bildschirm ausgeben etc.
--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
098
15.02.2012, 20:57 Uhr
Micha

Avatar von Micha

nach langer langer Zeit endlich ein kleines bisschen Fortschritt. Würde gern mal wieder Ferien und mehr Zeit für diese Projekt haben, seufz...

Na jedenfalls hab ich jetzt erfolgreich ne serielle Schnittstelle und ein einfaches Monitorprogramm an die Kiste drangestrickt. Läuft noch nicht 100% rund, aber einfache Sachen gehen schon mal. Im Bild zu sehen ist das "Hello World" der K1000 Programmierung in oktaler Anzeige

http://www.merseberger.de/K1000/Prototyp2/96008n1.jpg


Quellcode:
164 PAUSE
076 1
126 +
143 SPRUNG
143 SPRUNG
165 ENDE


--
Denken ist wie googeln, nur krasser.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
099
15.02.2012, 21:04 Uhr
holm

Avatar von holm

Weiha :-)

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1- [ 2 ]     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek