@slime: Wie hast du die PWM geglättet für den Sound? Einfacher RC Tiefpass? Ich hab damit suboptimale Erfolge erzielt... Dann würde eventuell eine Gegentaktansteuerung mit 4 kleinen Fets lohnen als Verstärker: 2 N-Fets und 2 P-Fets am gleichen µC Pin, vor das 2. Paar noch nen kleinen Transistor (besser: auch Fet) als Inverter. So kriegst du volle +/- 3,3V am Lautsprecher. Bei geschätzten 16 Ohm fließen bei 3,3 V bereits bis zu 3,3 V/16 Ohm = 200 mA -> die Größenordnung erklärt schonmal, warum es direkt am µC leiser war, da du wohl nicht mehr auf 3,3 V am Lautsprecher gekommen bist. BSS123 als N-Fet und BSS83P als P-Fet. Noch nen 5. Fet (hust) zum Abschalten des ganzen... Gibts da vielleicht bessere Schaltungsideen von jemandem?
Wenn OC0A auf "set on compare match" steht, OC0B auf "clear om compare match" stellen und schon laufen beide gegenläufig. Zum Verstärken gibt es auch fertige Kopfhörerverstärker z.B. im SO8 Gehäuse.
Der steht ja auf toggle on compare match, das ist das problem.
Gast schrieb: > ... > Zum Verstärken gibt es auch fertige Kopfhörerverstärker z.B. im SO8 > Gehäuse. Wenn man eh schon PWM hat, kann man bei kleinen Leistungen auch problemlos einen Mini-Class D Verstärker aufbauen. Deshalb ja auch jetzt schon meine Frage nach dem Ausgangsfilter, denn da hab ich sogar bei 15 kHz PWM Frequenz schon Probleme gehabt (es ist einfach nicht steil genug). Gut, mit nem "normalen" Verstärker kannst du vorher mehrere Filter in Reihe packen, das macht dem hochohmigen Signal nicht so viel aus, dann kriegst du mehr Flankensteilheit. Dennoch seh ich irgendwie Class-D als Vorteil an. btw seh ich grad die Daten vom verbauten LS: 32 Ohm; 0,25 W. Den Speaker find ich sogar relativ "robust" - ist nicht so eine ultra-billig-Tröte sondern könnte durchaus "etwas" taugen.
In welcher Stadt in NRW (Bevorzugt Umkreis Bielefeld - Dortmund) gibt es denn noch welche? (Mit dem Semestericket komme ich überall kostenlos hin, wenn ich mich nur lang genug in den Nahverkehr setze).
Hallo, seit letzter Woche verfolge ich die Postigs hier. Gerne würde ich auch mitbasteln. Leider habe ich kein Spiel abbekommen. Kann mir jemand einen Tipp geben, wo es in Berlin noch zu haben ist? Danke und Gruß
Hier sind die Telefonnummern aller 26 !(krass) Filialen in Berlin. Vielleicht einfach mal zwei drei in deiner Gegend anrufen ob sie noch welche haben. http://www.woolworth.de/unternehmen/standorte/filialfinder/deutschland/suche/?suchbegriff=1
Anruf war sinnlos. Ich bin in einer Zentrale gelandet. Die konnten mir nicht sagen, ob das Spiel in meiner bevorzugten Filliale vorhanden ist. Sie konnte auch nicht sagen, in welcher Filiale es noch vorhanden ist. Wenn jemand dieses Spiel in Berlin gesehen hat, dann bitte hier posten. Danke!
Hi, die Belin-Liste ist für die Tonne. Anrufen welche Filialen es noch gibt. Wigbert
>Gibts da vielleicht bessere Schaltungsideen von >jemandem? Weiss ja nicht, was ihr für Anforderungen habt, aber ein TDA2822M ist billig, einfach zu beschalten, und läuft ab 1,8V p.s. in Osnabrück gab es am Samstag keine mehr
Magste da nicht mal vorbei fahren, 10Stk kaufen und mir die anschliessend gegen Vergütung zusenden? Gruß Fabian
Kay schrieb: >>Gibts da vielleicht bessere Schaltungsideen von >>jemandem? > > Weiss ja nicht, was ihr für Anforderungen habt, > aber ein TDA2822M ist billig, einfach zu beschalten, > und läuft ab 1,8V Naja, 0,2-0,35 W @ Bridge @ 3 V @ 4 Ohm ... so wirklich pralle ist das nicht, aber mehr ist da halt nicht rauszuholen. Mit ner FET-Class-D Stufe sollte man etwas mehr schaffen. (Vpp = 6V, Vp = 3V, Veff = 2,1 V -> ~1 W @ 4 Ohm, 0,5 W @ 8 Ohm, 0,25 W @ 16 Ohm)
http://www.hanneslux.de/avr/divers/melody/melody02.html Dort der zweite Schaltplan, das macht schon ordentlich krach und klingt ganz passabel!
Oder wie weiter oben irgendwo beschrieben: Aus 2 Mosfets. Damit nutzt man die vorhandene Spannung noch besser aus, da die beiden BE-Spannungen wegfallen (dafür hat man aber beim Umschalten ein paar Verluste mehr). Alternativ funktionieren auch Logik ICs, z.B. mehrere parallele Gatter eines 74LVX245. Davon abgesehen: <1W reicht für sowas auch bei weitem aus, man will mit sowas ja nicht das ganze Haus beschallen.
Na, Jungs! Bastelt mal schön weiter mit dem Spiel. Ich war gestern in einem anderen Woolworth. Leider habe ich auch dort nichts bekommen. Ich gebe auf! Schön, dass wir mal drüber gesprochen haben. Gruß aus Berlin
Hihi ich wusst garnicht, dass es in marburg überhaupt son laden gibt :D Dann werd ich mal da hin tiegern und mir nen paar besorgen ;)
@Hauke Radtki (lafkaschar) Hi, wenn Du 2x Mädchenversionen übrig hast, denk mal an mich. (für Forschungszwecke) Wigbert
Ja klar, muss sehen wann ich hinkomme, bin gerade auch mit umzug beschäftigt, aber ich hoffe ich schaffs noch bevor alle weg sind ;)
Hi, Heute mal der erste poster^^ Habe es heute geschafft den flash zu dumpen. Hier ist mal die Datei. Das Programm scheint erst ab adresse 0x00003000 zu starten. Wo sind denn jetzt unsere Disassembler profis. Man kann sogar die einzelnen miniGame codes erkennen. gruß
Es war heute und gestern ziemlich ruhig hier. -Ist es eigentlich möglich, den 2MB Flash-Speicher über den USB-Port des Miuchiz-Spiels auszulesen ?
Daniel W. schrieb: > Es war heute und gestern ziemlich ruhig hier. -Ist es eigentlich > möglich, den 2MB Flash-Speicher über den USB-Port des Miuchiz-Spiels > auszulesen ? Theoretisch kann man das Flash über USB lesen und schreiben. Ich finde nur kein Tool mit dem man die geschriebenen/gelesenen Daten des Updateprogramms protokollieren kann. Kennt jemand ein Tool dass nicht nur die Zugriffe, sondern auch den Datenstrom zum Dateisystem loggen kann ?
Es gibt eine Software, die heisst "Advanced USB Port Monitor". Die kann man einsetzen als "USB traffic sniffer" und "USB Bus Protocol Analyzer". Text: Advanced USB Port Monitor packs the robust functionality to capture, view and process USB traffic. It offers sophisticated viewing to debug and test High (480Mbps), Full (12Mbps) and Low (1.5Mbps) speed USB devices. Downloadseite: http://www.popularshareware.com/Advanced-USB-Port-Monitor-transfer-29684.html Dateiname: ausbmon20.exe (Filegroesse 4MB)
So ich war gerade in Marburg im Woolworth ... die ham noch den ganzen wühldings damit voll (steht wenn man rein kommt rechts ... bis ich mich durch die ganzen wühltische gekämpft hab bis ich die 1€ wühlkörbe gefunden hab ...) allerdings nur Jungsversionen, keine mädchenversionen, komischerweise. Also das sind sicher noch 50 stück. Also Wigbert, wenn du jungsversionen gebrauchen kannst sag bescheid, aber mädchenversionen hatten sie leider nicht :(
Hi, So wie ich das sehe habe die Bilddaten im flash irgendwo eine farbtabelle. Und in der Mädchen version werden Bilder übereinander gelegt. Z.b. das unterste bild mit dem Fenster, da wird vorher eine Tapete hinter gelegt. Wäre cool wenn mal jemand die Übertragung vom update aufzeichnen könnte. gruß
>Also Wigbert, wenn du jungsversionen gebrauchen kannst sag bescheid, >aber mädchenversionen hatten sie leider nicht :( ich werds überleben, Jungenversion hab ich ja. Dank Dir erst mal. Wigbert
Daniel W. schrieb:
> Es gibt eine Software, die heisst "Advanced USB Port Monitor".
USB Sniffer hab ich schon ausprobiert.
Das Datenaufkommen ist derart gewaltig, dass man wenn man nicht
weiß wo man schauen muss echt kein Land mehr sieht.
Ein Monitor auf Dateisystemebene wäre da echt hilfreicher.
Ich hab heute mal aus dem flushdump von mir ein Update zusammen gebastelt. Damit könnt ihr die Bratz version zur Monsterz version updaten. >Habe im Intro auch eine eigene Grafik eingefügt. >>Das Update geht sowohl mit Miuchiz Monsterz als auch mit Miuchiz Bratz.
also ich hätte auch noch interesse an so einem spiel bzw dem display (hr hr hr). da der thread ja schon fast nen monat alt ist denke ich kaum das es noch spiele geben wird. wenn jemand noch 1 oder 2 übrig hat wäre ich dankbar wenn mir das jemand gegen unkosten natürlich zuschicken könnte. meine email ist : themason (ät) gmx (pungt) de
Wird denn da beim Update die Checksumme nicht geprüft ? Das wäre ja schonmal vorteilhaft für weitere Hacks :) Phil S. schrieb: > Ich hab heute mal aus dem flushdump von mir ein Update zusammen > gebastelt. Damit könnt ihr die Bratz version zur Monsterz version > updaten. > >>Habe im Intro auch eine eigene Grafik eingefügt. > >>>Das Update geht sowohl mit Miuchiz Monsterz als auch mit Miuchiz Bratz.
@Andreas: Komisch... ich hätte auch gedacht, daß eine Prüfsumme existiert. Aber anscheinend nicht. Ich hab heute mal angefangen die Firmware anzuschauen. Die Monsterz-Firmware ist viel übersichtlicher als die Bratz-Firmware. Es lohnt sich wahrscheinlich diese auseinander zu nehmen. Ich vermute, daß der USB-Bootloader wahrscheinlich relativ autonom arbeitet. Ich versuch morgen mal eigenen Code einzuschleusen. Ich hab schon eine interesannte Sache herausgefunden: Beim Starten wird ein kleines Programm in den Speicher geschrieben, das für die Bankumschaltung zuständig ist: org $02E7 pla sta X0033 pla sta X0032 lda X00EB jmp L0000 Die Sprungadresse L0000 wird vorher von Programm geändert. Der erste Aufruf holt zweimal den Wert #$02 vom Stack und lädt ihn in das Register für die Programmbank. ($0032 und $0033) Leider hab ich keine Ahnung, wo ins Flash die Programmbank dann zeigt. Physikalisch liegt der Start der Bank dann ab $1010000 im Flashspeicher... diese Adresse gibt es aber nicht. Wahrscheinlich hab ich das Prinzip des Bankings aber noch nicht richtig verstanden. Gruß, SIGINT
P.S.: ldx #$0A L7756: lda X7763,x sta X02E7,x dex cpx #$FF bne L7756 bra L776E ; X7763: db $68, $85, $33, $68 db $85, $32, $A5, $EB db $4C, $00, $00 ; L776E: jmp L7792 P.P.S.: DASMx ist gut zum disassemblieren geeignet, da es Codethreading besitzt.
Vielleicht wenn du ein paar Einträge weiter oben nett nachfrägst : Beitrag "Re: Mini-Farbdisplay (+mehr) für 1 Euro" Rene Böllhoff schrieb: > also ich hätte auch noch interesse an so einem spiel bzw dem display (hr > hr hr). da der thread ja schon fast nen monat alt ist denke ich kaum das > es noch spiele geben wird. wenn jemand noch 1 oder 2 übrig hat wäre ich > dankbar wenn mir das jemand gegen unkosten natürlich zuschicken könnte. > meine email ist : themason (ät) gmx (pungt) de
Wenn ich das Disassemblieren will, welchen Prozessortyp & Bezeichnung muss ich dafür wählen?
@Sigint 112 Mein update ist auch etwas zusammen gepfuscht wenn ich ehrlich bin. Also 1. musste ich beide Updates in der Datei ersetzen deswegen ist die Datei auch 4mb groß. 2. hinter den Games kommen Daten(ein paar 100 bytes) ka wie groß genau. So wie es aussieht wird also immer der komplette sst Speicher beschrieben. Wenn du dann dein eigenes Programm flashen willst, musst du die restlichen Daten mit 0xff auffüllen. Ein ganz anderes Problem ist noch die Update abfrage, also die ersten 2 Bytes sind für die Versions-abfrage. Bei dem Bratz update steht da 0x03 0x02. Die hinteren 0x02 sind für die Miuchiz Hardware Version. Wenn du die änderst dann denkt der Updater, dass du ein Miuchiz v1 hast. (ist mir leider passiert). Bei meiner Monster Version hab ich dort 0x04 0x02 hingeschrieben, damit er auch erkennt, dass es ein update ist. Leider geht das nur bis 0x05. Up dann lässt er keine Updates mehr zu. Vll gibt es irgendwo ein bit womit man die abfrage umgehen kann. Sonst müsste man doch einen eigenen Updater schreiben. Gruß
So, ich hab mal analysiert was beim Start passiert: Über mehrere Sprünge gelangt das Programm an die Adresse $76A6. Hier beginnt das Hauptprogramm. Da alle Banking-Register noch die Werte $00 enthalten (ausser BRR, RAM ist beim Reset von $2000 bis $3FFF aktiv) sollten wir uns komplett in den ersten 64K des Flashspeichers aufhalten. (Ich muss noch genau herausfinden, wie das mit den verschiedenen Chipselects funktioniert) Der Programmablauf ist folgender: Interrupts werden eingeschaltet (SEI) Stack wird initialisiert Speicher $80 bis $FF wird gelöscht (Zeropage) Speicher $100 bis $1FF wird gelöscht (Stack) Speicher $200 bis $1FFF wird gelöscht (RAM) PORTA und PORTB werden auf Eingang gesetzt und Pullups aktiviert PORTD und PORTE werden eingestellt (CS3 und CS4 aktiviert, und mehr) PORTF wird Ausgang und gelöscht Programm- und Daten-Banking Register (nur LOW-Teil ?!?!?) werden gelöscht WDT-Reset Interrupt-Bank wird auf $0000 gesetzt und aktiviert Alle BaseTimer Zeiten werden aktiviert Prescaler reset und aktiviert Programm zum wechseln der Programmbank wird ins RAM kopiert PORTA wird eingelesen und wenn ungleich 0 nach $77AA gesprungen ansonsten nach $77C6 $77AA: Programmbank wird gewechselt (PRR=$0202) und an den Start der Programmbank gesprungen. $77C6: Fortsetzung folgt...
Bernd schrieb: > Mal ne Frage: > Wie analysiert man sowas?? Man muss glaub ich den Flash Inhalt disassemblieren. Kann mir jemand sagen wie ich das mit DASMx mache? also welche Parameter ich dem geben soll das der die .bin datei disassembliert! Danke
Und hier die Doku zum Mikrocontroller, mit den Adressen für Memorymapping, I/O etc. http://meuk.spritesserver.nl/st2205um.pdf
Sigint 112 schrieb: > PORTA wird eingelesen und wenn ungleich 0 nach $77AA gesprungen > ansonsten > nach $77C6 Da könnte das Testprogramm liegen, dass startet wenn man beim Reset die Powertaste gedrückt hält. PORTA hat integriertes debouncing, daher hängen dort mit Sicherheit die Tasten dran. Das Testprogramm spricht Lautsprecher, Display und die Tasten an.
@Andreas: Genau das hab ich auch gedacht. Wenn ins Testprogramm gesprungen wird ist der USB-Bootloader nicht aktiv. Dieser wird nämlich in der Sub $4007 gestartet, die nicht von dem Testprogramm aufgerufen wird. Aber eine andere Frage: Wie hast du den gesammten Programmcode disassembliert? Irgendwie scheint das komisch auszusehen. Ich hab die ersten 64K vom Flashdump genommen und disassembliert. (siehe Anhang) Der Resetvektor ist $7ffc,%7ffd. Problematisch wird es, wenn die Speicherbank gewechselt wird. Da hab ich noch nicht herausbekommen, wie welche Flash-Adresse im Speicher des 65c02 gemappt wird. Zudem kann DASMx keine Dateien >64K disassemblieren. (ist ja auch logisch, da der 65c02 nicht mehr als 64K ansprechen kann) By the way: Man sollte die Codethreading Option von DASMx nutzen, da hierbei zwischen Code und Daten unterschieden werden kann. Codethreading bedeutet, daß DASMx das 65c02 Programm ablaufen lässt und schaut, wo es hin kommt. Diese Teile müssen entsprechend Programmcode sein. Man kann über eine SYM Datei sagen, wo bekannte Programmteile liegen und wo Reset und Interruptvektoren liegen. Damit kann man relativ sicher sein, daß man Programmcode übersetzt und nicht Daten. Leider haben wir Speicherbänke, die gewechselt werden und Programmcode der ins RAM kopiert wird. Daher ist ein Dissassembly nicht wirklich einfach. Würden wir es schaffen beliebig oft ein Firmwareupdate durchzuführen, so könnten wir das Testprogramm durch unseren Testcode ersetzen und frei rumexperimentieren. Gruß, SIGINT
Hallo ich versuch das Display zum spielen zu bekommen aber es will nicht ... Kann mir jemand auf die Sprünge helfen ?? im Anhang mein Code für nen Mega32 eigentlich komplett slime's Ethersex Code Beim anschließen des Displays an den Mega kann man ja denk ich nicht viel falsch machen .. oder ? und ab mit 3,3 oder 5V funktioniert beides bei mir nicht ... an VLCD kommt nix raus... Stephan G
Versuch doch mal mehr als nur 10 Pixel auszugeben, vielleicht sind 10 zuwenig. also for(x=0;x<97;x++){ for(y=0;y<67;y++){ putpixel....x,y } }
nee 10 sollte man sehn .. aber auch mit allen pixeln geht es nicht ... wenn an VLCD keine 10V raus kommen stimmt irgendwas nicht ... SG
Kann man eigentlich die Scrollingfunktion vom Displaycontroller sinnvoll einsetzen, oder ist das wegen dem kleinen Displayram nicht möglich? Anbei der Zeichensatz in 90° abfotografiert. Pixel in der ersten Zeile machen die ganze Spalte heller! Sobald ich den Text ein Pixel runtersetze sieht's besser aus. Für das "Kerning" ist ein gedrehter Font ganz praktisch, da man schnell ermitteln kann, ob es Pixel in der Spalte gibt (wenn nicht - weglassen). Dafür muss man dann beim Schreiben ins Display-RAM Spalten und Zeilen vertauschen. Kommt also vermutlich auf den gleichen Rechenaufwand raus.
hier mal noch nen Bild meiner Schaltung ... mit dem 3,3V Spannungsregler gehts auch nicht ...
Stephan G. schrieb: > hier mal noch nen Bild meiner Schaltung ... > mit dem 3,3V Spannungsregler gehts auch nicht ... LED+ ist im Schaltplan nicht mit UB+ verbunden.
hängt an PA2 zum ein und ausschalten .. das funktioniert auch ....
ne das sieht nur so aus ... liegt im schaltplan nur übereinander ... siehe eagle Schaltplan
@ Stephan G. (toaran) : Füg mal die zwei Zeilen am anfang von ST7626_init noch ein. PIN_SET(ST7626_WR); PIN_SET(ST7626_RD);
hi also den ST7626_RD bzw den RD Pin vom Display hab ich fest auf 3,3V gelegt ... sollte ich den auch noch anschliessen ? ...nur mit PIN_SET(ST7626_WR); am Anfang geht auch nix... SG
Lol, und das OLED aus dem Blutzuckermessgerät verkauft er auch. http://shop.ebay.de/display-24/m.html?_nkw=&_armrs=1&_from=&_ipg= Nette Gewinnspanne, wenn man das nebenher macht ...
Am besten find ich die gefakten Bilder. Das eine sieht aus wie auf Papier ausgedruckt und obendraufgelegt, und das andere kann man mit der Auflösung überhaupt nicht darstellen :)
was ist da so unglaublich ? Schon mal nachgedacht das um so ein display kaufen, auszubauen, testen, reinigen, verpacken mehr als eine stunde notwendig ist ??? So gesehen stundenlohn von was, 2 eur ? Lächerlich, fürs 10fache würde ich nciht mal aus dem bett aufstehen, also was solls, gönne den anderen die paar eur. Die 9.99 eur für den oled sind fair.
Man beachte auch, dass er kostenlosen Versand anbietet. D.h. dass dazu noch eine Versandtasche, Porto und die ebay Verkaufsprovision, sowie die Angebotsgebühren kommen. Wenn man dann noch bedenkt, dass es nicht soooo schnell und "sauber" geht, den Stecker von der Platine abzulösen, bleibt wirklich nicht viel über.
OT: erwischt ... http://www.mikrocontroller.net/user/show/hdr aka http://www.fabianharder.de/ ist es :P Finde persönlich nciht schlimm, solange nur public informationen weiter gegeben werden (pdf, samples). Das ist freie marktwirtschaft. Lediglich "adriano6" kann sich gedanken machen das seine freundin jetzt auf ebay ist :) http://ebay.globaladmin.de/oled/4.jpg
Oh, schade... Erwischt... =) Aber keine Sorge, dass ist nicht Adriano's Freundin, sondern meine. :-) (Hoffe ich doch zumindest...) Die Bilder habe ich alle selber geknippst. Alles andere würde auch unter Copyright fallen. (Ich durfte schonmal 280 Euro an einen Anwalt für eine Abmahnung bezahlen, weil ich 3 Bilder von so'ner blöden Barmatte genutzt habe...)
Ist ja nichts verwerfliches dran etwas die Hobbykasse aufzufüllen. Aber das Produktbild ist echt übertrieben gut ;) http://ebay.globaladmin.de/tft/5.jpg
> was ist da so unglaublich ? Wer kein besseres Angebot findet ist selbst Schuld "lol" und "Suchen+Finden" ist die andere Seite der Medaille der Marktwirtschaft ;) > Schon mal nachgedacht das um so ein display > kaufen, auszubauen, testen, reinigen, verpacken mehr als eine stunde > notwendig ist ??? korrekt, die Anbieter arbeiten immer nur für die Menschheit. Das, was mich besonders anmacht, ist die Grösse dieser Teile, so gross, da passt sogar 'nen Win-Desktop drauf :) p.s. der Preis geht inkl. Versand natürlich ernsthaft in Ordnung
>fehlt nur noch das er noch aufs forum verlinkt...
exakt !!!!
Andreas Jakob schrieb: > Aber das Produktbild ist echt übertrieben gut ;) Nö, es ist schlichtweg falsch: Wenn man es mit einem echten Bild vergleicht (z.B. mit dem hier: http://www.mikrocontroller.net/attachment/56111/Display5.JPG) fällt auf, dass der Rand vor allem unten sehr viel breiter ist, als auf dem gefakten Bild. Das kann böse nach hinten losgehen (Reklamation usw.). Von daher ist es ratsam ein echtes Foto von dem Display zu verwenden.
Bilder zu 16 Bit RGB 565 Format wandeln, ohne BMP Header entfernen oder das Bild umdrehen zu müssen. Wollte sehen, ob's mit Linux 'Hausmitteln' geht. Nicht ganz. Für Windows möglicherweise auch mit Cygwin / MinGW. Benötigt ImageMagick > 6.3.2 für die Skalierung mit der Option -extent. Geht aber auch ohne Skalierung oder auf anderem Weg. Ansonsten, wie oben erwähnt, the GIMP, oder selber schreiben: Beitrag "Re: Bild nach 565 (16Bit) convertieren für LCD" Oder eins der zahlreichen Converter-Tools benutzen. Viel Spaß beim Basteln.
Ein echtes Bild habe ich aber leider nicht. Und das Spiel will ich nicht darstellen. Wenn jemand glaubt, dass es sich dabei um keine Fotomontage hält, ist ihm auch nicht mehr zu helfen. 1. Muss man mal realistisch sein, was man für sein Geld bekommt. 2. Wie soll das Display was darstellen, wenn das Kabel doch in der Luft hängt. ;-) Die gezeigten Bilder sind in der Tat sehr zum positiven umgestellt, aber so ist das nunmal in der Werbung...
Sigint 112 schrieb: > Würden wir es schaffen beliebig oft ein Firmwareupdate durchzuführen, so > könnten wir das Testprogramm durch unseren Testcode ersetzen und frei > rumexperimentieren. Hi War die letzten tage leider nicht online. Ich frage mich vor allem wo die Software versions- Erkennung im Gerät gespeichert wird. Es werden ja die kompletten 2mbyte in den Flash geschrieben. Wenn wir das herausfinden könnten, wäre es vielleicht möglich ein Code zu schreiben welches den Wert wieder zurücksetzt.
Hmmm, mir ist eben was ganz blödes aufgefallen. Wenn die CPU resettet wird nehmen alle Register ja Standardwerte an. Bei den Registern BRR,PRR ist dies die $00 und bei DRR wird das interne RAM eingeschaltet. Nun ist das Problem, daß bei diesen Einstellungen ab Adresse $2000 und $4000 das Flash liegt, mit der Startadresse $0000 an den beiden Adressen. Also:
1 | CPU | FLASH |
2 | ---------------- |
3 | $0000 | null |
4 | .. |
5 | $1FFF | null |
6 | ---------------- |
7 | $2000 | $0000 |
8 | ... |
9 | $3FFF | $1FFF |
10 | ---------------- |
11 | $4000 | $0000 |
12 | ... |
13 | $7FFF | $3FFF |
14 | --------------- |
Also müsste an der Stelle $3Fxx die Reset und Interruptvektoren liegen... tun Sie aber nicht. Jetzt stell ich mir die Frage, ob das interen ROM doch genutzt wird und welches Chipselect der Flash nutzt. Ich hab da keine eindeutige Antwort drauf. By the way: Ich hab mal versucht das Programm an Flashadresse $8000 zu ändern (von dem ich ausgegangen bin, daß es das Testprogramm ist). Leider scheint das nicht der Fall zu sein. Das Game kann ich nun ausschlachten. Gruß, SIGINT
@Sigint 112 Hmm ich hoffe du hast auch so viele Miuchiz rum fliegen das es nicht so schlimm ist wenn du einer zerstörst. befindet sich der Bootloader eigentlich auch in dem Flash? Das wäre dann natürlich beschissen. So habe jetzt mal einen SST ausgewechselt von einem Board was als v1.0 erkannt wird. Auch nach dem Wechsel sagt er immer noch, dass es eine V1.0 ist. Also denke ich mal, dass diese Daten im internen Rom liegen. So hab etwas Interessantes festgestellt. Wenn man den Miuchiz erst an den PC anschließt und dann einschaltet kann man ihn jedes Mal updaten. Habe vorne noch 0x04 0x02 stehen. Geht wunderbar. Habe grad die ganze zeit zwischen boy und meiner boy mit Zippi Intro gewechselt. Über all am Anfang 0x04 0x02 stehen. Doch wenn ich die Girl Version drauf mache, gibt es Probleme.
@Sigint 112 schon versucht den ROM abzuschalten und dann test code zu starten ? Kannst den MMD/CS0 (pad 30) vom GND trennen, guck dir seite 26 von dem ST2205U datasheet. Der pad30 ist herausgeführt neben den flash - siehe bild - die breite leiterbahn. Am besten genau da zwischen den flash und dem chip trennen, unter dem flash ist schon durchkontakitert zum gnd.
Thomas R. schrieb: > @Sigint 112 > > schon versucht den ROM abzuschalten und dann test code zu starten ? > > Kannst den MMD/CS0 (pad 30) vom GND trennen, guck dir seite 26 von dem > ST2205U datasheet. Der pad30 ist herausgeführt neben den flash - siehe > bild - die breite leiterbahn. > > Am besten genau da zwischen den flash und dem chip trennen, unter dem > flash ist schon durchkontakitert zum gnd. nein das ist falsch, pad30 ist es nciht oder ist es doch - und dann wird sehr böse. Siehe bild : grün markiert ist RD was auch ans OE vom flash geht, so wiet ok rot markiert ist der pin der an GND angeschlossen ist, man sieht in dem roten kreis das da ein Bonddraht war. Kann zwar alles sein, ich vermute aber das es genau der MMC/CS0 ist. Der nächste pin, gelb markiert geht schon ans flash WE, das könnte der µC WR pin sein. Wenn das so ist, dann hilft nur einen loch zu bohren und leiterbahn trennen um ROM abzuschalten , beides blau merkiert auf dem bild. Leider habe keine geräte mehr um zu testen. Für freiwillige : Loch bohren sollte einfach sein, 0.5,- 0.8 mm bohrer, abstände sind auf dem bild. Danach wenn es immer noch geht, lol, die leiterbahn trennen, dann sollte nicht mehr gehen.
achso, GND kommt natürlich auch von der anderen seite rein, so wird lediglich nur die MMC/CS0 vom GND getrennt, den µC hat denoch GND verbunden.
So hier ist mal eine Analyse vom USB Transfer beim updaten. Vielleicht kennt sich ja jemand gut mit USB aus und kann ein eigenes Flash tool schreiben, welches vorher keine Version abfrage durchführt. @Sigint Bist du schon weiter gekommen? Du kannst ja mal ein Testprogramm an die stelle von dem match spiel setzen. Dann solle nichts schiefgehen.
Atmega8-Projekt auf LOCHRASTER: ================================ 1) BASCOM Datei tapetenmuster.bas (erzeugt ein "Tapetenmuster") 2) Mega8-Pinout Schematic (Bilddatei) 3) Ausgesägte Miuchiz-Platine (Bilddatei)
Fabian H. schrieb: > Ein echtes Bild habe ich aber leider nicht. Und das Spiel will ich nicht > darstellen. Wenn jemand glaubt, dass es sich dabei um keine Fotomontage > hält, ist ihm auch nicht mehr zu helfen. > > 1. Muss man mal realistisch sein, was man für sein Geld bekommt. > 2. Wie soll das Display was darstellen, wenn das Kabel doch in der Luft > hängt. ;-) > > Die gezeigten Bilder sind in der Tat sehr zum positiven umgestellt, aber > so ist das nunmal in der Werbung... Naja im zweifelsfal reicht ein vermerkt das die Abbildung abweichen kann ;-) wer nicht lesen kann ist selber schuld :P
Nicht so schön wie Beitrag "Re: Mini-Farbdisplay (+mehr) für 1 Euro" aber dafür einfach zu programmieren..
Q9 schrieb: > Nicht so schön wie Beitrag "Re: Mini-Farbdisplay (+mehr) für 1 Euro" > aber dafür einfach zu programmieren.. Kannst du den Code Posten? Ich möchte gucken wie du das gemacht hast. Danke
Kann 'mal jemand den Code für Zeichenausgabe in BASCOM posten?
Das avi ist H.264. Das Folgende machst du mit ruckfreien N Hz (von nem Timer ableiten): Den alten Punkt löschen (Überschreiben mit Hintergrundfarbe). Für beide Achsen: Geschwindigkeit und Position prüfen (fliegt der Punkt gerade raus?). Wenn ja, Geschwindigkeit umdrehen (bei mir ein int8_t) und Farbe wechseln. Neue Position berechnen (aktuelle + Geschwindigkeit). Dann den Punkt malen.
...und der schweif kommt vermutlich durch die displayträgheit, also keine (code)magie! :) Klaus.
Mh Danke, Ich bin nicht so gut als das ich daraus jetzt Code schreiben könnte... Bitte, ein Codestück.
@Phil: Hab nur sechs von den Teilen und jetzt ein defektes. Der Bootloader befindet sich wahrscheinlich im Flash, da hier der Text "Flash Disk Sitronix Multimedia" zu finden ist. Das ist in der Tat etwas unpraktisch, solange wir nicht genau wissen, welche Programmteile dafür notwendig sind. Das irgendwas ins interne ROM geschrieben wird halte ich für unwahrscheinlich, da ich nicht im Datenblatt gefunden habe, wie man aus dem Programm heraus ins ROM schreibt. Wo genau befindet sich der Programmcode vom Spiel und wird der an $4000 gebankt? @Thomas: Das ROM abzuschalten halte ich erstmal für unpraktisch,da wir dann sehr wahrscheinlich auch den Bootloader verlieren. Aber deine Untersuchungen sind trotzdem genial. Ich gehe jetzt davon aus, daß der Flash am /CS1 und das Display am /CS4 hängen. Aber ich finde einfach nicht heraus, wo das Testprogramm genau liegt. Jedesmal wenn ich versuche das vermeindliche Testprogramm zu ersetzten dann kill ich meine Konsole. Ich hab schon versucht mein Test ab $3000 und $8000 zu platzieren, aber nichts funktioniert.Anscheinend hab ich was wichitges noch übersehen. Ich denke nicht, daß ich noch heraus bekomme wie wir eigene Programme nutzen können. :-( Gruß, SIGINT
Sigint 112 schrieb: > @Thomas: Das ROM abzuschalten halte ich erstmal für unpraktisch,da wir > dann sehr wahrscheinlich auch den Bootloader verlieren. Aber deine > Untersuchungen sind trotzdem genial. Ich gehe jetzt davon aus, daß der > Flash am /CS1 und das Display am /CS4 hängen. Aber ich finde einfach > nicht heraus, wo das Testprogramm genau liegt. Jedesmal wenn ich > versuche das vermeindliche Testprogramm zu ersetzten dann kill ich meine > Konsole. Ich hab schon versucht mein Test ab $3000 und $8000 zu > platzieren, aber nichts funktioniert.Anscheinend hab ich was wichitges > noch übersehen. > Der bootlader wird schon im rom sein, (über)schreiben wird nicht gehen weil OTP. Allerdings wenn man den org. flash "rausnimmt" (CE/OE trennt) und einen eigenen flash einbaut (noch besser eeprom) könnte man test code laufen lassen - natürlich muss der interne ROM dafür abgeschaltet sein. Das blöde ist nur dass der LCD eienen controller hat, so wird nciht gehen den code in dem softice zu simulieren. So muss man erstmal blind den externen LCD controller im 6502 asm initialiesieren. Und natürlich wenn der code läuft dann kann man denken wie wir es in den flash so rienbekommen das es auch gestartet wird. Selber ganzes firmware schrieben ist etwas komplex - vor allem ohne dev board und samples - daher ist das was schon im flash vorhanden vielleicht doch nutzlich.
So, Also der bootlader scheint entweder im Flash zu sein oder er wird vom Flash aus aufgerufen. Auf jeden fall hab ich grade mal einen nur mit 0xff geflasht. Und dann geht nix mehr^^. Es geht nur die Display Beleuchtung an und er flackert kurz. Das wars. Usb wird nicht einmal erkannt. Wo das spiel genau liegt muss ich noch mal schauen. @Sigint 112 Wenn du angst hast das du alle zerflasht, und noch unbedingt irgendwann die Spiele spielen willst. Dann bau dir doch auch eine externe Hardware, somit kannst du im schlimmsten fall den Chip auslöten und vom PC aus neu flashen. Wenn du willst kannst du mir die auch schicken, bzw ich hab bestimmt auch noch 1-2 st. die ich abgeben kann. Sigint 112 schrieb: > Ich denke nicht, daß ich noch heraus bekomme wie wir eigene Programme > nutzen können. :-( So schnell aufgeben???
Ist denn die Kommunikation mit der Konsole nicht identisch oder zumindest sehr ähnlich mit den Schlüsselanhängern, die auf dem gleichen Mikrocontroller basieren und hier schon einige Male erwähnt wurden? Dafür gibt es ja bereits Firmware-Analysen und -Hacks, die hier auch hilfreich sein könnten.
So hab grad mal den Miuchiz ohne flash angeschaltet. Also dann startet er den bootloader. Ob das der gleiche ist weiß ich nicht. Sieht aber so aus. Auch 16mb massenspeicher.
@Reinhard: Der Bootloader wird wahrscheinlich identisch sein, da wahrscheinlich ein Standardbootloader von Sitronix verwendet wird .(der Sitronix Text im Flash legt dies nahe) Aber der Rest dürfte nicht mit den Bilderrahmen übereinstimmen. Ich schau mir das aber später mal genauer an. @Phil: Den Flash auslöten trau ich mich noch, aber dann ein externes Flash per Leitungen an den Miuchiz anzuchliessen übersteigt meine Fähigkeiten. So viele Leitungen halten bei mir nicht zuverlässig, sondern reißen immer ab. !!!ABER: Ich hab es geschafft ein eigenes Programm auf dem Miuchiz zu starten. Ab Flash-Adresse $0D 8000 liegt das Spiel Match Emz! Das wird in die Programmbank $4000 gemappt und dann die Adresse $4000 angesprungen. Hier liegt erstmal ein JMP nach $428B (Flash: $0D 828B). Ich hab nun ab dieser Adresse ein kleines Testprogramm gelegt, was den LCD neu initialisiert und ein Testbild ausgibt. Und es funktioniert!!! Der Bereich zwischen $4000 und $428B enthält ein Icon und Infos die vom Hauptprogramm interpretiert werden. Nun können wir weiter experimentieren. Gruß, SIGINT
Hier mal mein Testprogramm... einfach mit ACME übersetzen und die ersten beiden Byte abschneiden (Ladeadresse des PRG-Formats). Danach im Flashdump ab $0D828B einfügen. (Ersetzen der Daten, damit nachfolgende Programme nicht im Speicher verschoben werden) Dann in die "Miuchiz Update.dat" einfügen und flashen. @Phil: Das mit dem Bootloader ist sehr interesannt. Hätte nicht gedacht, daß der im ROM ist. Jetzt müssten wir noch herausfinden, wie man den starten kann,wenn der Flashinhalt ungültig ist. (Leider startet der ja dann nicht automatisch) Gruß, SIGINT
Sigint 112 schrieb: > daß der im ROM ist. Jetzt müssten wir noch herausfinden, wie man den > starten kann,wenn der Flashinhalt ungültig ist. (Leider startet der ja > dann nicht automatisch) /CS vom Flash auf high erzwingen ? Pad mit dem Lötkolben erhitzen und Pin hochbiegen, dann kannst du einen Schalter und Pullup einschleifen.
@Andreas: Hat funktioniert... leider meckert die Software, daß das Miuchiz schon auf dem aktuellen Stand ist. So ein Mist.
Sigint 112 schrieb: > @Andreas: Hat funktioniert... leider meckert die Software, daß das > Miuchiz schon auf dem aktuellen Stand ist. So ein Mist. Hat nicht jemand geschrieben, wenn man erst nach dem anstecken an USB einschaltet geht das Update versionsunabhängig ?
@Sigint Saubere arbeit. Hier der Tip zum downgraden^^. Geht nur wenn dein update unter 0x04 0x02 lag. Du nimmst MEIN Beitrag "Re: Mini-Farbdisplay (+mehr) für 1 Euro" Miuchiz Monster update und schreibst vorne 0x05 0x02 hin und flashen. Dann Miuchiz ausmachen, an usb anschließen anschalten. Datei zu version 0x01 0x02 umschreiben und wieder flashen. Dann kannst du wieder eigene programme flashen bis du wieder 0x04 0x02 erreichst. Ist etwas aufwendig geht aber. Werde mich morgen auch mal an eigene Programme machen.
Leider funktioniert das nicht, wenn man den Bootloader im ROM nimmt. Ich muss beim Einschalten den CS vom Flash auf High legen und danach an den Mikroprozessor anschliessen, damit das Flashen funktioniert. Leider liesst der dann das Flash aus und sendet die Version an das Flashtool. Es muss ein Bug sein, daß durch Anstecken und darauf folgenden Einschalten ein Flashen funktioniert. Gruß, SIGINT
P.S.:http://www.youtube.com/watch?v=ct72-jxRNAs Das soll einen Farbverlauf zeigen... nur ein kleines Testprogramm
So hier ist mal ein Miuchiz Update Linker tool: Enthalten: Miuchiz upl Miuchiz update Miuchiz flash dump test.prg test.prg ist das test Programm von Sigint. (Die ersten beidem Bytes wurden nach dem compilieren entfernt) Was macht das Programm genau: Es erstellt eine „Miuchi Update.dat„ (inc. des eigenen Codes an der Adresse vom Spiel Match Emz) zum flashen. >"Miuchiz upl" starten >Miuchiz dump: -> Flashdump auswählen >Program: -> Eigenes Programm(z.b. test.prg) auswählen. >Miuchiz Update: -> Ziel für „Miuchiz Update.dat“ auswählen. >Start drücken und moment warten. > fertig. Somit muss man nicht immer 1000 Daten hin und her kopieren.
Hab einen neues Testprogramm geschrieben um das Bankswitching zu testen. Das Flash ist eindeutig an CS4 und das Display an CS3 angeschlossen. Das Flash liegt vom ST2205 aus betrachtet ab Adresse $80.0000, das Display ab $60.0000. Zum Programm: Das Programm legt das Display in die BRR (Bios-Bank ab $2000) und eine Grafik in die DRR (Daten-Bank ab $8000). Ein Byte entspricht einem Pixel, mit dem Farbformat BBBGGGRR (hatte kein anderes Bildformat zur hand). Das Bild wird einfach nur ins Display geladen. Ich bin leider nicht der 6502 Profi... aber da gibts bestimmt welche hier im Forum. Ich bin mal gespannt, wie lange es dauert bis jemand Tetris programmiert hat. ;-) Als nächstes versuche ich mal das ROM auszulesen. Ich hab nur keine Ahnung, wie ich den Inhalt an den PC übertragen soll... vielleicht hilft das USB-Interface weiter. (USB-CDC) Gruß, SIGINT
(Wie) Unterstützt denn das Display 8-Bit-Pixel direkt? Hab nix diesbezügliches im Datenblatt des ST626 gesehen.
Garnicht. Im Spiel wird es im 4096 Farben Modus betrieben, und zwar im Type B Modus, also 2 Transfers pro Pixel, 4bit pro RGB Farbe.
Genau, ich bastel mir aus dem einen Byte die passenden Bytes für das Display. Das mach ich nur, um Speicher zu sparen.
Kannst du mal deinen Code zur Bild-Anzeige posten? Vielen Dank
chrisu, was läuft bei dir, was möchtest du machen, woran scheitert es?
Danke für die hilfsbereitschaftskeit. Ich möchte nur den Code zur Bildausgabe sehen und dann verstehen... ich bin dabei Pong mit meinem Atmega8 auf das Dispaly zu zaubern. Und denke mit ein Paar Bildern(z.B gewonnen-Bild/verloren-Bild) könnte ich das ganze ien bisschen schmücken. gruß chrisu Edit : Danke für den Code über den post hier ....mh der ist ja schon für die ganze konsole
Hallo, mit dem BASCOM Code ("Tapetenmuster".bas) wird das Display im 16 Bit System mit 65536 Farben angesprochen. Ich schreibe in BASCOM 2x hintereinander ein einzelnes Byte ... ========================== Lcd_write Dat , WERT_1 Lcd_write Dat , WERT_2 ========================== ...und das zusammen ergibt dann die 16 Bit für ein Pixel. -Kann man das Display auf 8 Bit umschalten? -Im BASCOM Code finde ich keinen Hinweis, dass man das Display auf 8 Bit Farben umschalten kann.
Ok, also kann ich die Bios Bank als video ram nutzen bzw wird wohl im spiel auch als Vram benutzt. Mit 98x67(8bit) komm ich auf 6566 bytes. Das heißt ich könnte sogar den Vram etwas größer machen. Für Spiele Programmierung schonmal nicht schlecht. Oder wird die Bios Bank auch für andere sachen verwendet?
Ach so, das Display wird also im Typ-B Modus mit 16*16*16 Farben (=4096 Farben), und nicht im 65.536 Farb-Modus betrieben.
Sigint 112 schrieb: > Als nächstes versuche ich mal das ROM auszulesen. Ich hab nur keine > Ahnung, wie ich den Inhalt an den PC übertragen soll... vielleicht hilft > das USB-Interface weiter. (USB-CDC) > > Gruß, > SIGINT Achja, wenn du willst kannst du auch ein Programm schreiben das er den inhalt vom Rom ins Flash schreibt. Dann kann den flash neu Dumpen.
@Phil: Naja, du kannst in die Bios-Bank den internen RAM des ST2205 mappen und diesen dann als VRAM nutzen. Aber auf das Display kannst du nur ueber die zwei Adressen $2000 und $2001 zugreifen. Befehle gehen an $2000 und Daten an $2001. Um auf das Display zugreifen zu koennen musst du es aber erst in die Bios-Bank (oder jede andere Bank) mappen. Stichwort: Memory Mapped IO Nun gibt es das Problem, dass die originale Software ja auch das RAM und die Zeropage verwendet. Wenn man also irgendwas im RAM aendert, dann kannes sein, dass das Hauptprogramm nichtmehr laeuft und ein Neustart notwendig ist. Daher wuerde ich gerne die gesamte Miuchiz Software entfernen und nur eigene Programme verwenden. Das scheitert aber am USB-Bootloader. Gruss, SIGINT
Hier mal mein unfertiges Pong-Spiel, ich steuere auf dem Video nur den rechten Panel. Alles ist in Assembler geschrieben... Ich weiß man kann es noch "schöner" gestalten... gruß chrisu
Sigint 112 schrieb: > @Phil: Naja, du kannst in die Bios-Bank den internen RAM des ST2205 > mappen und diesen dann als VRAM nutzen. Aber auf das Display kannst du > nur ueber die zwei Adressen $2000 und $2001 zugreifen. Befehle gehen an > $2000 und Daten an $2001. Um auf das Display zugreifen zu koennen musst > du es aber erst in die Bios-Bank (oder jede andere Bank) mappen. > Stichwort: Memory Mapped IO > Nun gibt es das Problem, dass die originale Software ja auch das RAM und > die Zeropage verwendet. Wenn man also irgendwas im RAM aendert, dann > kannes sein, dass das Hauptprogramm nichtmehr laeuft und ein Neustart > notwendig ist. Daher wuerde ich gerne die gesamte Miuchiz Software > entfernen und nur eigene Programme verwenden. Das scheitert aber am > USB-Bootloader. > > Gruss, > SIGINT OK, Aber warum hast du vorher mit 0x8001 auf das Display geschrieben? Und was macht: >lda #$1c >sta $34 >lda #$01 >sta $35 ;DRR auf Flashadresse $0E.0000 einstellen (Daten - Bank) genau? Und wofür?
Movie mit dem Webseiten Avi-Konverter media-convert.com ins MPEG-1 Format umgewandelt. Film wurde kleiner (nur noch 1,37 MB)
@Phil: Also, im Prinzip ist es ganz einfach. Der 65C02 kann ja nur 64kB adressieren, daher wird Banking benutzt um die 2MB des Flash und das Display ansprechen zu können. Eigentlich unterstüzt der ST2205 bis 44MB, aber das Miuchiz nutzt halt nur 2MB. Die 64kB der 65C02 CPU wird in mehrer Bereiche aufgeteilt: $0000 - $007F Hardwareregister der CPU(USB, Sound,SPI, etc.) $0080 - $00FF ZeroPage (das was davon übrig ist) $0100 - $01FF Stack $0200 - $1FFF RAM (intern in der CPU) $2000 - $3FFF BIOS Bank (BRR) $4000 - $7FFF Programm Bank (PRR) $8000 - $FFFF Data Bank (DRR) Die ersten vier Bereiche sind fest und können nicht geändert werden. In die Bank-Bereiche kann externer Speicher eingeblendet werden. In unserem Fall sind das das Flash oder das Display. Ich kann so z.B. in die BIOS Bank einen beliebigen Teilbereich des Flash einblenden. Welchen Teilbereich ich genau einblende wird durch die BRRL und BRRH Register bestimmt. (für die BIOS Bank) >lda #$1c >sta $34 >lda #$01 >sta $35 ;DRR auf Flashadresse $0E.0000 einstellen (Daten - Bank) Dieser Programmteil blendet den Flashspeicher in die Data Bank ein. Und zwar ab der Flashadresse $0E0000. Wenn die CPU also auf Speicherstelle $8000 zugreift, da holt sie in wirklichkeit das Datenwort aus dem Flash an Stelle $0E0000 (vom Flash aus betrachtet!) Auf den externen Adressbus der CPU wird die Adresse $8E0000 ausgegeben, aber es sind nicht alle Leitungen des Adressbus mit dem Flash verbunden, wesswegen die 8 verschwindet. Nun zum Display: Das Display ist auch am externen Speicherbus der CPU angeschlossen. Allerdings besitzt das Display nur zwei Register (auswählbar über A0 des Displays). Das Display liegt am externen Speicherbus an der Speicherstelle $60.0000 bis $7F.FFFF (unterhalb des Flashspeichers $80.0000 bis $FF.FFFF). Ich kann mir das Display wahlweise in die Data Bank, BIOS Bank oder Program Bank legen. Ich muss nur die Register DRR, PRR oder BRR entsprechend einstellen. Schau dir mal genau das Datenblatt vom ST2205 an, da steht eigentlich alles drin. Ich hab nur lange gebraucht alles richtig zu verstehen. Wenn der Groschen gefallen ist, dann ist aber alles ganz einfach. Gruß, SIGINT
By the way: Ich hab eben mal CC65 runtergeladen in der Hoffnung, daß ich in C programmieren könnte. Aber leider verstehe ich nicht ganz, was der Compiler alles benötigt um ein Programm zu übersetzen. Es müssen wohl der Startup-Code, Linkerscripte und die Standardlib angepasst werden. (angeblich nur minimal) Kennt sich hier jemand damit aus?! Gruß, SIGINT
Hi, Ok, Datenblatt angeschaut und soweit verstanden. Bis auf die größe des speichers. Oben im Datenblatt steht etwas von 32kbyte ram und 16 kbyte rom. $0000 - $007F Hardwareregister der CPU(USB, Sound,SPI, etc.) $0080 - $00FF ZeroPage (das was davon übrig ist) $0100 - $01FF Stack $0200 - $1FFF RAM (intern in der CPU) $2000 - $3FFF BIOS Bank (BRR) $4000 - $7FFF Programm Bank (PRR) $8000 - $FFFF Data Bank (DRR) ergeben aber 64kbyte ram. Und wo befindet sich der rom. Und die adresse wo sich Display und Flash befindet hast du wohl durch disassemblen herrausgefunden.
Ergänzung zu meinen 2 Postings oben : 16 Bit System(RRRRR GGGGGG BBBBB) Beitrag "Re: Mini-Farbdisplay (+mehr) für 1 Euro" 16 Bit System Typ b-Modus(RRRRx GGGGxx BBBBx) Beitrag "Re: Mini-Farbdisplay (+mehr) für 1 Euro" Nachtrag: ============ Ich habe mit BASCOM die oberen 50% des Displays mit 4bit Farben gefüllt und die unteren 50% des Displays mit 5/6/5bit Farben gefüllt, und es macht absolut null Unterschied aus. Das kann man auch in dem Foto sehen.
Warum sollte es einen unterschied machen bei so wenigen farben? einen Unterschied würde es wohl nur machen, wenn du ein richtiges Bild mit hoher Farbtiefe anzeigen würdest (einmal mit 12 und dann mit 16 bit). Wahrscheinlich speichert das Display intern sowieso immer mit 16 Bit Farbe, nur die Übertragung vom µC zum Controller ist anders.
@Daniel: Du verwendest genau 3 Farben. Die kann man auch mit 3Bit kodieren. Um einen Unterschied zu sehen musst du alle möglichen Farben ausgeben, also einen Farbverlauf. Da siehst du den Unterschied dann. Denk darüber nochmal nach! @Phil: Du hast das Prinzip noch nicht ganz verstanden. Von $0000 bis $FFFF sind in der Tat 64kiB. Dies sind aber nur der logische Adressraum der CPU. Die alten 65C02 hatten nur 16 Adressleitungen, konnten also 64kiB ansprechen. Der ST2205 ist aber eine hochgezüchtete 65C02 CPU. Heute möchte man mehr Speicher ansprechen und hat daher dem ST2205 26 Adressleitungen verpasst. Damit kann der ST2205 Speicher von $0000000 bis $3FFFFFF ansprechen. (Davon sind aber nur maximal 23 nach aussen geführt; die restlichen Leitungen werden verwendet um Chipselect-Signale zu erzeugen.) Das Problem: Der 65C02-Kern der CPU kennt nur Adressen bis $FFFF, aber es müssen Adressen bis $3FFFFFF angesprochen werden. Die Lösung: Man unterteilt den großen Flash in viele kleine Teile, die einzeln in den Adressraum des 65C02-Kern passen. Die BIOS-,Date- und Programm-Bank sind die Platzhalter für die kleinen Teile des Flashs. Jenachdem welchen Wert man in die Register PRR,DRR oder BRR lädt, dann wird ein anderer Bereich des Flash in die jeweilige Bank gelegt. Die ersten vier Bereiche (Register, Stack, ZP und RAM) sind fest und ändern sich nie. Zum Thema ROM und RAM: Der interne ROM und das RAM hängen auch an dem 26Bit Adressbus der CPU. Das RAM wird über ein Bit im Bankregister aktiviert und in die entsprechende Bank gelegt. Wenn das interne ROM aktiviert ist, dann hängt es am Chipselect 0 und kann wie das externe Flash angesprochen werden, das am Chipselect 4 hängt... nur halt unter einer anderen externen Adresse als das Flash. Das Display hängt am Chipselect 3. Die zwei Register, die es besitzt, können im gesammten Speicherbereich vom CS3 angesprochen werden: Also Befehle an den Adressen $60.000, $60.0002, $60.0004,.... und Daten an den Adressen $60.0001,$60.0003,.... Das hat nix mit dem ST2205 zu tun, sondern ist bei vielen anderen Mikroprozessoren auch so, wenn das Display entsprechend am Bus hängt. Es hilft sehr viel, wenn man die Grundlagen von Mikroprozessorsystemen verstanden hat. Der Miuchiz ist sehr simpel und extrem logisch aufgebaut. Eigentlich ein Paradebeispiel für ein Mikroprozessorsystem des alten Schlages. Das Problem für mich ist nur die Datenmenge, die analysiert werden muss. Sowas hab ich noch nie gemacht. Schau dir mal alte Z80 oder 6502 Systeme an, da wirst du viele Übereinstimmungen finden. Speziell, wenn diese Systeme mehr als 64kiB Speicher ansprechen konnten. (Ein Beispiel ist der Gameboy) Gruß, SIGINT P.S.: Ja, die Adressen des Display hab ich durch Zufall herausgefunden. Ich hab genau die Init-Routine disassembliert. Zu dem Zeitpunkt hatte ich aber noch nicht das Banking vollkommen verstanden und nur durch zufall die richtige Annahme gemacht.
>>Wahrscheinlich speichert das Display intern sowieso immer mit 16 Bit >>Farbe, nur die Übertragung vom µC zum Controller ist anders. Habe die Settings des BASCOM Codes "rgb.bas" (siehe oben) probiert. Mein Eindruck ist, dass das Display an den Input-Pins den "65K color input mode" verwendet. Man sendet hintereinander 2 Byte: RRRRR GGG GGG BBBBB -Ausgewertet wird intern vom Display aber nur: RRRRx GGG Gxx BBBBx x sind Dummy Bits, die vom Display ignoriert werden. Siehe Pdf Farb-Erklärung (Seite 16 bis 18).
Daniel W. schrieb: > -Ausgewertet wird intern vom Display aber nur: > RRRRx GGG > Gxx BBBBx > > x sind Dummy Bits, die vom Display ignoriert werden. Nein, das Display verwendet alle Bits, nur ist deine Farbtabelle ungünstig, bzw. die FRC nicht aktiv, da alle 4 Tabellen gleich sind. Somit sind nur 4096 unterschiedliche Farben (16 pro RGB) vorhanden. Um wirklich alle 65536 Farben zu nutzen, müssen die 4 Tabellen unterschiedlich sein. Hier habe ich eine modifizierte Tabelle gepostet: Beitrag "Re: Mini-Farbdisplay (+mehr) für 1 Euro"
Daniel W. schrieb: >>>Wahrscheinlich speichert das Display intern sowieso immer mit 16 Bit >>>Farbe, nur die Übertragung vom µC zum Controller ist anders. > > Habe die Settings des BASCOM Codes "rgb.bas" (siehe oben) probiert. > > Mein Eindruck ist, dass das Display an den Input-Pins den "65K color > input mode" verwendet. Das ist nur ein dummes 8Bit-Interface, welches von vielen Hardwarekomponenten und Displays verwendet wird. Das kennt nichts von "color input mode", nur 8Bit Daten/Befehle lesen oder schreiben. > Man sendet hintereinander 2 Byte: > RRRRR GGG > GGG BBBBB > > -Ausgewertet wird intern vom Display aber nur: > RRRRx GGG > Gxx BBBBx > > x sind Dummy Bits, die vom Display ignoriert werden. Mich würde jetzt mal interessieren, wie du darauf kommst. Hast du ein paar Bilder, mit denen du deine Behauptungen belegen kannst? Das Display wird die Daten, die du ihm schickst, so interpretieren, wie du es vorher bei der Initialisierung eingestellt hast. Stellst du den 4k Modus ein wird das Display auch nur 4096 Farben darstellen... stellst du 16M Modus ein wird es circa 16Millionen Farben darstellen können. Ob man die Farben auf dem Display unterscheiden kann ist eine ganz andere Sache, das sind halt physikalische Grenzen. Gruß, SIGINT
Sigint 112 schrieb: > stellst du > 16M Modus ein wird es circa 16Millionen Farben darstellen können. Nein, maximal 65536, denn der Speicher ist nur 16bit breit. Davon abgesehen könnte das Display 6bit pro Farbe, also 18bit darstellen. Egal wie man die Daten sendet, die Daten werden auf 16bit umgewandelt und im internen Speicher abgelegt.
Hi, Ja soweit hatte ich das schon fast verstanden. 0000-1fff sind meine ersten 8kbyte Ram. Doch da sind auch Register drin wodurch der Ram etwas kleiner wird. Jetzt kann ich 2000-3fff auch auf einen Ram mappen BRR[15]=1. Dann habe ich wieder 8kbyte. Zuletzt kann ich auch noch 4000-7fff auch auf den Ram mappen mit PRR[15]=1. Das sind dann 16kbyte. Machen zusammen 32kbyte. Und mit DRR[15]=1 kann ich den kompletten ram auf 8000-ffff setzen. Doch wie ich jetzt auf den Rom komme weiß ich noch nicht. Danke noch mal Sigint. Gruß
@Benedikt: Ich verstehe die Grafik auf Seite 27 so, daß die 8Bit für jede Farbe vollständig gespeichert werden. Allerdings heisst der Modus ja "Truncated 16M color mode"... komische Sache. @Phil: Das mit dem RAM dürft so stimmen. Ich hab das aber noch nicht ausprobiert. Hab bis jetzt nur die $200-$1FFF genutzt. Da das interne ROM nur 16kiB groß ist passt es komplett in die Daten-Bank oder Programm-Bank. Das ROM hängt am CS0 also im Adressbereich $00.0000-3F.FFFF. Es sollte reichen, wenn du DRR oder PRR mit dem Wert $00 lädst (also DRRL,DRRH=$00 oder PRRL,PRRH=$00). Dann kannst du über die entsprechende Bank auf die 16kiB ROM zugreifen. Es sei die CPU hat Schutzmaßnahmen gegen das Auslesen. Es sollte weiterhin möglich sein Bereiche vom Flash zu löschen und das ROM ins Flash zu schreiben. Die Schreib- und Löschsequenzen des Flash stehen im Datenblatt. Gruß, SIGINT
Sigint 112 schrieb: > Ich verstehe die Grafik auf Seite 27 so, daß die 8Bit für jede Farbe > vollständig gespeichert werden. Allerdings heisst der Modus ja > "Truncated 16M color mode"... komische Sache. Das ist ziemlich bescheuert einen 16M Modus einzubauen wenn der Controller nur 16bit kann. Vermutlich ist der nur aus Kompatibilitätsgründen drin. Dass der Controller wirklich nur 16bit kann, sieht man z.B. auf der ersten Seite (65K Color Dot Matrix LCD Controller/Driver) und im Blockdiagramm auf Seite 10 (DISPLAY DATA RAM (DDRAM) [98 X 68 X 16]). In der Beschreibung findet man 64 gray-scale display. Der Controller erzeugt die Farben über eine PWM mit 32 Stufen. Diese 32 Stufen kann man in der Farbtabelle 16 Farben zuordnen. Diese höhere Auflösung ist notwendig, denn die optische Kennlinie des Displays ist stark nichtlinear. Über die PWM alleine kann man also 16 Graustufen, also 4096 Farben erzeugen. Zusätzlich wird über 4 Frames noch eine Frameratemodulation gemacht, also in jedem der 4 Frames ein anderer PWM ausgegeben, daher auch die 4 Tabellen. Wenn alle 4 Tabellen gleich sind ist nur die PWM aktiv, daher sieht man nur 16 Stufen pro Farbe. Mit unterschiedlichen Tabellen erreicht man 4 Zwischenstufen, also 64 Graustufen, was theoretisch 6bit pro Farbe, bzw. 18 bit insgesamt erlaubt. Davon nutzbar sind aber nur 16bit wegen dem begrenzten Speicher. PS: Wenn man einen Graustufen oder RGB Balken anzeigt, sieht man auch auf diesem Display die einzelnen Schritte. 32 bzw 64 unterschiedliche Stufen sind nicht wirklich viel wenn man Farbverläufe hat.
So ich hab mich dann auch mal an eigenen Programmen Probiert. Ist quasi die Animation von Q9 nur für den Miuchiz und in asm. Hier ist mal der ASM code.
@Phil S. (zippi): Noch mal ein paar Dummyfragen zum Miuchiz_upl: 1. Die test.asm / flyeck.asm muß man womit assemblieren? 2. Bei der resultierende prg Datei müssen die ersten beiden Bytes entfernt werden (z,B mit WinHEX etc.) 3. Damit wird das Miuchiz_upl gefüttert und erzeugt eine *.dat Firmware Update Datei. 4. Ich vermute, dann braucht man noch ein Tool, um diese geänderte Firmware in das Gerät zu spielen..? Wo bekomm ich die und wir heißt das Programm? 5. Wie wird das Test-/eigene Programm dann gestartet? 6. Noch was vergessen oder falsch verstanden? Peter
EDIT: Assembler ist ACME - weiter oben gefunden.. (Kann leider Beitrag nicht mehr editieren) Peter
petersieg schrieb: > 4. Ich vermute, dann braucht man noch ein Tool, um diese geänderte > Firmware > in das Gerät zu spielen..? Wo bekomm ich die und wir heißt das > Programm? Auf der miuchiz.com Webseite kannst du dir ein Update runterladen. Im Ordner dieses Tools tauschst du die Update-Firmware gegen die modifizierte aus.
Danke! Ich habe mir von weiter oben die: Miuchiz_Update.msi ca. 953kb heruntergeladen. Ich vermute, das ist das Update-Tool? Ansonsten muß mna sich ja erst registrieren.. Peter
Hi,
>Also hier ist mal ein Update vom Miuchiz upl.
Damit brauchst du die 2 bytes nicht mehr entfernen kann das Programm
automatisch. einfach "jump program boot address" anklicken.
In dem Ordner, ist ein unter Ordner der heist Miuchiz update. Da kannst
du ihm deine "Miuchiz Update.dat" hinspeichern lassen(in dem Ordner ist
dann auch das Update tool.). Der Miuchiz dump befindet sich im flash
dump Ordner.
Ich hab den Compiler auch mal mit rein gemacht. Ist im ACME Ordner. Da
ist auch eine make.bat:
Wenn man die mit dem Editor öffnet steht dort "acme -v3 flyeck.asm".
Wenn du jetzt ein asm file in dem gleichem ordner befindet, welche
"flyeck.asm" heißt (kannst du auch umbenennen), dann wird die, falls du
keinen fehler im code hast, Compiliert.
Im example ordner findest du das programm fly eck für Miuchiz.
Jetzt kannst du Miuchiz upl starten. Und das Update file erstellen.
Miuchiz upl setzt dann dein Programm an die stelle vom match´emz. Also
im Spiel einfach zum PC gehen und das Spiel außwählen.
PS: Wenn jemand verbesserung vorschläge für "Miuchiz UPL" hat kann die
gerne posten.
@Phil S.: Prima.. werde ich probieren.. DANKE!
>Also im Spiel einfach zum PC gehen und das Spiel auswählen. <-- ??
Verstehe ich leider nicht..?
Das betraf die Frage, wie ich das Programm (hier flyeck) dann starte..?
---
Zum make.cmd: hier kann man besser den festen Namen duch %1.asm
ersetzen..
Dann führt make ..\examples\flyeck zum gewünschten prg File..
---
Im Verzeichnis 'Miuchiz update' ist ja schon das Programm 'Miuchiz
update.exe'.. ist das das Updateprogramm von der Webseite, das über die
*.msi Datei ansonsten auch installiert wird..? = Ich brauche die Miuchiz
Update.msi gar nicht mehr installieren, sondern Gerät über USB in den PC
stecken und Miuchiz update.exe starten..?
Peter
petersieg schrieb: > @Phil S.: Prima.. werde ich probieren.. DANKE! > >>Also im Spiel einfach zum PC gehen und das Spiel auswählen. <-- ?? > Verstehe ich leider nicht..? > > Das betraf die Frage, wie ich das Programm (hier flyeck) dann starte..? > --- > Zum make.cmd: hier kann man besser den festen Namen duch %1.asm > ersetzen.. > Dann führt make ..\examples\flyeck zum gewünschten prg File.. > --- > Im Verzeichnis 'Miuchiz update' ist ja schon das Programm 'Miuchiz > update.exe'.. ist das das Updateprogramm von der Webseite, das über die > *.msi Datei ansonsten auch installiert wird..? = Ich brauche die Miuchiz > Update.msi gar nicht mehr installieren, sondern Gerät über USB in den PC > stecken und Miuchiz update.exe starten..? > > Peter Also im Spiel zum PC gehen, heist du gehst mit dem Monster zum PC und dann kann man zwischen den spielen wählen. Da nimmst du dann Match'emz. In dem Video von mir sieht man das eigentlich ganz gut. Wenn du das Programm beenden willst musst du es hinten reseten. Und zum Update, ja das ist das Update Programm. Du musst es also nicht installieren. >>>>>Wichtig: Um zu Updaten, Miuchiz ausschalten, dann an USB anschließen und wieder anschalten (Ist wohl ein bug wodurch die abfrage der Version übersprungen wird).
ok. Kurze Rückmeldung.. hat geklappt! flyeck läuft auf meiner Konsole.. Prima Arbeit von allen Beteiligten! Peter
Hallo, wie kann man Fonts auf dem Display ausgeben mit BASCOM? Bei BASCOM ergibt z.B. das Asci-Zeichen "C" mit der Bascom-Funktion ASC("C") die Zahl 67. Wie kann man aus der Zahl 67 dem Programm BASCOM mitteilen, dass es einen Sprung auf den dritten "DATA" -Datensatz machen soll? Oder wäre es sinnvoll, die Zeichen A-Z vielleicht in eine einzelne, riesig lange Konstante hinein zu programmieren, z.B. als Stringkonstante: A B C Const Myfont = "0,126,17,17,17,126 ,0,127,73,73,73,54 , 0,62,65,65,65,34" ...oder sollte man besser DATA benutzen: ======================================== DATA 0,126,17,17,17,126 'A DATA 0,127,73,73,73,54 'B DATA 0,62,65,65,65,34 'C DATA 0,127,65,65,65,62 'D DATA 0,127,73,73,73,65 'E DATA 0,127,9,9,9,1 'F DATA 0,62,65,73,73,122 'G DATA 0,127,8,8,8,127 'H DATA 0,0,65,127,65,0 'I DATA 0,48,64,64,64,63 'J DATA 0,127,8,20,34,65 'K DATA 0,127,64,64,64,64 'L DATA 0,127,2,4,2,127 'M DATA 0,127,2,4,8,127 'N DATA 0,62,65,65,65,62 'O DATA 0,127,9,9,9,6 'P DATA 0,62,65,81,33,94 'Q DATA 0,127,9,9,25,102 'R DATA 0,38,73,73,73,50 'S DATA 0,1,1,127,1,1 'T DATA 0,63,64,64,64,63 'U DATA 0,31,32,64,32,31 'V DATA 0,63,64,60,64,63 'W DATA 0,99,20,8,20,99 'X DATA 0,7,8,112,8,7 'Y DATA 0,113,73,69,67,0 'Z 'Font-Quelle: 6x8 Zeichensatz aus dem Verzeichnis "C:\BASCOM\SAMPLES\LCDGRAPH\my6_7.font"
Daniel W. schrieb: > Hallo, > > wie kann man Fonts auf dem Display ausgeben mit BASCOM? Beispiel ist im Anhang.
Wer will denn an dem Ding überhaupt noch weiterarbeiten? Ich meine jetzt nicht nur als Display, sondern auf 6502 Basis? @SIGINT: Nochwas: Wie stehen denn die Chancen, dass man den Auswahlbildschirm mit dem Monster noch weg kriegt und das eigene Programm direkt zum Starten bekommt? Problem dürfte ja sein, dass man dann über USB nocht mehr an die Büchse drankommt, oder? Ich hatte nämlich überlegt, mir auch ein oder zwei Geräte zu holen. Gibt es ja bei Ebay auch noch für 5 oder 6 Euro. Nen Woolworth haben wir leider nicht in der Nähe... Gruß, Andreas
Nun, ist evtl. etwas philosophieren.. aber dank der Arbeiten hier, hat man jetzt eine unschlagbar günstige 'Konsole' mit: * Spielkonsole mit Tasten und Farbdisplay * USB-Updatemöglichkeit * 65c02 kompatibler CPU - dafür ACME und evtl. sogar mal cc65 zur Entwicklung Daher sehe ich das ähnlich wie beim C64 DTV.. Ideal für Hacker/Modder/Programmentwickler.. Das ist so alles schon toll.. und wenn wie gesagt erst C Programmierung über cc65 o.ä möglich ist.. und evtl. auch andere Teile im Flash genutzt werden können etc. gibt es hier doch so einige Möglichkeiten.. bis hin zu Hardwareerweiterunge über SPI o.ä.. Bei ebay gibts übrigens auch welche für 2,50€+Versand.. Peter
@Andreas R.: Also ich mach auf jeden Fall weiter. Das Display ist zwar nett, aber ich hab dafür noch keine konkrete Verwendung. Ich hab das erstmal gebunkert. Mich interessiert eher die komplette Konsole, als Lehrobjekt. Leider hab ich im Moment große Zeitprobleme, wesswegen ich nicht wirklich voran komme. Nun zum Technischen: Es ist prinzipiell möglich fast die komplette Konsole softwareseitung zu übernehmen. Die Doku der CPU steht und zur Verfügung und der Aufbau ist sehr einfach. (nur Spannungsversorgung, Flash, Tasten, USB und LCD) Es gibt aber ein paar Probleme die ich habe: Das interne ROM enthält einen USB-Bootloader, der unabhängig vom Flash arbeitet. Allerdings scheint im Flash auch ein Teil, oder eine Erweiterung zu liegen. Die Zusammenhänge sollten noch analysiert werden, damit wir unabhängig vom Miuchiz-Flashtool sind. Damit hab ich aber keine Erfahrung. Zudem scheint es so, daß das Programm im ROM das Programm im Flash startet. Ich hab noch keine sichere Methode gefunden unsere Programme direkt zu starten und den Bootloader funktional zu halten. Ich hab schon 3 unbrauchbare Konsolen hier liegen. Die könnte ich mit Tricks wahrscheinlich wiederbeleben. Ich muss nur die Versionskontrolle beim Flashtool austricksen... hab nur keine Ahnung, wie. Ein eigenes Tool wäre sehr hilfreich, aber ich hab keine Ahnun wie ich auf die "Festplatte" des Miuchiz zugreifen kann ohne ein Dateisystem. @petersieg: Die Konsole ist ja prinzipiell voll nutzbar, solange man aufpasst, daß man nicht die falschen Flashbereiche überschreibt. Sogar USB sollte machbar sein, wenn man die Interrupt-Bank auf seine eigene ISR umbiegt. Aber schöner wäre es die volle Kontrolle zu erlangen und ein eigens Flashtool nutzen zu können. Am Wochenende beschäftige ich mich mal mit CC65. Ich habe gemerkt, daß ich mit Assembler nicht sooo gut klar kommen. Das wird schnell unübersichtlich und ist schlecht modularisierbar. Bis jetzt hab ich CC65 noch nicht dazu überreden können Programmcode für mich zu erzeugen. (also mit --target none) Gruß, SIGINT
Hi Andreas, Da der bootloader auch im internem ROM ist, muss mann vielleicht nur das Programm bei anliegen der VBUS Spannung an der start Adresse des bootloaders springen lassen. Wie weit das aber geht müssen wir noch testen. Dann könnte man vll das Komplette spiel ersetzen. Wenn ich die tage dazu komme, werde ich versuchen ein Programm zu schreiben was den Inhalt vom Rom in den Flash schreibt und dann den Flash extern auslesen. Dann sind wir schon mal ein schritt weiter. Da mein ASM schlecht ist, hoffe ich das sich jemand mal mit dem CC64 auseinander setzt. Wenn du wirklich Interesse hast mit zu Programmieren würde ich dir 2st Miuchiz Monster inc. Versand für 5Euro zuschicken. @Sigint Wie schon erwähnt wenn du willst mach ich deine 3 defekten Miuchiz wieder heile. gruß
Sigint 112 schrieb: > @Phil: > Das mit dem RAM dürft so stimmen. Ich hab das aber noch nicht > ausprobiert. Hab bis jetzt nur die $200-$1FFF genutzt. > Da das interne ROM nur 16kiB groß ist passt es komplett in die > Daten-Bank oder Programm-Bank. Das ROM hängt am CS0 also im > Adressbereich $00.0000-3F.FFFF. Es sollte reichen, wenn du DRR oder PRR > mit dem Wert $00 lädst (also DRRL,DRRH=$00 oder PRRL,PRRH=$00). Dann > kannst du über die entsprechende Bank auf die 16kiB ROM zugreifen. Es > sei die CPU hat Schutzmaßnahmen gegen das Auslesen. > Es sollte weiterhin möglich sein Bereiche vom Flash zu löschen und das > ROM ins Flash zu schreiben. Die Schreib- und Löschsequenzen des Flash > stehen im Datenblatt. Hi, Gut also das ROM hat schonmal kein leseschutz. Jetzt muss ich erstmal sehen das ich irgendwas ins Flash schreibe und auslese um zu testen, dass das auch ohne Probleme funktioniert. gruß
Könnte man nicht am Start in eine eigene Routine springen, die z.B. einen Taster der Konsole abfragt. Ist der Taster gedrückt, springt die Routine ganz normal in den Standardbootloader. So kommt man ins Spiele-Auswahlmenu und kommt per Updatetool an das Gerät ran. Ist der Taster nicht gedrückt, wird unser eigener Code angesprungen. Damit wäre es kein Problem, wenn wir in unserem eigenen Code die Konsole aufhängen. Man könnte immer wieder per USB updaten?! Würde das irgendwie gehen? Gruß, Andreas
Hallo nochmal, @Phil S.: Hab Dir ne PM geschrieben wegen den 2 Stück Miuchiz. Gruß, Andreas
Multi-Color Textausgabe. Das LCD-Display wurde auf Flachbrett-Scanner gescannt.
Hallo, anbei ein BASCOM-Programm zur Textausgabe auf Atmega8 mit 5x7 Font. Die Textfarbe und die Hintergrundfarbe sind frei wählbar.
Andreas Rickert schrieb: > Hallo nochmal, > > @Phil S.: Hab Dir ne PM geschrieben wegen den 2 Stück Miuchiz. > > Gruß, > Andreas Ich frage mich schon dauernt warum ich nie PMs bekommen hab^^. Habe jetzt meine alte mail add gefunden wo die hingeschickt werden. Da sind ja ein haufen PMs^^. >Ist der Taster gedrückt, springt die Routine ganz normal in den >Standardbootloader. Ja und wo ist der Standardbootloader? Im Rom! Aber wo genau wissen wir aber nicht. gruß
Nur mal so als Idee, ohne mich näher damit beschäftigt zu haben: Im Flash wird es vermutlich eine Einsprungadresse geben, an der dann wiederum ein Sprungbefehl zum Codestart steht. Diesen Sprungbefehl ändert man so um, dass in einen freien Flashbereich gesprungen wird, dort wird ein Taster abgefragt. Wenn Taster gedrückt, dann Sprung zu der ursprünglichen Codestart-Adresse durchführen, ansonsten eigenen Code ausführen.
Hallo zusammen, ich hab es teilweise geschafft: Der CC65-Compiler läuft soweit! Anbei die notwendigen Dateien. Zuerst müsst ihr den Compiler runterladen und installieren.(Pfad setzen nicht vergessen) Danach entpackt alle Dateien aus dem Archiv in ein Verzeichniss. Übersetzen könnt ihr das Programm dann mit: "cl65 -m main.map -t none -C none.cfg main.c st2205u.o st2205u.lib" Die Datei "main" enthält dann das fertige Programm, welches ihr in die "Miuchiz Update.dat" einfügen müsst. (Offset: 0xD844B) Es gibt noch Probleme, die ich noch nicht ganz verstehe aber einfache Programm laufen schon. Ich arbeite weiter an den Problemen. Zum Thema Bootloader: Ich bin mir nicht sicher, wie ich den Bootloader im internen ROM anspringen kann. Über den Resetvektor schein ich nicht den Loader starten zu können. (seltsam) Oder ich hab irgendwas falsch gemacht. Am besten wäre es, wenn wir das ROM auslesen und analysieren. Ich schaffe es leider nicht das ROM unbeschädigt runter zu löten. Zum Thema Taster: Es gibt eine Abfrage der Taster und einen Sprung in das Testprogramm. Aber leider hab ich mir ein paar Konsolen damit gebricked, als ich diese Abfrage nutzen wollte. Die sicherste Methode zum Testen ist das MiniGame. Irgendwann hoffe ich das komplette Spiel ersetzen zu können und meine defekten Konsolen mit einem eigenen Flashtool wieder herstellen zu können. Wir müssen nur die Versionskontrolle überlisten, dann kann man beliebig Firmware hochladen. (Der interne Bootloader kann ja nicht überschrieben werden. Und über ein Hardwarehack ist dieser immer startbar.CS des Flash beim Start unterbrechen) Ich hoffe wir kommen mit der Konsole etwas weiter... das Teil ist wirklich interesannt zum basteln. Ich hoffe irgendwann eine SD-Karte in das Teil ein zu bauen und per USB darauf Spiele ablegen zu können. ;-) Gruß, SIGINT
Hi nochmal, wie sieht das denn eigentlich mit den anderen HW-Schnittstellen aus. Irgendwer hat ja schon von SPI-Erweiterungen geträumt... Das Ding hat doch sicher ne RS232. Kommt man an die Pins ran? Dann könnte man ja darüber mal das ROM auslesen? Gruß, Andreas
@sigint: Super! Textausgabe 5x7 und Pixel setzen in C.. Hast du mal eine Hardcopy davon..? Peter
@Andreas: Alles was nicht gebondet ist wird auch nicht nutzbar sein. Und ich gehe davon aus, daß diese Schnittstellen nicht gebondet sind. Die werden hier ja nicht eingesetzt. An das ROM kommen wir entweder über USB ran, oder indem wir es aufs FLASH schreiben. Wenn sich jemand mit USB auskennt könnte er ja ein CDC-Device implementieren. Oder jemand versucht mal das Miuchiz Flashtool neu zu schreiben... dann sollten wir auch das Flash runterladen können. Beides erfordert Kentnisse, die ich noch nicht habe. @petersieg: Was meinst du mit Hardcopy? Anbei mal ein Video. http://www.youtube.com/watch?v=yVHN353s6OM Und das Binary als Download. Das Binary muss ab $D844B in die "Miuchiz Update.dat" eingefügt werden. (Ersetzt das vorhandene Programm) Gruß, SIGINT
Die main kannst du ganz normal mit Miuchiz UPL linken. Einfach nur den hacken bei jump boot address weglassen. Wird dann an $d844B hingepackt. Zum Flash: ich muss erstmal schauen wie ich OE# und WE# vom flash verstellen kann um einen sector zu löschen und neu zu beschreiben.
Hallo! Bei meinem Woolworth gibts die leider nicht mehr, falls jemand nochmal an dem Grabbeltisch vorbei geht und da noch welche liegen, könnte man mir 3-5 Stück mitbringen, wenn die noch 1-2 Euro kosten? Das wäre super! Vielen Dank
Hallo zusammen, ich hab herausgefunden, daß Cygwin auch Device-Files hat und ich auf das Miuchiz zugreifen kann. Also hab ich mal versucht die Befehle der libST2205u zu nutzen, um den Flash zu lesen. Anscheinend nutzt das Miuchiz andere Befehle. Die Adressen sind aber sehr wahrscheinlich identisch. 0x6200 Befehle 0x6600 Daten schreiben 0xB000 Daten lesen Wir brauchen also die Befehle, um ein eigenes Flashtool schreiben zu können. Diese finden sich im Bootloader. Also geht das Suchen weiter. Link: http://picframe.spritesserver.nl/wiki/index.php/Libst2205 Gruß, SIGINT
Sigint 112 schrieb: > Also hab ich mal versucht die Befehle der > libST2205u zu nutzen, um den Flash zu lesen. Das hatte ich neulich mal unter Linux mit dem st2205tool probiert, das ebenfalls die lib benutzt. http://www.neophob.com/files/st2205tool-1.4.3.tar.gz Ich mußte nur den is_photoframe-Check abschalten, weil der String, auf den da getestet wird, bei den Konsolen anders lautet und an einer anderen Stelle liegt. Das Ergebnis war, daß nach dem Senden des Lesebefehls die Leseoperation hängen bleibt, vermutlich weil der Befehl den Controller zum Absturz gebracht hat. > Anscheinend nutzt das Miuchiz andere Befehle. > Die Adressen sind aber sehr wahrscheinlich identisch. Könnte es nicht auch umgekehrt sein: gleiche Befehle aber andere Adressen, bzw. daß sich nicht die Adressen auf der USB-Storage-Ebene unterscheiden, sondern die controller-internen Adressen, die man in die Befehle schreiben muß? Wenn jeweils die gleiche Bibliothek des Chipherstellers eingesetzt wurde, erscheint mir das plausibler. Und wie sonst als durch eine Lib oder Appnote des Chipherstellers sollten verschiede Gerätehersteller auf die abartige Idee kommen, mit genau diesen Chips das USB-Storage-Protokoll als eine Art Registerschnittstelle zu mißbrauchen? > Wir brauchen also die Befehle, um ein eigenes Flashtool schreiben zu > können. Diese finden sich im Bootloader. Die sollten sich auch mit einem USB-Sniffer finden lassen. Die gibt es für Windows teilweise als kostenlose 30-Tage-Version mit relativ guten Analysewerkzeugen für die einzelnen USB-Protokolle. Evtl. reicht es auch, das Update-Programm in einer Art strace laufen zu lassen, falls es sowas für Windows gibt.
Hab ich doch schonmal gemacht : Beitrag "Re: Mini-Farbdisplay (+mehr) für 1 Euro" Die Adressen stimmen schon, nur der Ablauf scheint anders.
Andreas Jakob schrieb:
> Die Adressen stimmen schon, nur der Ablauf scheint anders.
Kann denn das Tool, das Du da verwendet hast, auch die gelesenen und
geschriebenen Daten loggen?
Wenn es das könnte, oder ich ein Tool gefunden hätte welches das kann, gäb es schon ein Flashtool für den Miuchiz. USB-Sniffer liefern derart viel Daten die man zuordnen muss, dass das auch keine Hilfe ist. Bleibt noch ein Debugger, aber da fehlt mir die Geduld :) Man müsste einen Filter schreiben, der sich wie ein Virenscanner in den Datenstrom einklinkt.
Andreas Jakob schrieb: > Wenn es das könnte, oder ich ein Tool gefunden hätte welches das kann, > gäb es schon ein Flashtool für den Miuchiz. Hast Du es mal mit StraceNT probiert? http://www.intellectualheaven.com/default.asp?BH=projects&H=Strace.htm Es behauptet von sich, ähnliche Funktionen wie strace für Linux zu bieten und damit würde es gehen, wenn man mit -s dafür sorgt, daß genug Inhalt von den Schreib- und Leseoperationen angezeigt wird.
Jo, hab ich schon probiert. Du kriegst aber nur das Dateihandle, die Speicheradresse des Buffer und die Länge des Buffer damit raus. Was in dem Buffer drinsteht aber leider nicht. Ich denke es macht mehr Sinn auf der anderen Seite, im Miuchiz Disassembly, zu suchen.
Marburg (Hessen) hat nur ein Woolworth und da gibt es noch welche, ich hab 5 geholt, und es sind noch ca. 5 da. (kann also noch beschaffen) meine frage, gibt es eine moglichkeit, ein video signal auf den display darzustellen, ohne programm, also compsit, component, RGB oder vga ? direkt am display wird es nicht gehen, aber mit einem steuerchip (ähnlich wie ihn auch die Playstation 1 und 2 display benutzen) hat da jemand ein wenig ahnung? Danke
derGeen schrieb: > Marburg (Hessen) hat nur ein Woolworth und da gibt es noch welche, ich > hab 5 geholt, und es sind noch ca. 5 da. (kann also noch beschaffen) > > meine frage, gibt es eine moglichkeit, ein video signal auf den display > darzustellen, ohne programm, also compsit, component, RGB oder vga ? > direkt am display wird es nicht gehen, aber mit einem steuerchip > (ähnlich wie ihn auch die Playstation 1 und 2 display benutzen) hat da > jemand ein wenig ahnung? > Danke Hallo derGeen! Ich kann dir deine Frage leider nicht beantworten, hätte aber gerne welche (von mir aus auch gerne alle 5 wenn die noch da sind dann). Könntest du mir die holen und nach Berlin schicken? Komme natürlich für Versand, Verpackung, etc. auf. Vielleicht schickst du mir ne Mail an info@plaputta.de? Danke!
derGeen schrieb: > meine frage, gibt es eine moglichkeit, ein video signal auf den display > darzustellen, ohne programm, also compsit, component, RGB oder vga ? In schwarz/weiss könnte dass vielleicht ein Mikrocontroller mit A/D Wandler und zusätzlichem Sync-Seperator (LM1881) hinbekommen, bei der geringen Auflösung. In Farbe kannst du dir für den nötigen Aufwand besser gleich ein anderes Display kaufen.
>In schwarz/weiss könnte dass vielleicht ein Mikrocontroller mit A/D >Wandler und zusätzlichem Sync-Seperator (LM1881) hinbekommen, bei der >geringen Auflösung. >In Farbe kannst du dir für den nötigen Aufwand besser gleich ein anderes >Display kaufen. S/W würde mir vollkommen ausreichen
Die PS1/2 Displays sind rein analoge TFT Displays. Die können daher mehr oder weniger direkt die 50Hz RGB Signale verdauen. Bei diesem Display lohnt sich der Aufwand nicht wirklich. Machbar ist es aber. Ich würde allerdings einen CPLD oder einen kleinen FPGA zusammen mit z.B. einem TVP5150 verwenden. Der gibt die Daten mit 27MHz als YUV aus. Je nach Aufwand kann man die Daten also entweder in RGB umrechnen oder nur die Y Daten als SW Bild verwenden. Ein AVR dürfte nämlich damit etwas überfordert sein, mit rund 2MHz einen Wert vom ADC einzulesen, den entsprechend in einen 16bit Wert umzuformen und diesen dann an das Display weiterzureichen. Solch dumme Aufgaben sind ideal für CPLDs/FPGAs. Alternativ könnte sowas wie ein dsPIC/PIC24H auch gehen. Der kommt mit Bitschiebereien und ähnlichem wunderbar zu recht und kann dank PMP (Parallel Master Port) die Daten im Hintergrund über das 8bit Interface an das Display schieben, während er neue Bilddaten einliest und in 16bit Werte umwandelt. Eventuell könnte sogar der interne ADC ausreichen. Mit solch einem µC habe ich schon mit über 40fps einen Film von einer SD Karte auf dem Display abgespielt.
keien anfragen merh wegen Miuchiz 2.0. Marburg ist leer und ich hab auch alle schon weg. @Tobias Plaputta: kannst du auch mit EINER glücklich werden ?
derGeen schrieb: > keien anfragen merh wegen Miuchiz 2.0. Marburg ist leer und ich hab auch > alle schon weg. > @Tobias Plaputta: kannst du auch mit EINER glücklich werden ? Bis ich das kaputt mache, ja, nehme sehr gerne :) Geht das in einen Maxibrief? Alles weitere vielleicht unter info@plaputta.de Vielen Dank
Hallo zusammen, ich hab mal angefangen den USB-Bootloader im Flash zu analysieren. Die Appnote AN1169 von Microchip ist eine gute Infoquelle für die USB Mass Storage Klasse. http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en534213 Der Bootloader steht im Flash ab $4000 und wird in die Programmbank geladen ($4000-$7FFF). Fast alles aus dem Appnote kann ich im Bootloader wiederfinden. (ist ja logisch) Die interesannten Stellen hab ich aber noch nicht analysiert, da ich gerade angefangen hab. Vielleicht hat ja jemand Lust mit rein zu schaun. Gruß, SIGINT P.S.: Ich glaube, daß die Chancen gut stehen ein eigenes Flashtool zu schreiben. Allerdings wird das Tool nicht Narrensicher sein,es sei ein Profi beschäfftigt sich damit.
So... melde mich auch mal wieder. @Phil S.: Die beiden Miuchiz sind angekommen! Funktionieren auch. Hab schonmal reingeguckt. Der Thread hier ist zum Diskutieren ja super - keine Frage. Aber da es zum Einen hier um das reine Hacking geht und zum anderen darum, das Display mit einem Atmel zu betreiben, ist der Thread schon etwas unübersichtlich. Außerdem sind alle Infos im ganzen Thread verteilt. Also hab ich unter www.miuchiz-hacking.de.vu mal ein kleines Dokuwiki angelegt und mit etwas Leben gefüllt. Ist alles noch etwas durcheinander. Wer Lust hat kann gerne mit editieren! Gruß, Andreas
Hallo nochmal, ich hoffe, ich finde bald raus, was ich ändern muss, damit mein Hoster die Anmeldeemails durchlässt... Irgendwelche php und sendmail Einstellungen. Muss ich nochmal nachlesen. Lange Rede... wenn ich das weiss, mache ich das Wiki nur noch für angemeldete Nutzer editierbar. Ist sicherer. Gruß, Andreas
Wenns nicht klappt weisste ja bescheid :) miuchiz-hacking.tiwiki.de?
Hallo zusammen, so wie es aussieht hab ich eine gute und eine schlechte Nachricht. Die gute Nachricht ist, daß ich wahrscheinlich die Befehle gefunden hab die an die Adresse $6200 gesendet werden müssen.
1 | L4148: ;Kommandos an $6200 ? |
2 | lda X0434 |
3 | cmp #$2A |
4 | beq L415C |
5 | cmp #$28 |
6 | beq L4161 |
7 | cmp #$80 |
8 | beq L4166 |
9 | cmp #$81 |
10 | beq L416B |
11 | rts |
Diese Werte decken sich mit den Daten der "Miuchiz USB.doc". Das Mass Storage Protokoll ist eigentlich relativ einfach: Der Host sendet einen Command Block Wrapper an das Device. (USBC) Dieser Wrapper enthält die Operation, die das Device ausführen soll. Dann schickt entweder das Device oder der Host die notwendigen Daten. Darauf schickt das Device einen Command Status Wrapper. (USBS) Dieser teilt dem Host mit, ob die Daten beim Device angekommen sind. Nun die schlechte Nachricht: Die Befehle an das Miuchiz sind relativ lang und komplex. Ich hab noch nicht ihren Inhalt herausgefunden. Also muss der Bootloader weiter analysiert werden. Gruß, SIGINT
@Sigint 112 schon mal versucht den bootlader von dem Pearl ding zu nehmen ? Es sollte der selbe µC sein, allerdings finde ich die firmware übersichtlicher und vllt besser geeignet zum weiternutzen.
@Thomas: Naja, ich hoffe und glaube, daß der Bootloader im ROM das selbe Transferprotokoll verwendet wie im Flash. Und der Bootloader im ROM ist immer verfügbar. Daher möchte ich dieses Protokoll nutzen.
Thomas R. schrieb:
> schon mal versucht den bootlader von dem Pearl ding zu nehmen ?
Wenn du den digitalen Bilderrahmen meinst, der hat eine andere CPU.
Andreas Rickert schrieb: > Hallo nochmal, > > ich hoffe, ich finde bald raus, was ich ändern muss, damit mein Hoster > die Anmeldeemails durchlässt... Irgendwelche php und sendmail > Einstellungen. Muss ich nochmal nachlesen. Anmelden geht nicht. Hab's probiert, es kommt keine Email.
Hi zusammen, bin etwas weiter gekommen. Dauert aber noch etwas, bis ich herausgefunden habe wie wir ein Flashtool schreiben können. Gruß, SIGINT
Hi, So ich schreib dann auch mal wieder. Habe mich natürlich weiter damit beschäftigt den internen rom auszulesen. Jetzt ist es so weit und ich kann das rom_dump online stellen. @Sigint 112 Wäre cool wenn man jetzt probiert den bootloader im rom anzuspringen. Gruß Zippi
@Phil: Hmmm, ich finde einiges aus dem anderen Bootloader (im Flash) wieder. Aber es gibt ein paar neue Rätsel: Warum ist die Datei größer als 16KiB? Dort wo ich die Interrupt-Vektoren erwarte stehen nur "0" und danach kommen dann vermutlich die Vektoren. Diese scheinen allerdings nicht zu stimmen, da ein Vektor z.B. mitten in eine Subroutine zeigt. Es dauert wohl noch etwas länger, bis wir brauchbare Ergebnisse erhalten. Gruß, SIGINT
Hi, Ja es schein als ob bei der übertragung zum pc was nicht so ganz geklappt hat. Ich habe mir die datei gestern nur ganz kurz angesehen. Ich werde das heute nochmal neu machen. Habe auch schonmal 0x000-0x200 ausgelesen (also die Register). Dort schien das ganze auch etwas verschoben und die länge passte auch nicht ganz. gruß
Hi, Ich melde mich wieder zurrück. Habe jetzt ein anderes tool zum datenloggen genommen (hatte vorher HyperTerminal). Außerdem hatte ich das erste byte übersprungen. Deswegen fehlte auch das 1. byte. Jetzt sind es genau 16kbyte. Sollte alles soweit passen. gruß Zippi
Andreas Rickert schrieb: > Hallo nochmal, > ich hoffe, ich finde bald raus, was ich ändern muss, damit mein Hoster > die Anmeldeemails durchlässt... Irgendwelche php und sendmail > Einstellungen. Muss ich nochmal nachlesen. > Lange Rede... wenn ich das weiss, mache ich das Wiki nur noch für > angemeldete Nutzer editierbar. Ist sicherer. > > Gruß, @Andreas du hast PM Habe es HEUTE zum letzten Mal probiert. Es war der 5. vergebliche Registrationsversuch, und die Anmelde-Mail geht immer noch nicht. Das Problem ist übrigens bekannt, und es werden Lösungen dazu angeboten. Siehe: http://www.google.de/search?q=site%3Adokuwiki.org+intitle%3Aemail+subscription
Hallo! Hab jetzt endlich rausgefunden, wo ich in welcher php.ini was ändern muss, damit es auch wirklich funktioniert. Dass jetzt keiner denkt, ich hätte mehrere Tage an dem Problem gewerkelt... aber man hat ja auch noch ne Arbeit und ein bißchen Privatleben. Außerdem sollte das Wiki im Moment für ALLE editierbar sein. Von daher braucht sich keiner anmelden, oder... Werd bei nächster Gelegenheit jetzt aber umstellen. Ihr könnt jetzt nochmal versuchen, euch anzumelden. Gruß, Andreas
Hi nochmal, @Daniel W.: Das Problem war tatsächlich bekannt. Bei Goneo muss die "Envelope-From"-Einstellung bei der gesendeten Email mit einem gültigen Emailkonto von Goneo übereinstimmen. In Deinem Google-Link geht es glaub ich um noch was anderes... Trotzdem danke für den Hinweis! Gruß, Andreas
Hi gibts noch jemand der 1-2 der Spiele abtreten könnte? Gruß Mohrfeus
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.