Jump to content

talion303

Members
  • Posts

    8
  • Joined

  • Last visited

Everything posted by talion303

  1. Hi Thorsten, kleiner fix große Wirkung :) Ausprobiert: Geht! Vielen Dank - Grüße, Christoph
  2. Hallo zusammen, in meinem Projekt habe ich mehrere Cores in Reihe geschaltet. Einige DIN's sind an Encoer angeschlossen. Zum Einsatz kommt ain64_din128_dout128_v2c. Also habe ich zunächst Midibox-Link angeschaltet was grundsätzlich auch funktioniert: in main.c: // ENABLE AND CONFIGURE MIDI MERGER MIOS_MIDI_MergerSet(MIOS_MIDI_MERGER_ENABLED); MIOS_MIDI_MergerSet(MIOS_MIDI_MERGER_MBLINK_FP); (auf dem letzten Core entsprechend MBLINK_EP) Wenn ich jetzt Knöppe oder Potis drehe kommt am Midi-Out des letzten Cores alles raus, so wie es soll. Wenn ich allerdings Encoder drehe nicht. Ich habe mal Midi an den MBLINK_FP Cores abgegriffen und festgestellt das bei Knöppen und Potis zusätzliche Informationen gesendet werden. Ich meine F9 oder 9F - scheint so als wären das die Tunnelinformationen die der MBLINK_EP dann erkennt, abschneidet und die Nutzinformationen aus dem Midi-Out schickt. Beim Drehen der Encoder fehlen diese zusätzlichen Informationen, was sehr wahrscheinlich den Fehler verursacht. Funktionieren tun sie allerding so wie sie sollen - halt nur nicht in der Midi-Core-Schlange - da kommt em Ende nix an, vorher abgegriffen: Alles super. Die Encoder habe ich wie folgt in die ain64_din128_dout128_v2c integriert: in mein.c: // set speed mode for 13 encoders for(i=0; i<13; ++i) { // available speed modes: SLOW, NORMAL and FAST MIOS_ENC_SpeedSet(i, MIOS_ENC_SPEED_FAST, 2); // encoder, speed mode, divider } und: void ENC_NotifyChange(unsigned char encoder, char incrementer) __wparam { MIOS_MIDI_TxBufferPut(0xb0); // CC at MIDI Channel #1 MIOS_MIDI_TxBufferPut(0x20 + encoder); // CC# is 0x10 (16) for first encoder MIOS_MIDI_TxBufferPut((0x40 + incrementer) & 0x7f); // this "40 +/- speed" format is used by NI software and some others } In der Enc_Table sind die Encoder natürlich entsprechend definiert. Sie funktionieren wie gesagt auch so wie sie sollen. Ja so weit - ist das nicht so, dass die Funktion TxBufferPut generell quasi "durch" den Midimerger geleitet wird, sobald er angeschaltet ist? Klappt ja bei den den Knöppen und Potis auch... Kann natürlich sein dass die Frage dumm ist, da ich mal NULL "C" kann - ich such mir die Sachen für die Software aus dem Forum zusammen und versuche damit erst mal klarzukommen... ;-) Wahrscheinlich fehlt irgendwas.... nur was? Vielen Dank und Grüße, Christoph
  3. Hi, danke für die Antwort - derweil hatte ich nun mehrere Stunden Zeit mich abwechselnd um das Problem und mit meiner Frau zu streiten ;-) (schönes Wetter versus Projekt) Aber die Lösung war dann am Ende doch einfach, wenn auch abgedreht: Die Platinen mit den DOUT's sind so zusagen störnförmig angeordnet. Das bedeutet dass über das Flachbandkabel sowohl SerIN als auch SerOUT geführt wird. Also Flachbandkabel schickt SerIN vom Mainboard zur DOUT Platine - DOUT Platine schickt SerOUT zurück - dann geht's vom Mainboard genau so zum nächsten Modul usw usw. Ich habe die Module alle gleich gebaut, alle schicken also DOUT zurück zum Mainboard, damit ich die Module in unterschiedlicher Reihenfolge aufstecken kann - hat eigentlich keinen Sinn, aber beim Layern war die Reihenfolge irgendwie nicht wichtig, also schickt auch das letzte Modul SerOUT 50cm zurück über das Kabel. Am letzten Pfostenstecker des Mainboards ist dann natürlich nix mehr angeschlossen. Dadurch konnte ich auch den Fehler nicht finden, denn sowohl Module als auch Kabel konnte man ja tauschen... Es scheint so, dass 50cm SerOUT wie ne Antenne gewirkt haben und eine Art Loop auf den SerIN des letzten Modules generiert hat... die Lösung war dann einfach: SerOUT vom letzten Modul auf dem Flachbandkabel weglassen. Man bin ich froh jetzt... das hat mich echt paar Tage beschäftigt jetzt.... Für mich war das Thema tatsächlich neu. Und so gesehen steht sogar an keiner Stelle hier, dass nicht angeschlossene SerOUTs ab einer bestimmten Länge die Schaltung verseuchen ;-) also event. bringt es jemandem ja sogar was. Naja ich bin auf jeden Fall heil froh dass ich da weiter gekommen bin... --- Aber mal abschließend die eigentlich ursprüngliche Frage noch mal: Nehmen wir mal an jemand möchte ALLES terminieren... event. um auch die AIN Module und weiss ich was weiter entfernt oder "strahlengefährdeter" Aufzubauen. Klappt die 100p+ 100 Ohm AC-Terminierung an allen im Midiboxprojet vorkommenden Signalleitungen? Grüße - Christoph
  4. Hallo zusammen, also mir raucht der Kopf. Tagelange erfolglose Fehlersuche, dann habe ich diesen Beitrag gefunden: Beflügelt versuchte ich ALLES was ich in dem Beitrag gefunden habe, leider erfolglos. Im Grunde habe ich den gleichen Fehler wie beschrieben. Allerdings ist RC/SC bei mir eher sternförmig aufgebaut. Was allerdings nicht Sternförmig aufgebaut ist, ist die DOUT SerIN/SerOUT Kette (geht ja auch nicht anders)... irgendwann hab ich angefangen wie wild auf die Platinen zu fingern und siehe da: Der letzte, grundsätzlich flackernde DOUT Baustein lässt sich partial "Heilen" wenn man SerIN + Masse berührt. Da reicht auch eine Hand am SerIN und andere Hand an Masse und das Flackern verschwindet. (Nicht nur das Flackern, denn wenn es Flackert spinnt noch ne Menge mehr - scheint die ganze Schlatung zu verseuchen, phontom DIN und AIN sind die Folge wenns flackert - alles weg mit Hand an SerIN/Masse) Bei mir spinnt also nicht RC/SC sondern die Serial-Kette der Dout Bausteine. Also: Letzter DOUT-Baustein flackert, hängt man zum Test einen hinter den letzten flackernden dran, flackert dieser auch. Ich habe (auch wenns keine orig DOUT Modules sind) die Module mal hin und her gestauscht, es liegt tatsächlich an der Verkabelung. Die einzelnen DOUT Bausteine sind z.T. weit auseinander: Ich denke es sind etwa 50 CM Flachbandkabel zwischen SerOUT vom letzten noch funktionierenden Baustein bis zum zu dem der Flackert. Netzteil etc. ist alles OK. Hab eigentlich alles geprüft und gefixed was ich gefunden habe hier im Forum/Faq/Wiki (Kondensatoren, Leistung etc..) - Mit Finger drauf geht ja auch alles. Wenn man jedoch den Finger drauf hat, funktioniert der Baustein (und die dahinter, wenn zum Test angeschlossen) nicht mehr. Nicht flackern ist schon mal gut, aber dann leutet auch nix mehr. Aus obigem Beitrag habe ich bereits folgende Terminierungen der SerIN-Leitung ausprobiert: 220 OHM oder 100 OHM gegen Plus: Fehler besteht weiterhin. 220 OHM oder 100 OHM gegen Minus: Fehler weg, Baustein funktioniert nicht mehr. abgeschaut vom DIN: 10 KOHM pull-up gegen Plus: Fehler besteht weiterhin. 100 OHM + 100p Kerko gegen Plus: Fehler besteht weiterhin. 100 OHM + 100p Kerko gegen Minus: Fehler weg, Baustein klappt nicht mehr. Wenn ich Ser direkt verbinde, also von Pin zu Pin der beiden letzten DOUT IC's, somit das Layout der Platinen + 50 cm Flachbandkabel spare, klappt es... lustiger Weise "verbessert" sich das Flackern wenn man das Flachbandkabel mit der Hand umschließt dahingehend, dass es einmal "irgendwie" lief - allerdings konnte ich das nicht in dieser Position halten - es scheint also tatsächlich mit Einstrahlung zu tun zu haben. (Kabel hab ich auch schon neu gemacht - gleiches Kabel funktionert einige Douts in der Kette vorher auch) Irgendjemand in dem Beitrag hat nen Kupferfitzel irgendwo drankleben gehabt, hab alles gefühlte 348293759 Mal nach solchen Sachen abgesucht und bin sicher, dass kein elektronischer Fehler vorliegt, auch wenn mir die Augen schon bluten. Wenn ich mit folgendes durchlese: My link komme ich zu dem Schluss, das eigentlich alles terminierbar ist, die Frage ist nur, wie und mit welchen Werten kann man die Ser LEitung des DOUT terminieren? Ich bin absolut kein großer elektronik Experte - hab auch kein Oszi. Alle umliegenden Metallflächen hab ich entweder schon mal entfernt oder auf Masse gelegt... Hat da jemand eine Idee zu? Viele Grüße, Christoph
  5. Hi Thorsten. Das mit dem benachbarten Pin ist ne super Lösung... und danke für die Erklärung. Sprich schon elektrisch ist das Käse... ich dachte die Mutliplexer senden dann "Mist" auf den offenen Eingängen aber so wird es etwas klarer und abrauchen sollen die auf keinen Fall, da Sockel wegen dem geringen Abstand zur Frontplatte leider nicht möglich sind - also ein wertvoller Hint. Das ist doch schon mal was ;-) - Vielen Dank und Grüße - Christoph
  6. Ja recht hast du ja - aber das sind Platinen für über 400 Euro - monatelange Arbeit... blauer Lötstop... also richtig "schön" und auch zu teuer um wegen som Krams mal eben neu bestellt zu werden.. Ich ärger mich auch echt schwarz... ist rein designtechnisch einfach "unschön" wenn man sich so eine Mühe gemacht hat... da hätte ich auch Lochraster-Kabelsalat-Style bauen können... Aber mal zurück zu meiner "Lösung" :-) - was bedeutet denn "Random Midi Traffic" im Fall von vergessenen PullUps ? Flappt der Mutliplexer den Eingang ohne PullUP oder ist der einfach nur permanent an? Denn bei dem Krams (bitte nicht lachen) den ich da gepostet habe, springt ja gesetzt den Fall dass das Dingen flappen sollte ständig die Funktion an... is wahrscheinlich auch nicht so das Wahre oder? Aber wenn's ne vernünftige Lösung geben würde schätze ich, hätte jemand was geschrieben - einzig vernünftig wäre wahrscheinlich die Eingänge tatsächlich zu ignorieren und nicht per IF zu erkennen, was dementsprechend viel aufwändiger wäre als die Platinen zu verunstalten... naja nächste mal einfach besser aufpassen ;-) Ich werd das Projekt auch mal posten wenn's soweit ist... aber da ich immer nur am Wochenende Zeit habe wirds noch 2-3 Monate dauern.. so lange kann ich auch PullUps dran machen bis der Rest fertig ist... Grüße
  7. wäre das hier ein Ansatz? (Beispielhaft: Pin 3,5,7 = vergessene PullUps) ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when an button has been toggled // pin_value is 1 when button released, and 0 when button pressed ///////////////////////////////////////////////////////////////////////////// void DIN_NotifyToggle(unsigned char pin, unsigned char pin_value) __wparam { if(pin != 3 && pin != 5 && pin != 7 ) { // a button has been pressed, send Note at channel 1 MIOS_MIDI_BeginStream(); MIOS_MIDI_TxBufferPut(0x90); // Note at channel 1 MIOS_MIDI_TxBufferPut(pin); // pin number corresponds to note number MIOS_MIDI_TxBufferPut(pin_value ? 0x00 : 0x7f); // buttons are high-active MIOS_MIDI_EndStream(); } } Die Platinen sind noch auf dem Postweg - daher kann ichs nicht einfach ausprobieren - geht hauptsächlich auch darum ob das völliger Mist ist oder ob man es besser lösen muss :)
  8. Hallo zusammen, ich habe relativ große Platinen gelayert und nun isses doch passiert - trotz gefühlten 100000 Kontrollen fehlen an einigen nicht genutzten DIN's die 10k Pull-Up's :( Ich will den bekannten 128in/128out/64ain-Code auf dem PIC benutzen - könnte mir jemand event bei einer softwaretechnischen "Blacklist" oder "Ignorelist" für bestimmte Register helfen? Es sind an die 10 Stück die fehlen und ich will vermeiden die schönen Platinen mit drangewursteten PullUps zu versauen - obwohls ja doch meine eigene Schuld ist. Ich kann soeben mit Lesen im Forum und Copy und Past Anpassungen am Code vornehmen, bin also kein C-Programmierer - wenn mir jemand einen Schnipsel nennen könnte der bestimmte DIN's ignoriert wäre ich super dankbar... Viele Grüße, Christoph
×
×
  • Create New...