Jump to content

Fragen zu neuem Projekt


Guest wolfgang
 Share

Recommended Posts

Guest wolfgang

Hi Leute,

ich würde mir gerne eine Midibox als Ergänzung zu meinem Gitarrenequipment bauen.

Ich habe dazu die Infos auf der Website und diverse Beiträge im Forum gelesen. Allerdings habe ich immer noch einige Fragen, um die ganze Thematik besser zu verstehen:

Zur Programmierung:

-------------------

Die Logik, d.h. das was der Prozessor später machen soll, muß ich zunächst als Programm schreiben. Dazu steht mir z.B. die MPLAB IDE zur Verfügung (wobei hier nur Assembler oder C++ unterstützt wird).

Wird auch bereits Java unterstützt?

Bei der Verwendung des PIC18F452 wird nur einmalig der Bootstrap-Loader mit Hilfe eines PIC-Programmers (wie z.b: dem JDM-Programmer) und der entsprechenden Brennsoftware (z.B. IC-Prog) auf den Chip geschrieben. Das Programm (und alle Updates) kann ich über MIDI hochladen. Wie funktioniert das denn?

Zur Funktionalität/Module:

--------------------------

Was soll die Midibox können:

Die Midibox soll Teil meines Gitarrenequipments werden. Ãœber meinen Midifußschalter schalte ich mein Effektgerät  und meinen Verstärker (Patches). Die Effekte meines Effektgerätes sind in Effektblöcken (Delay, Chorus, ...) gruppiert.

