Hallo, der TFT maximite mit mmbasic ist raus. http://geoffg.net/tft-maximite.html Beschrieben auch in der neuen C't Hacks. Soll ab Morgen bei Segor erhältlich. Nachbau mit UBW 32 auch kein Problem. Ich finde einfach geil ;-), und Ihr? Mit einem Atmega wäre das wohl kaum möglich, sieh Grafikausgabe via DMA SPI. DS
Wenn Du es selbst baust , Display etwa 20€, Prozessor 10€, Kleinzeugs 20€... Bausatz Segor soll komplett bestückt etwa 80€ kosten. Die mmbasic basher sollten sich erst mal erkundigen, was das so alles kann. Das Konzept ist einfach überzeugend und das mmbasic ist um viele Softwareschnittestellen erweitert, SPI, i2c, 1 wire, adc, ....... Das reicht für die allermeisten Steuerungsaufgaben völlig aus. Die Grafikausgabe benötigt nur etwa 3% der Prozessorrecourcen. DS
Sven schrieb: > Was solls denn kosten? Wohl neunundsechzig Euro nur smd-bestückt und ohne Display. Bei Alibaba und den 40 Räubern gibt's das bestimmt vollbestückt mit Display und einer Frühlingrolle.
maximite TFT schrieb: > Ich finde einfach geil ;-), > > und Ihr? Ich halte es für nen simplen Blender. Mit einem 480x272 Display und nur 128 K RAM ist das Ganze eine recht seltsame Konstruktion. Wenn man da nicht wenigstens ein halbes Megabyte Videoram hat, wird das Ganze zum Krampf und ist in Wirklichkeit nicht echt grafikfähig. W.S.
Wenn ich mir den anschaue, dann Frage ich mich: Warum nicht gleich einen Raspberry Pi nehmen? Da habe ich Linux, ausreichend Speicher, Programmiersprachen ohne Ende, usw.
Voll grafikfähig braucht es nicht sein, will ja keine Videos anschauen. Betrachte mal den youtube Link. Für grafische Eingabeelemente und zum zum Messen und Regeln völlig ok. Die Grafikelemente mit touchfunktionen erzeugt man mit nem Einzeiler, sogar dynamisch im laufenden Betrieb da Interpreter. Ebenso AD, i2c, 1wire, etc. Das ist schon zusammengebaut während der Pi noch bootet. Die Bootsequenz dauert hier übrigens etwa 500 ms. Jeder nach seinem Gusto....
maximite TFT schrieb: > sogar dynamisch im laufenden Betrieb da Interpreter. Was passiert eigentlich, wenn der Interpreter nach 2h Laufzeit meldet: "error 94 in line 1174" ? Läuft dann der Interpreter dynamisch weiter oder fährt der DC-Motor weiter, bis sich der Endschlag zerhäckselt hat?
Da wird das gleiche passieren wie bei einem AVR Stackoverflow , falls nicht fehlerfrei programmiert wurde. Dafür nimmst Du sicher nen Watchdog. Und was soll ich sagen, den gibt's hier auch ;-)
Hallo, ich bin begeistert. Das ist eine wunderbare Entwicklungs und Betriebsplattform. Ich habe in wenigen Minuten meine DS1820 abfragen können. War nur ein Zeile, ist auf den Webseiten gut dokumentiert. Ebenso Spannungen über den ADC. Der Interpreter arbeitet rasend schnell, Interruptsteuerungen sind auch kein Problem. 40 freie Portpins ! Jetzt frickel ich noch ein TFT touchpanel 5,5 Zoll dran für schlappe 15 €. Das wird die Basis für meine Hausautomation. Danke C't !!! CF
Sollte man sich ruhig mal zulegen.. http://www.heise.de/newsticker/meldung/c-t-Hardware-Hacks-04-13-jetzt-im-Handel-2038165.html Da ist ds Projekt beschrieben. Alles offen, Infos Downloads, sourcen, auch auf github.
wem die 80EUR fuer den TFT-Maximite zu teuer ist, kann auch erstmal einen Duinomite mit mmbasic kaufen und VGA oder Composite-Video nutzen anstatt TFT. Je nach Version 25-45EUR (Duinomite mini, normal, Mega oder eMega) Fuer den Mega gibt auch ein Case zu kaufen fuer ca. 9EUR. In Deutschland bei exp-tech oder watterott. Der Duinomite ist von Olimex gebaut.
Link bei der ct http://www.heise.de/hardware-hacks/links/1304116 und der Link bei segor (geht bei mir im Firefox, aber nicht in Chrome): http://www.segor.de/#M%3D1%26Q%3Dmaximite Lieferbar ab KW 47 :-(
Hallo, ich empfehle den UBW32, http://www.schmalzhaus.com/UBW32/ Der Duinomite ist nicht wirklich kompatibel, das beschreibt auch Geoff, der Entwickler von mmbasic, auf seiner Webseite. Diese Praktiken von Olimex sollte man nicht unterstützen! http://geoffg.net/DuinoMite.html Entweder komplett fertig bestückt kaufen, oder Platine beziehen und selbst löten. Ich habe in der Bucht ein passendes 5 Zoll TFT für 20€ geschossen und werde daraus dann in den nächsten Wochen ein eigenes maximite TFT bauen. Ein Transistor, Step Up Wandler und etwas Lötkunst, fertig. DS
http://www.watterott.com/de/USB-32-Bit-Whacker-PIC32MX795-Development-Board Ich mein der war vor ein paar Wochen noch 10€ preiswerter ?!.... Das Ding ist aber Plug an Play. Gutes HW Design ! DS
Korrektur: ubw32 kostete vor ein paar Montan auch schon 33 Euronen. Sorry Watterott
So mein TFT Maximite mit 5 " Display ist vorige Woche angekommen. Das zusammenlöten ging schnell. Einzige Hürde war der SD slot: Beim Einschieben einer SD Karte verursachte dies eine Kurzschluss auf der 3,3V Schiene der Sichrheitswiderstand (2R2) lötete sich blitzschnell aus und verbrannte mir den kleinen Finger Autsch. Das Auslöten überlebte der Slot leider nicht. So kam eine Buchsenleiste drann und an diese ein provisoricher SLOT(ISA Buchsenabschnitt) Anfänglich waren die roten Pixel nicht in der richtigen Horizontalposition Ich benötigte 2 Abende um herauszufinden, dass das Poti für die Horizentalsynchronisation damit zu tun hatte. Auch scheint mir der TFTanschluss noch mackig. Da bereits des öfteren der Kontrast sehr blass wurde, was nur durch wiederholtes bewegen, neueinstecken des Anschlusstreifens zu beheben war. :( Nach dem Treiberdownlowd funktionierte auch die Terminalverbindung. Leider nur ab XP Aufwärts, da ich für Win98 keinen passenden Treiber fand. Das MMBASIC wirkt ausgereift und lässt sich leicht programmieren wie auch die neuen TFT Funktionen. Hilfreich sind die Beispielprogramme. Ich habe viel Spass und die erfolge kommen schnell. Insgesamt wäre eine mechanische befestigung des Displays mit Rahmen wünschenswert. Soviel zu meinen ersten Eindrücken
für das 4,3" Display paßt ein Rahmen von Electronic Assembly "wie für gemacht" Rahmenbezeichnung: EA OFP481-43SW An den Steckschrauben läßt sich auch noch die Platine befestigen. Josef
Hallo Seit ich den Maximite wargenommen hab, bin ich begeistert. War schon drauf und dran meinen alten PC1500 von Sharp richtig aufzumotzen. Der war zum löten und programmieren, das beste was ich je hatte. Beim Maximite war ich erstmal von den Preisen geschockt. Die Bezugsquellen fand ich erstmal nur in Australien und England. Fand dann den kompatiblen Duinomite von Olimex, die Mega-Version hab ich dann für knapp 40€ bestellt. Als erstes kam ein Firmwareupdate ran. Wollte ja einen vernünftigen Editor haben :) War wie damals... man sieht gleich was man macht. Und er ist verdammt schnell. Ein Monat später entdeckte ich den TFT-Maximite bei Segor auf der i-seite. Der lief dann drei Tage später bei mir zu Hause :) einfach Geil. Bis jetzt hab ich noch kein Programm gefunden, das nicht auf beiden ...Mites läuft. Nur eben der Duinomite ohne Touch und Farbe. Auf dem TFT-Maximite wollte ich mich an Sprites ranwagen, aber die Beschreibung dazu im mmBasic-Handbuch ist ja nun unter aller würde :D Aber zum erstellen von Sprites hab ich dann das Windowsprogramm SpriteMite.exe gefunden. Und ich glaube, das wird das erste größere Programm werden... Die Umsetzung von SpriteMite auf den TFT-Maximite :D Ist ja wie dafür gemacht... Ich staune das es das noch nicht gibt. so reicht erstmal ^^ Gruß an alle Mite-User Joachim
Schön das jemand bemerkt wie cool das eigentlich ist. Mittlerweile gibt es Portierungen für kleinere PICs im 28 DIL Gehäuse. Da läuft dann ein abgespecktes mmbasic. http://www.thebackshed.com/forum/forum_posts.asp?TID=6226&PN=1 Voller Editor im Interpreter, Programme landen im Flash und starten automatisch nach Reset. Putty oder ähnliches via rs232/ ttl und fertig ist die Entwicklungsumgebung samt zukünftigem Zielsystem. Bei Reichelt kostet der Prozessor etwa 4€. Dazu kommt noch ein Elko ein paar 100nf und fertig ist der Steuerungsrechner mit etwa 23000 Zeilen / Sekunde. Oder ein 44 Pin tqfp PIC mit über 30 freien portpins... Ist noch Beta, aber Geoff arbeitet hart und alle paar Tage gibt es Updates. Alle die jetzt sagen, dass sei zu langsam sin Terroristen die Cruise missiles bauen wollen. Vielleicht reicht dafür aber dennoch ein Interpreter;-) Back to The Roots! DS
so ich habe inzwischn 2 doavon, einen hab ich in ein Gehäuse verbaut den 2. mechanisch verbunden Leider bekomme ich bei den TFT Maximite die 5 freien Pins nicht angesprochen und auch für das CT_LAB hab ich noch keinen Peil, hat da jemand einen Vorschlag? Gruß von eienm Begeisterten Es ist fast so leicht wie bei meinem 8Bit-ATARI nur rasend schnell, Ein Inline Assembler und die Sache wäre perfekt Gruß Winne
Hallo Mite-User Vielleicht stell ich mir das ja zu einfach vor aber, es gibt da ein Problem. Ich möchte den Touchscreen mit x=Touched(#x) und y=Touched(#y) abfragen. Kein problem, aber ich möchte die Werte nur bei einer Berührung haben. Nicht die Werte, die vor einer halben Stunde aktuell waren. :) Hab mir da folgendes gedacht. (falsch gedacht) ------------------------ Touch interrupt test m=0 Do If m=1 Then m=0 x=Touched(#x) y=Touched(#y) Print x,y Endif Loop Until Inkey$=" " Touch interrupt 0 End '------ test: m=1 Print"Jo" IReturn ----------------------- Hat jemand eine Idee ? Gruß Joachim
Hallo nochmal :) Ich mach mal den Alleinunterhalter. Ich hab mir mal die Demoprogramme zum TFT-Maximite angesehen... Der Befehl TOUCH INTERRUPT target, wird dort leider nicht verwendet. Aber im Programm SKETCH.BAS wird der undokumetierte Befehl TOUCHED(#S) verwendet. Er liefert bei Berührung des Touchscreens eine 1 und im anderen Fall eine 0 zurück. Dann sieht mein Testprogramm also so aus... :)) Do If Touched(#S) Then x=Touched(#X) y=Touched(#Y) Print x,y Endif Loop Until Inkey$=" " End Gruß Joachim
Hallo Ihr alle. Ich, alter Knacker, habe mir im Februar den TFT Maximite bei Segor bestellt. Jetzt kam er an, im neuen Gewand. Tolle Sache!! Keine IDE mit tausenden Varianten, keine verwirrenden Einstellungen für eine von tausenden MPU's oder wie die Dinger heißen. Programm schreiben,testen,fertig. Es sind Pins da zum Ansteuern, und und und... Ich hab früher auf Z80, 6502(6510), Basik C und Assembler programmiert. Niemals war es so Kompliziert wie mit den tausenden IDE#s der heutigen Anbieter, ausser, weil auch schon seit etwa 20 Jahren im Einsatz die C-Control. Kurz gesagt, Versuch und Irrtum und Erfolg waren schon lange nicht mehr so nah beieinander. Eine ganz tolle Sache. Danke Bernd
Hallo... ich schon wieder :) Ich hab eine mmBasic-Bug-Meldung direkt an (Goeff Australien) geschickt. Geantwortet hat ein gewisser Hugh Buckle <hnmpb@optusnet.com.au>. Es geht um einen Fehler im RND - Befehl. Ich hab auf meinem TFT-Maximite ein Programm geschrieben, bei dem später mal punktgenau Farbkötzchen gesetzt werden müssen. Um zu testen, ob das funtioniert, hab ich ein paar Zeilen dazugeschrieben, um Werte mit dem RND-Befehl zu generieren. Nach ein paar testläufen, traten sporadisch unerklärliche Fehler auf. Mein Programm war Fehlerfrei. Den Fehler konnte ich dann auf den RND-Befehl eingrenzen. In der e-mail an Goeff, in schlechtem Englisch, steckte diese Zeile. --> Do:n=0:Do:n=n+1:a=Rnd:Loop Until a=1:Print n:Loop <-- Da werden in der Minute ca. 20 EINSEN produziert.( vor allem völlig zufällig :D ) In mmBasic für DOS passiert das gleiche. Von Hugh Buckle die Antwort: "Der Fehler steckt in der Inneren Schleife. Sie kann nicht Verlassen werden, weil a niemals 1 werden kann." Da hat der gute Mann sein mmBasic-Manual genommen und abgeschrieben, statt, es einfach zu testen. :)) Kann ich ja irgendwie verstehen, wenn man den ganzen Tag mit e-mails zugemüllt wird. Ist aber ein doofes gefühl, nicht für Voll genommen zu werden. :)) Gruß Joachim
Hallo Joachim bei Basic immer auf den Dialekt achten http://msdn.microsoft.com/de-de/library/f7s023d2(v=vs.90).aspx Hinweise Die Rnd-Funktion gibt einen Wert zurück, der kleiner als 1, aber größer oder gleich 0 ist. da : a=Rnd:Loop Until a=1 er hat er recht der Fehler liegt bei dir anders als beim C64 ist 0 < RND < 1 so ist das bei M$-Basic definiert ,und beim Atari und beim GW_basic welches hier die Vorlage gibt auch.
Hier sind noch einige Sachen zu erfahren, unter anderem ein SW Workarround für die fehlerhaft programmierten und undokumentierten Pins. http://www.heise.de/forum/c-t-Hacks/Heft-Projekte/Artikelforen-Heft-4-2013/Color-Maximite-2/forum-33136/ ich schau da immer mal wieder rein und habe bereits meine beiden Spielzeuge ein wenig friesiert. die 1.3 Version der Platine hat z.B auch einen Verdrahtungsfehler wodurch PIN 20 statt an Pin 17 an Pin 11 des Pic angeschlossen ist. Dadurch funktioniert Com2 nicht ich habe dies beim mir HW mäßig geändert. die 1.4 Platine ist heraus und modifiziert leider läst Carsten Meyer von CT nichts mehr von sich hören und so hängt auch die Doku.
Hier der neuste Stand habe ich gerade erst gefunden http://www.heise.de/hardware-hacks/meldung/Hardware-Update-fuer-den-TFT-Maximite-2175116.html
:
Bearbeitet durch User
Hallo @ winne Und - hast du diese Programmzeile ausprobiert, oder zitierst du auch nur das Manual ? Nur weil Jahrelang ein Fehler nicht entdeckt, oder veröffentlicht wird, darf es ihn nicht geben. Und ich weiß genau, die Erde ist eine Scheibe. Ich hab es getestet, auf mmBasic V4.4A, V4.4B1 und der DOS Version. Nach 200 - 200.000 Durchläufen, der inneren Schleife, sollte die erste Anzeige auf dem Display erscheinen. (dauert keine Minute) Zitat von Harald Lesch:"Wissen muß man sich erarbeiten, Glauben muß man einfach nur gleuben." Gruß Joachim
Danke für den neusten Stand @ winne. Da hab ich wohl zwei Monate zu früh gekauft. :( Und sorry für den herben Ton, aber irgendwann ist man genervt. :) Gruß Joachim
Der Bug ist bekannt und wird in der nächsten Version behoben. http://geoffg.net/Downloads/Micromite/Current_Bug_List.txt Diese .txt-Datei wurde zuletzt geändert am 24. April 2014 um 08:44:27. Also kam deine Nachricht, Joachim, durchaus beim Entwickler an.
THX für die Info! @ Alexander Ich sollte doch öfter als dreimal in die Bug List schauen. :/ Jetzt kann ich endlich wieder ruhig schlafen :D Gruß Joachim
Ich hatte nur zitiert, da ich diesen Wertebereich auch mit kleiner 1 als Limes kannte. Es gibt allerdings Dialekte welche auch das sichere Ereignis kennen. Und es ist kein Problem mit myrnd = 10 Rnd/9,9999 zu arbeiten wenn man unbedingt eine 1 als obere Wertebereichsgrenze haben will, wichtig ist nur es zu wissen. ;) Namaste
Hallo Das Pinout für dem TFT-Maximite V1.4 ist jetzt auch da. Jetzt sollte es komplett sein. https://github.com/heise/maximite Gruß Joachim
Hallo Ich hab schon wieder ein Fehler in mmBasic gefunden. Wenn ihr in eurem Programm einen String per Input-Befehl eingeben wollt. (bei nummerischen Werten wird es selten vorkommen :) z.B. Input"blablabla:",a$ Steigt das Programm, wenn der Eingabepuffer voll ist, mit einer Fehlermeldung aus. Ist nicht so schön, für den User des Programms. ^^ Wenn man das so macht... Dim a$(1) length 3 Input"blabla:",a$(1) ...kann man wenigstens nach vier Zeichen noch die ENTER-Taste drücken, bevor die Fehlermeldung kommt. Wenn es sowas geben würde wie "On Error Gosub", könnte man den User informieren, was er falsch gemacht hat. Super für den Input-Befehl wär ein einstellbares Zeitlimit für eine Eingabe. (so in etwa 10sek keine Taste gedrückt -> weiter im Programm) Wenn hier jemand vernünftig Englisch kann, kann er gerne den Fehler melden. Bis dahin, schreib ich mir den Input-Befehl in mmBasic neu :D Nimmt zwar knappen Arbeitspeicher und Rechenzeit weg, aber da weiß man was man hat. :)) Gruß Joachim
Hallo Das neue mmBasic v4.5 ist da. Da haben sie sich ein paar nette Sachen einfallen lassen. Change log for MMBasic Ver 4.5 Implemented the ability to decode Sony compatible infrared remote control signals (see the IR command). Implemented the ability to generate a Sony compatible 12-bit infrared remote control signal for communicating between another Maximite or Micromite or a Sony product using 12-bit commands. Implemented the DISTANCE command to get a distance measurement from a HC-SR04 ultrasonic distance sensor. Implemented the LCD command to display data on 1, 2 and 4 line LCD display modules. Added the EXIT DO command which is the recommended method for an early exit of a DO LOOP. ... schaut doch selber ihr hab ja alle Internetzugang :D http://geoffg.net/tft-maximite.html Viel Spass Joachim
Hallo an die Freunde Des TFT Maximite für Version 1.4 habe ich das MM Basic neu compiliert sämtliche IOPortPins sind jetzt ansprechbar ebenso habe ich die Tochroutinen debugged die Buttons toggeln nun mit 1/4s ohne das programm zu unterbrechen Warteschleifen und pausen wurden weitestgehend eliminiert mit Außnahme der tft calibrierroutine hier die veränderten sourcen der touchroutinen http://www.nisch-aufzuege.at/TFT_Maximite_1.4/touch.h http://www.nisch-aufzuege.at/TFT_Maximite_1.4/touch.c die modifizierten IO-ports http://www.nisch-aufzuege.at/TFT_Maximite_1.4/ioports.h sorry hier sind leerzeichen im dateinamen weshalb der link abgeschnitten wird im zip file wird sie jedoch geladen. Das neue hexfile http://www.nisch-aufzuege.at/TFT_Maximite_1.4/tft_maximite_w.hex zur Kennzeichnung der modifizierten Version habe ich auch folgende Files verändert. http://www.nisch-aufzuege.at/TFT_Maximite_1.4/version_w1.h http://www.nisch-aufzuege.at/TFT_Maximite_1.4/mmbasic_includes.h dazu eine kleines Testpprogram für sämtliche IOs http://www.nisch-aufzuege.at/TFT_Maximite_1.4/pin.bas alles zusammen in einem ZIP http://www.nisch-aufzuege.at/TFT_Maximite_1.4/tftmaximite_1_4.zip
:
Bearbeitet durch User
Hallo ihr Lieben Ich habe nun die neuen Ports am tft-maximite mit Hilfe der neun Firmware (oder wie das heißt) von Winftried getestet. Das betrifft die Ports 25-33 und den Rest. Sein Programm Pin.bas leistet da sehr gute Dienste. Vielen Dank für Deine Arbeit!!!! Für mein Projekt wollte ich die Pins 25 bis 32 im Interuptmodus betreiben. Tests mit pin 25 und 26 funktionierten wie gewünscht. Beim Erweitern der Zuordnungen musste ich leider feststellen, dass ab pin 29 keine Interuptdefinition mehr möglich ist. Meine Frage nun, ist das ein Bug im Basic oder liegt es an der Pinzuordnung, da die Pins von unterschiedlichen Ports stammen? Da ich gerne die Pins von den anderen Steckverbindern nicht für diese Aufgaben verbraten wollte hatte ich die Pins ab 25 gewählt. Über eine Antwort würde ich mich freuen. vielen Dank bmwsoft
Hallo Bernd wie du schon ganz richtig vermutest sind Pins nur bis PIN 29 interuptfähig http://www.nisch-aufzuege.at/TFT_Maximite_1.4/ioports.h In dieser Datei findest du die Zuordnung der Pins. Die Daten der zuvor nicht verwendbaren Pins habe ich aus der ioports.h des universelleren Projektes DUINOMITE in das TFT_Maximite übernommen. Nicht alle Pins des Pic32MX512... sind interuptfähig. Da ich noch keine angepasste Doku verfasst habe danke ich für den Hinweis ich werde dies folglich in der einer zukünftigen Versionsbeschreibung einfließenlassen. Derzeit beschäftigt mich noch die Frage 1 oder 2 Quadraturcounter für 1 oder 2 Flanken gesteuerte A_B Vorwärts_Rückwärtszähler zu implementieren, da dies in Basic zu viel Performance kostet. Ebenso arbeite ich an einer Erweiterung für COM1 und COM2 um Parity und Wortlängendefinition. Eventuel auch der Erhöhung der finalen Baudrate. Die beiden Schnittstellen besitzen keine HW-Unterstützung Im DUINOMITE gibt es diese für COM3 und COM4 ich werde mich auch da mal drüber machen. Es tut mir leid, dass ich dir keine bessere Nachricht geben kann. Du wirst dein Projekt anpassen müssen. Hier setzt die HW die Schranken. Namaste und viel Spass ;)
Hallo Winfried, Hallo Alle. Vielen Dank für die schnelle und präzise Antwort. Ich habe jetzt meine Leitungen auf die Pins 1 - 10 verlegt. Jetzt funktioniert alles. Angeschlossen sind 8 Encoder mit Drehrichtungserkennung. Es funktioniert noch nicht perfekt, da ich noch an der passenden Entprellung arbeiten muss. Nicht jeder Impuls wird der richtigen Drehrichtung zugewiesen. Aber da muß ich mal schauen, was das Basic und die Interupts leisten können. Also vielen Dank noch mals. Bernd
Hallo, hat jemand Interesse an einem passgenauem Gehäuse aus dem 3D-Drucker? Winfried hab ich übers heise-Forum kennengelernt, er gab mir den Tipp hier nachzufragen. Zunächst ist folgendes geplant: * das Gehäuse soll mit Hardwarestand 1V3 und 1V4 kompatibel sein * schlichtes und passgenaues Gehäuse * integrierte Displayfixierung * alle Steckkontakte, LEDs, Beeper und der SD-Slot von außen zugänglich/sichtbar/hörbar ;o) * für beide Displaygrößen gibt es angepasste Frontrahmen * Befestigungsbohrungen für individuelle Montagemöglichkeiten Ich bin bereits am zeichnen, den Prototypen kann ich dann mit meinem 1V4er TFTMaximite und 5" Display testen. Für Interessenten drucke ich fertige entwickelte Gehäuse gegen Aufwandsentschädigung. Individuelle Änderungen am Gehäuse sind möglich, aber zunächst bitte erstmal abwarten und Tee trinken. Abschließend wandern die fertigen CAD-Zeichnungen auf eine Shareplattform ala youmagine oder thingiverse mit CC BY-NC-Lizenz. Gruß, Florian
Heute erreicht mich folgende Anfrage
1 | Hallo Winfried. |
2 | |
3 | Ist es auch möglich die Baudrate zu erhöhen. Ich würde ganz gerne MIDI |
4 | Daten einlesen und senden. Dafür benötigt man 31250 Baud und leider hat |
5 | der Maximite nur eine Software Umsetzung bis 19200. |
Hallo .... es tut mir Leid dir mitteilen zu müssen, dass dies in dieser HW_Konfiguration leider nicht möglich. Zwar verfügt der verwendete PIC über entsprechende HW UART doch wurden von allen dazu fähigen die Pinpaaren mindestens ein Pin bei allen xxx_Mite als SPI IO-Ports benutzt um die Videoausgaben oder SD_Kartenfunktionen zu realisieren. Ausnahme ist der Duinomite von Olimex mit dessen Herstellern es aber wohl einen Konflikt wegen Lizenzverletzungen gibt. Dieser kann zwei schnelle HW UART_Schnittstellen bedienen was aber zu Lasten anderer Funktionen gehen dürfte. Die offensichtlich deshalb verwendeten Software UART sind recht zeitkritisch und scheinbar auch aus diesem Grund recht rudimentär ausgestattet. Im Rahmen meiner Firmwareexperimente hab ich vor, eventuell die Zahl der SW Uart auf 1 zu zu verringern um so Zeit für eine höhere Baudrate zu schinden, aber der Erfolg ist noch mehr als ungewiss. Meinen ersten Plan nach Möglichkeit eine HW Uart zu aktivieren musste ich leider als gescheitert aufgeben, da dafür kein HW_UART-fähiges Pinpaar frei ist. ;( Da die Frage nicht zum ersen mal auftaucht habe ich mich entschlossen dies anhand Deiner Anfrage öffentlich zu beantworten. Ich hoffe du bist einverstanden wenn ich dich zitiere. Gruß Winfried
Hallo Ihr alle, Hallo Winfried Hier ist der Bernd der Ältere. Ich war in der letzten Zeit ein wenig beschäftigt. Mit meinem Projekt mit den Drehgebern bin ich zufriedenstellend vorangekommen. Kurz, es funktioniert wie ich es wollte. Nun sitze ich an der Umsetzung der schon funktionierenden Programmteile die ich mittels C-Control gelöst hatte. Scheitern tut es derzeit an der I2C Ansteuerung. Folgende Zeilen lasse ich arbeiten: I2CEN 100,100 'Initialisierung als Master mit 100kHz, 2. Ziffer keine Ahnung Do I2CSEND Adresse,1,1,255 'Adresse, keine Ahnung, Byteanzahl, Wert Pause 500 I2CSEND Adresse,1,1,0 Pause 500 Loop Leider ohne Wirkung. Die Schleife müsste an einem 8574 mit der Adresse die Ports umschalten. Sind da irgend welche Parameter falsch gesetzt? Vielen Dank euch allen Bernd
Hallo Ihr alle Es geht hier um die MIDI Sache. Ich habe mit meinem Projekt ein ähnliches Problem. Ich muß eine alte PIO mittels Daten-Adressbus ansteuern. Mit I2C habe ich dieses gelöst. Leider noch nicht mit dem Maximite, siehe meine Frage im Forum. Da MIDI schon sehr alt ist, sollte es eine alte UART aus der Z80 Serie oder ähnlich tuen. Vieleicht gibt es ja auch eine I2C-UART, wäre einfacher. Diese UART extern ansteuern, ist kein großer Aufwand. Quartz mit Teiler als Takt, 8 Bit Datenbus, 3-4 Bit Adresse und Schreib und Leseleitung. Zum Auslesen aus der UART Interuptroutine. Ich weiß, alter Toback, da aber Intern Baudrate nicht nutzbar und MIDI sowieso krummen Wert hat, der selten bei seriellen Ports vorhanden ist, eine mögliche Lösung. Bis dann, Bernd
:
Bearbeitet durch User
Bernd was ist nun deine konkrete Frag? Die i2c Parameter stehen im Handbuch, mit Beispielen. Wenn Du keine Ahnung hast wie die Adresse deas Bausteins ist, dann ist das schlecht. Schreib ne Schleife mit allen möglichen Adressen und der Baustein antwortet. Falls nicht dann all die üblichen Verdächtigen wie Pullups etc. Ich habe mit dem micromite bisher alle I2C devices zum Laufen gebracht. Das funktioniert.
http://www.nxp.com/documents/data_sheet/PCA8574_PCA8574A.pdf Seite 5 , aber lesen und verstehen müsst Du schon selbst.
Hallo Micromite, hallo ihr alle, Die Adresse des Bausteines ist mir bekannt, des weiteren habe ich im Testprogramm eine Schleife, die von Adresse 64 bis 80 alle durchzählt und die entsprechende Adresse dann benutzt. Bei dem Rem Adresse,keine Ahnung,.... bezieht sich keine Ahnung auf den zweiten Parameter. Mit der C-Control habe ich schon einige I2C Anwendungen durchgearbeitet, der 8574 ist mir bekannt. Nein, es ist anders. Es wird nur Ein Byte, die Bausteinadresse, des anzusprechenden 8574 gesendet. Es wird kein Datenbyte gesendet. Damit kann am Baustein nichts funktionieren. Bitte meine Zeilen überprüfen, denn da muss ja was Falsch sein, denn es müssten ja mind. 2 Byte gesendet werden. Ich gehe davon aus, dass ICH die Basicbefehle falsch nutze. Daher meine Bitte um Überprüfung meiner Zeilen. Hier das Testprogramm ############ I2CEN 100,100 'Initialisierung als Master mit 100kHz, 2. Ziffer ? a = 64 'Beginne mit 64 Do I2CSEND a,1,1,255 'Alle Ports des 8574 auf high Pause 500 I2CSEND a,1,1,0 'Alle Ports des 8574 auf low Pause 500 a = a + 1 '+1 damit auch die Leseadressen probieren If a > 81 Then a = 64 Loop ############ Ich Danke Dir und Allen Bernd
Dein Text ist wirr und unverständlich. Das micromite Handbuch erklärt Dir den Befehl.
Hallo Rollader, hallo ihr alle. Auch hier vielen Dank für die Antwort. Aber leider ist das Handbuch unverständlich. Es sagt aus: I2CSEND Bausteinadresse, Option(was für eine?) Anzahl der folgenden Datenbytes, Datenbyte(s)-> (I2CSEND 64,1,1,255). Soweit meine Übersetzung des Befehles aus dem Handbuch. Mit dem Oszillographen nachgeschaut, wird auf SDA das erste Byte, die Bausteinadresse gesendet. Mehr nicht! Es wird kein weiteres Byte mit dem Datenwerd gesendet. Auf SCL läuft der Takt dazu. Auf SDA kann man sogar das Hochzählen der Adressen sehen, wenn die Schleife durchlaufen wird. So nun Schluss mit dem wirren Zeug. Es währe nett, wenn mir mal einer ein kleines Beispiel schreiben (posten) könnte. Ich sehe dann vieleicht selber, was ich nicht richtig verstanden habe. In dem mir vorliegendem Handbuch ist für I2C leider kein Beispiel dabei. Vielen Dank euch allen. Bernd
Sorry, ich dachte immer Du meinst den Micromite: http://geoffg.net/Downloads/Micromite/Micromite%20Manual.pdf Die neuen I2C Routinen sind noch nicht in mmbasics integriert. Das dauert noch ein paar Wochen....
Hallo Ihr Alle. Ich bins wieder. Ich habe nun doch noch in der Nacht, irgendwo einige Beispielprogramme für I2C gefunden. Bei einem wird sogar ein PCF8574 angesteuert. Dieser aber unter der Adresse &H20 = 32. Dieses ist aber nach meinem Wissen die falsche Adresse. Seit jahren funktionieren die Adressen &H40 = 64 und die folgenden. 64 = Schreiben in 8574, 65 = lesen 8574. Gerade Adresse schreiben, folgende ungerade Adresse lesen. Vieleicht schaffe ich es noch heute diesen Adressraum zu testen. Diese im Beispielprogramm benutzte &H20 entspricht der Standartadresse &H40 nach shr (/2), ohne Richtungsbit. Theoretisch könnte dieses meine Probleme erklären. Denn ich suchte ja im für mich bekannten Adressraum &H40 und darüber. Damit keine gültige Adresse, keine Bestätigung vom Sklaven und somit kein Senden der nachfolgenden Daten. Ich teste es bei nächster Gelegenheit. Wenn nicht, muss ich die Sache halt zu Fuß programmieren. Dieses Basic ist mehr als schnell genug. Danke erst mal. mit besten Grüßen der Bernd
Hallo Ihr alle, So, Problem gelöst! Ich Danke erst mal allen für ihre Beiträge. Ich habe mich noch mal rangesetzt und meine Befürchtungen wurden bestätigt. Nach dem ich das Programm so abgeändert habe, dass es den halben Adresswert nimmt, also &H20 statt &H40 hat es sofort funktioniert. Gut, jetzt weiß ich es, Böse Falle. Also dann, bis bald. beste Grüße vom Bernd
Bernd Michael Wagner schrieb: > Nach dem ich das Programm so abgeändert habe, dass es den halben > Adresswert nimmt, also &H20 statt &H40 hat es sofort funktioniert. > Gut, jetzt weiß ich es, Böse Falle. Ja, Falle. Die Adresse ist 7 Bit (Bits 7 .. 1). Das LSB (Bit 0) gibt an, ob man schreiben oder lesen will. Manche Implementierungen machen den Links-Shift mit der Adresse und manche nicht. Muss man halt wissen oder ausprobieren. Für's Debugging hilft es auch, alle Adressen (0 bis 255) mal durchzuprobieren und sich die ausgeben zu lassen, wo ein ACK kommt. Also einmal den Bus scannen. Grüße, Frank
http://geoffg.net/Downloads/Micromite/Micromite%20Manual.pdf Handbuch Seite 61. Den Tipp mit dem Busscan hatte ich schon gegeben. Schön das Du es selbst rausbekommen hast; allerdings viele Stunden Deines ach so begrenzten Lebens sind vertan. Die bringt Dir niemand mehr zurück;-(
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.