Forum: Mikrocontroller und Digitale Elektronik maximite TFT mmbasic Computer


von maximite TFT (Gast)


Lesenswert?

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

von Cobolt (Gast)


Lesenswert?

mmbasic?
Darauf hat die Welt gewartet?

von Sven (Gast)


Lesenswert?

Was solls denn kosten?

von maximite TFT (Gast)


Lesenswert?

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

von Cobolt (Gast)


Lesenswert?

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.

von W.S. (Gast)


Lesenswert?

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.

von Zweifler (Gast)


Lesenswert?

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.

von maximite TFT (Gast)


Lesenswert?

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....

von Cobolt (Gast)


Lesenswert?

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?

von maximite TFT (Gast)


Lesenswert?

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 ;-)

von begeistert (Gast)


Lesenswert?

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

von begeistert (Gast)


Lesenswert?

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.

von maximite TFT (Gast)


Lesenswert?

;-)

von GuidoL (Gast)


Lesenswert?

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.

von GuidoL (Gast)


Lesenswert?

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 :-(

von maximite TFT (Gast)


Lesenswert?

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

von maximite TFT (Gast)


Lesenswert?

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

von maximite TFT (Gast)


Lesenswert?

Korrektur:

ubw32 kostete vor ein paar Montan auch schon 33 Euronen.

Sorry Watterott

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

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

von Josef (Gast)


Lesenswert?

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

von Joachim (Gast)


Lesenswert?

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

von maximite TFT (Gast)


Lesenswert?

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

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

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

von Joachim (Gast)


Lesenswert?

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

von Joachim (Gast)


Lesenswert?

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

von Sonyboy (Gast)


Lesenswert?

The backshed Forum hilft..

von Fastprogg (Gast)


Lesenswert?

Micromite its frei verfügbar!



http://geoffg.net/micromite.html

von Bernd (Gast)


Lesenswert?

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

von Joachim Sasse (Gast)


Lesenswert?

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

von Minimite (Gast)


Lesenswert?

poste das mal im Forum the backshed..

Hier wird dir geholfen...

von Micromite (Gast)


Lesenswert?

Außerdem macht Geoff gerade 4 Wochen Urlaub...

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

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.

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

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.

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?


: Bearbeitet durch User
von Joachim (Gast)


Lesenswert?

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

von Joachim (Gast)


Lesenswert?

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

von Alexander S. (esko) Benutzerseite


Lesenswert?

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.

von Joachim (Gast)


Lesenswert?

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

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

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

von Joachim (Gast)


Lesenswert?

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

von Joachim (Gast)


Lesenswert?

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

von Joachim (Gast)


Lesenswert?

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

von Löter (Gast)


Lesenswert?

und einige Bugs sind fort....

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

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
von Bernd Michael W. (Firma: Klassik-Rack) (bmwsoft)


Lesenswert?

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

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

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 ;)

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

...bis PIN 28 interruptfähig!

von Bernd Michael W. (Firma: Klassik-Rack) (bmwsoft)


Lesenswert?

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

von Florian S. (florian_s75)


Lesenswert?

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

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

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

von Bernd Michael W. (Firma: Klassik-Rack) (bmwsoft)


Lesenswert?

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

von Bernd Michael W. (Firma: Klassik-Rack) (bmwsoft)


Lesenswert?

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
von Micromite (Gast)


Lesenswert?

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.

von Micromite (Gast)


Lesenswert?

http://www.nxp.com/documents/data_sheet/PCA8574_PCA8574A.pdf


Seite 5 , aber lesen und verstehen müsst Du schon selbst.

von Bernd Michael W. (Firma: Klassik-Rack) (bmwsoft)


Lesenswert?

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

von Rollader (Gast)


Lesenswert?

Dein Text ist wirr und unverständlich.
Das micromite Handbuch erklärt Dir den Befehl.

von Bernd Michael W. (Firma: Klassik-Rack) (bmwsoft)


Lesenswert?

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

von Rollader (Gast)


Lesenswert?

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....

von Bernd Michael W. (Firma: Klassik-Rack) (bmwsoft)


Lesenswert?

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

von Bernd Michael W. (Firma: Klassik-Rack) (bmwsoft)


Lesenswert?

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

von Frank (Gast)


Lesenswert?

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

von Rollader (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.