Die Midibox soll:

  - den Status der Effektblöcke (an/aus) anzeigen

  - über ein LED-Display alle Midinachrichten (eingehend/ausgehend) anzeigen

  - über 7-Segment LED Digits Patch- oder Songnamen im Klartext anzeigen

  - einen Teil der eingegangenen Mididaten verändern (z.B. CC-Nummer verändern: statt 0..127 --> 1..128)

 - zusätzliche Midinachrichten (z.B. ein Schaltersignal on(off) dem eingegangenen Midisignal hinzufügen (Midi-Merge)

Module:

-------

Soweit ich mich bisher in die Thematik eingelesen habe, brauche ich dazu folgende Module:

  - Core-Module (Basis)

  - LCD-Modul (für die Darstellung der Mididaten)

  - DIN-Modul  (für den Schalter)

  - DOUT-Modul (für die LED'S)

Fragen:

-------

- Kann ich an die Midibox eine 6,3mm Klinkenbuchse für einen externen Schalter anschließen?

- Kann ich eine Schalterinformation über eine 6,3mm Klinkenbuchse auch nach außen weiterleiten?

- wieviele LED-Digits kann ich denn verwenden ?

- mein Effektgerät liefert den Status der Effektblöcke auch zurück - diese Infos müßte ich doch über einen zweiten Midi-IN Anschluß und eine Midi-Merge Funktion verarbeiten können? Ist es möglich, einen zweiten Midi-In Anschluß zu realisieren?

Das sind so mal die im Moment wichtigsten Fragen zu meinem Vorhaben.

Gruß,

Wolfgang

Link to comment
Share on other sites

Hallo Wolfgang,

zunaechst einmal eine schlechte Nachricht: C wird derzeit von MIOS nicht unterstuetzt, weil es noch keinen freien PIC18F compiler gibt (hoffen wir, dass sich jemand aus der gcc-Gemeinde dieses Thema annimmt). Einen Java compiler wird es mit Sicherheit nicht geben, weil der Resourcenverbrauch ungleich hoeher ist.

Das Programm (und alle Updates) kann ich über MIDI hochladen. Wie funktioniert das denn?

Perl installieren, DOS-Shell oeffnen, in das Projekt-Verzeichnis gehen, "make" ausfuehren, das main.syx file via MIDI-Ox uploaden.

Zu den Anforderungen fuer Deine Applikation: laesst sich alles problemlos realisieren

Module: passt so

Fragen:

Kann ich an die Midibox eine 6,3mm Klinkenbuchse für einen externen Schalter anschließen?

ja, die Leitungslaenge spielt bei den digitalen Eingaengen keine Rolle

Kann ich eine Schalterinformation über eine 6,3mm Klinkenbuchse auch nach außen weiterleiten?

dito

wieviele LED-Digits kann ich denn verwenden ?

Das haengt davon ab, wie die Digits angesteuert werden. Leider gibt es hierzu noch kein Programmierbeispiel, aber lange kann es nicht mehr dauern, bis ich mich dazu aufraffe ;-)

Auf der DOUT-Seite gibt es einen Schaltplan fuer das MTC-Display. Daraus sollte hervor gehen, wie die Digits anzuschliessen sind, und wieviele Pins benoetigt werden. Wichtig ist nur zu wissen, dass bis zu 4 DOUTX4 Module (-> 128 ausgaenge) hintereinander angeschlossen werden koennen

mein Effektgerät liefert den Status der Effektblöcke auch zurück - diese Infos müßte ich doch über einen zweiten Midi-IN Anschluß und eine Midi-Merge Funktion verarbeiten können? Ist es möglich, einen zweiten Midi-In Anschluß zu realisieren?

Letztes Wochenende habe ich zufaellig ein Modul implementiert, das einer MIOS-Applikation einen zweiten MIDI I/O Port zur Verfuegung stellt. Der Datentransfer geschieht ueber das IIC Protokoll (hoert sich kompliziert an, ist aber relativ simpel zu bedienen). Das Modul arbeitet mit einem PIC16F874 und wird an CORE::J4 angeschlossen. Da der IIC Bus Multislave faehig ist, koennen sogar mehrere Module gleichzeitig betrieben werden. Ich werde das Modul mit der naechsten MIOS Version releasen.

Gruss,

       Thorsten.

Link to comment
Share on other sites

Guest wolfgang

Hallo Thorsten,

erstmal danke für deine Antworten. Ich werde mir mal die Bauteile bestellen, die Platinen löten und mich ein wenig mit dem Assemblercode beschäftigen.  

Gruß,

Wolfgang

Link to comment
Share on other sites

Guest wolfgang

Hallo Thorsten,

du schreibst: "C [und auch Java] wird derzeit von MIOS nicht unterstuetzt". Ich habe mal ein wenig im Web gesucht und bin auf das Projekt muvuim (www.muvium.com) gestoßen. Es scheint so, daß dadurch die PIC18Fxxx auch über Java zu programmieren sind. Inwiefern ist diese Lösung kompatibel (oder auch nicht) zu MIOS ???

Und für wann hast du denn das Release der neuen MIOS-Version geplant (wg. des zweiten MIDI-Eingangs)??

Un noch eine Nachfrage: mit zwei DOUTX4-Modulen bin ich bei 16 7-Digits-LED-Modulen?! Das sollte eigentlich reichen ... ;-)

Gruß,

Wolfgang

Link to comment
Share on other sites

Hallo Wolfgang,

zum einen handelt es sich hier um eine kommerzielle Loesung ("muvium sells...") die mit Sicherheit nicht billig ist, zum anderen bezweifle ich, dass MIOS mit dem ganzen Java overhead noch performant laufen wuerde...

MIOS muesste auf alle Faelle an den Compiler angepasst werden - eine sehr aufwaendige Angelegenheit, die unter Umstaenden sogar zu Abstrichen in der Funktionalitaet fuehren koennte. Deshalb werde ich auch damit nicht anfangen, bis ein wirklich brauchbarer (und vor allem fehlerfreier) C compiler verfuegbar sein wird, der frei erhaeltlich ist.

Neue MIOS Release: in 1-2 Wochen

Mit 2 DOUTX4 Modulen kann man sogar bis zu 24 Digits ansteuern, wenn man den Driver dementsprechend anpasst. :)

Gruss,

       Thorsten.

Link to comment
Share on other sites

Guest wolfgang

Hallo Thorsten,

das muvium Projekt unterstützt Java, nicht C. Und da ich mich auch beruflich etwas mit Java beschäftigen muß, käme mir das natürlich sehr gelegen.  ;-)

Neues MIOS Release in 1-2 Wochen - da warte ich doch mal, was es an Neuerungen gibt. Bin schon mal gespannt!

Und 24 Digits mit 2 DOUTX4 Modulen klingt enorm gut ... !!

Noch eine Frage zum LCD-Modul: Ich kaufe ein LCD und klemme es an den Port 15 des Core Module an? Eine eigene Platine ist nicht erforderlich?

Gruß,

Wolfgang

Link to comment
Share on other sites

Zu den programmiersprachen:

Am besten eignet sich immer noch Assembler. Obwohl es nicht ganz einfach ist und war sich durch Thorstens Code arbeiten. Nicht das Thorsten unsauber programmieren würde - im Gegenteil - aber Assembler liesst sich halt nicht so flüssig.

Bei C und gar bei C++ und Java sehe ich das Problem, dass die PIC - Architektur nicht unbedingt in der Lage ist die Sprache 100% zu unterstützen. Z.B. gibt es nur eine Einsprungtiefe von 2 (stack is nur grösse 2).

Es gibt workarounds aber die gehen sehr auf Kosten der Funktionalität.

Java dagegen sollte eigl. nicht weniger performant sein als C++ oder C. Alle können auf C abgebildet werden.

Es soll ja keine Java-VM auf dem PIC laufen *brrr*.

Aber es gibt von der Firma ajile einen Microprocessor der JAVA-Bytecode direkt ausführen kann.

Ob sowas sinnvoll ist sei dahingestellt. JAVA ist eh C++ für Arme und ob man das sinkende Programmiererniveau durch Hardware ausgleichen soll...ich weiss nicht. Aber der Trend geht wohl dahin.

Link to comment
Share on other sites

Und 24 Digits mit 2 DOUTX4 Modulen klingt enorm gut ... !!

daraus sind mittlerweile 16 digits pro DOUTX4 modul geworden :)

Noch eine Frage zum LCD-Modul: Ich kaufe ein LCD und klemme es an den Port 15 des Core Module an? Eine eigene Platine ist nicht erforderlich?

nein - das LCD wird einfach direkt an J15 angeschlossen

Gruss,

       Thorsten.

Link to comment
Share on other sites

Guest wolfgang

Hallo Thorsten,

>> daraus sind mittlerweile 16 digits pro DOUTX4 modul geworden

das nimmt ja langsam inflationäre Züge an ... ;-))

Ich vermute, das ist auf das kommende MIOS-Release zurückzuführen?!

Ja, dann werde ich wohl oder übel mich mal mit Assembler beschäftigen. Obwohl auch Java seine Reize hätte ...

Gruß,

Wolfgang

Link to comment
Share on other sites

Hallo,

>> daraus sind mittlerweile 16 digits pro DOUTX4 modul geworden

das nimmt ja langsam inflationäre Züge an ... ;-))

Die Anzahl der Digits, die von der Applikation angesteuert werden koennen, ist nahezu unbegrenzt :)

Siehe auch: http://www.midibox.org/cgi-bin/yabb/YaBB.cgi?board=concepts;action=display;num=1061838266

Ich vermute, das ist auf das kommende MIOS-Release zurückzuführen?!

Nein, MIOS hat schon immer die Ansteuerung von LED Digits unterstuetzt, lediglich das Programmierbeispiel fehlte... es ist nun unter MIOS->Downloads zu finden.

Gruss,

       Thorsten.

Link to comment
Share on other sites

Guest wolfgang

Hallo Thorsten,

danke für den Hinweis.

Noch 'ne Frage: Zmm Projekt MIDIBOX-LC gibt eine FAQ, aus der hervorgeht, daß zwei LED-Module verwendet werden. Auch andere interessante Informationen sind enthalten.

Nur ... was ist das für ein Projekt? Gibt es dazu auch ein Foto, eine kleine Beschreibung, ...???

Gruß,

Wolfgang

Link to comment
Share on other sites

Guest wolfgang

Hallo Thorsten,

ich habe das Core-Modul jetzt soweit zusammengelötet bis auf die Diode (1N 4148). Wierum gehört denn dieses Teil eingesetzt? Ich gehe davon aus, daß das schwarz gekennzeichnete Ende (der Lötfuß hat hier die rote Markierung) in Richtung des Widerstandes R11 schaut.

Zu den PIC's: ich würde gerne auf dein Angebot zurückkommen und mir von dir den Bootstrap-Loader aufspielen lassen. Wohin soll ich denn die PIC's schicken?

Gruß,

Wolfgang

Link to comment
Share on other sites

Guest wolfgang

und noch 'ne Frage:

Das DOUT-Modul ist - soweit habe ich es verstanden - für die Ansteuerung der LED-Digits UND die Ansteuerung von LED's zuständig.

Für 16 Digits löte ich ein DOUTX4-Modul wie in leddigits_16.pdf beschrieben.

Wie sieht es denn für die Ansteuerung von LED's aus? Löte ich es mit allen Widerständen wie auf der DOUT-Seite beschrieben?

(Ich brauche sowohl LED-Digits als auch LED's für mein Projekt!!)

Und nochmal zum Dokument leddigits_16.pdf: Für die LED-Digits auf der linken Seite steht nur: "resistors not mounted", für die LED's auf der rechten Seite steht: "(no resistors) 8 bridges".

Müssen nicht auch auf der linken Seite statt den Widerständen Brücken gelötet werden?

Gruß,

Wolfgang

Link to comment
Share on other sites

Hallo Wolfgang,

die Diode dient quasi als Schutzmassnahme um den Optokoppler vor

Verpolung zu schuetzen.

LEDs koenntest Du ebenfalls multiplexen (bspw. 64 LEDs an

zwei Shiftregistern), oder auch direkt an die DOUT pins

anschliessen, falls Dir die Programmierung des entsprechenden

Drivers zu kompliziert erscheint.

Wenn eine LED direkt an einem DOUT angeschlossen ist, kann

man sie besonders bequem umschalten: MIOS_DOUT_PinSet0

oder MIOS_DOUT_PinSet1

Beim Multiplexen muss man die Ansteuerung selbst in die

Hand nehmen, so wie in den "leddigits*" Beispielen, oder

auch in der MIDIbox LC und der MIDIbox SID Applikation.

Egal ob gemultiplexed oder nicht, es sollte sich jeweils ein

Widerstand im Signalpfad befinden, eine LED sollte niemals

direkt mit 5V betrieben werden!  

leddigits_16.pdf: ja Du hast Recht - danke fuer den Hinweis - fixed                

             

Gruss,

       Thorsten.

P.S.: Meine Adresse habe ich Dir gerade per Forum-Mail geschickt.

Link to comment
Share on other sites

Guest wolfgang

Hallo Thorsten,

mir ist schon klar, was die Diode macht. Ich wollte nur wissen, wie herum diese einzusetzen ist. ich kenne das verwendete Zeichen im Schaltplan nicht - ich kenne nur dieses Zeichen -->|  

Gruß,

Wolfgang

Link to comment
Share on other sites

Du lagst schon richtig, der Markierungsring (egal in welcher Farbe) befindet sich an der Kathode, und diese ist im Schaltplan mit einem Strich markiert.

Hier: http://avi.dezines.com/mbhp/info.html gibt es uebrigens eine weitere Ansicht vom Core-Modul (US Version), in der die Polaritaet der Diode klar zu erkennen ist.

Gruss,

       Thorsten.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...