-
Posts
15,253 -
Joined
Content Type
Profiles
Forums
Blogs
Gallery
Everything posted by TK.
-
Hallo, leider nicht - MIDI ist eine Point-to-Point Verbindung und kein Bussystem. Die seriellen Datenstroeme lassen sich nicht einfach elektrisch zusammenfuehren, sie muessen bspw. von einem Mikrocontroller "gemerged" werden Gruss, Thorsten.
-
Mit der Beschreibung alleine ist schon das meiste getan, die englische Uebersetzung koennen auch andere ins Reine bringen :) Gruss, Thorsten.
-
Good luck! :) next time give them following link: http://www.tla.co.nz/xtal1.html Best Regards, Thorsten.
-
D7 is a data input/output pin of the LCD - see also the schematic http://www.ucapps.de/mbhp/mbhp_lcd.pdf of course, if you are not sure if MIOS has been uploaded correctly, this could be one of the reasons - so long this isn't clear, it doesn't make sense to talk about possible hardware problems. I can only mention the following: even people who thought that they have super proper connections to the LCD, noticed a broken wire or a short sooner or later. Just search in this troubleshooting section for reports, it gives you a lot of inspirations what can go wrong. this is really strange! Could it be that a short is anywhere else which causes a brown-out reset? Data is sent to the LCD, thereafter the RB port is switched to input mode and the LCD driver polls the busy flag at D7. There is a timeout loop which ensures that the LCD driver will be completely disabled if the busy bit never goes zero (0V) - this covers the case that no LCD is connected. But if anything else drives the input (RB7) with a non-static and "strong" signal (stronger than the internal pull-up), then the timeout loop will stop sooner and later and the next character will be transmitted. If multiple characters are sent to the LCD, and the erroronous, non-static signal enlarges the timeout-loop very often, so that it takes more than 2 seconds to display a string, the watchdog (malfunction detection) will reset the chip. However, as mentioned above: so long you haven't ensured that MIOS hasn't been uploaded correctly, such thoughts are only from theoretical nature. My suggestion: use the new MIOS Studio to upload MIOS. It notifies errors which are reported by the core module, so only with MIOS Studio it is guaranteed that the code upload was complete. Just load the mios_v1_7.hex file, enable the "wait for upload request" option and press the start button. Another important point regarding software configuration: are you sure that the right display type is selected? Which LCD option did you specify in the ID header? Hopefully 0? If you are not sure, or if you are sure that it is != 0, then do the following: disconnect the LCD, upload MIOS, upload the change ID application. This will reset the ID to 0000000000000000 Best Regards, Thorsten.
-
Hi Moxi, open seq_core.inc, search for "SEQ_CORE_Clk_OnEvent_ChkDrumSolo", and remove the code between this and the "SEQ_CORE_Clk_OnEvent_NoDrumSolo" lable The possibility to select multiple layers at once would be easier (same behaviour like for the track buttons) - but "easier" doesn't mean that the implementation is easy ;-) Best Regards, Thorsten.
-
d0 und d1 sind eigentlich ideal, weil es mit dem Pin-Out der MIDIbox SEQ matcht, andererseits liegen hier Select und Exec auf dem zweiten Shift Register, deshalb stehst Du nun vor einer schwierigen Entscheidung: entweder stellst Du die MBCV so ein, dass das Pinning einer MB64 oder MB64E entspricht, oder so, dass es einer MBSEQ entspricht. Oder Du pfeifst auf die Hardwarekompatibilitaet und stellst das Pinning so ein, wie Du die Kabel gerade angeloetet hast. (s'ist schon schwierig, wenn man als Programmierer eine solch hohe Flexibilitaet erlaubt ;-) Ok, bleiben wir bei der MB64/MB64E Kompatibilitaet, weil Du hier nur ein einziges Shift Register benoetigst. Der Encoder sollte auf Pin 4/5 liegen: ENC_ENTRY 1, 4, MIOS_ENC_MODE_DETENTED ; Data Wheel [/code] Und die restlichen Pins: [code] #define DEFAULT_ENC_DATAWHEEL 0 ;; wir nehmen den ersten Encoder Eintrag ; ; DIN pin numbers of menu buttons #if DEFAULT_ENC_DATAWHEEL == -1 #define DEFAULT_DIN_MENU_EXEC 7 ; wird nicht genommen, da DEFAULT_ENC_DATAWHEEL != -1 #define DEFAULT_DIN_MENU_RIGHT 6 ; wird nicht genommen, da DEFAULT_ENC_DATAWHEEL != -1 #define DEFAULT_DIN_MENU_LEFT 5 ; wird nicht genommen, da DEFAULT_ENC_DATAWHEEL != -1 #define DEFAULT_DIN_MENU_SELECT 4 ; wird nicht genommen, da DEFAULT_ENC_DATAWHEEL != -1 #else #define DEFAULT_DIN_MENU_EXEC 7 ; Exec Button an D7 #define DEFAULT_DIN_MENU_SELECT 6 ; Select Button an D6 #define DEFAULT_DIN_MENU_RIGHT 5 ; nicht relevant, hier kann irgendein Wert stehen #define DEFAULT_DIN_MENU_LEFT 4 ; nicht relevant, hier kann irgendein Wert stehen #endif die hatte ich kurz vor der Release mal schnell eingetragen, doch vergessen, sie wieder zu entfernen. Ich habe die MBCV damals an meiner MBSEQ entwickelt... Was bedeutet die 8: damit verlagerst Du den Pin auf ein anderes Shift Register. Man koennte statt 5+8 auch einfach 13 eintragen, und welchem Pin das entspricht, erfaehrt man aus dieser Liste: http://www.ucapps.de/mios/mios_din_dout_pin_numbers.txt (eigentlich ist doch alles sauber dokumentiert, oder? ;-) Gruss, Thorsten.
-
Hi, The internal pull-ups are enabled at Port B, so that external resistors are not required. The signal at RB7 could be the reason - the timeout mechanism won't work properly if the signal level at RB7 is not stable, e.g. if you've swapped D7 with another LCD pin Best Regards, Thorsten.
-
Hallo, die Versorgungsspannung ist zu niedrig, der LM317 benoetigt ein wenig "Luft nach oben", um 12.5V zu stabiliseren. Wenn am Eingang etwa die gleiche, oder eine niedrigere Spannung anliegt, kann es evtl. schon sein, dass am Ausgang nur noch 7..8V herauskommen. Da bin ich mir jedoch nicht 100% sicher. Ein anderer Grund koennte sein, dass Du den LM317 falsch angeschlossen hast (das Pinning steht im Schaltplan) - ist mir auch schonmal passiert, das Verhalten der Ausgangsspannung war ziemlich seltsam ;-) Falls eine hoehere Spannung nicht machbar ist, koenntest Du das Netzteil + 9V Batterie auch einfach direkt an J2 anschliessen Der BC546 sollte ok sein, er ist nicht zur Stabilisierung gedacht, sondern schliesst den MCLR Pin gegen Masse, um einen Reset auszuloessen. Gruss, Thorsten.
-
Der Encoder-Eintrag in mios_tables.inc ist falsch, hier wurde der Encoder auf Pin D0 und D1 gelegt, Du hast ihn aber sicherlich an D6 und D7 angeschlossen? Du koenntest den Eintrag dementsprechend anpassen. Ausserdem sind in main.asm der Exec und Select Button auf andere Pins gelegt, wenn DEFAULT_ENC_DATAWHEEL >= 0 ist Auch hier muesstest Du die richtigen Pin-Nummern eintragen. Gruss, Thorsten.
-
Debugging with a scope is really simple: check the signal at the oscillator pins (OSC1 and OSC2), it should be 10 MHz, the amplitude is ca. 2-3 V so far I remember but it doesn't matter here - only the frequency is important, so long the clock is not available, nothing else will work. SMDs: are you sure that this is a cheaper solution? The DIP version of the 74HC595 costs 0.33 EUR at Reichelt. Best Regards, Thorsten.
-
Unfortunately there is no special mark, only the manufacturer can tell you if the crystal is the right one or not. On the other side: in 99% of all cases you will get a parallel cut crystal if the distributor doesn't mention that it's a special type. Only unexperienced distributors don't specify the type Best Regards, Thorsten.
-
No, this is a serial connection which increases the resistance. Parallel means: just connect them together Best Regards, Thorsten.
-
Ref to my New Project thread in Design Concepts
TK. replied to Tanstaafl's topic in MIOS programming (Assembler)
Thanks for the feedback! :) Don't hesitate to publish your code in the MIDIbox Wiki Best Regards, Thorsten. -
seq v2 with 4 rows of butons : workarounds
TK. replied to moxi's topic in MIOS programming (Assembler)
Ok, since you made such a progress, I haven't added the stuff into the original release. ;-) It's too difficult to find a general solution, the informations which should be displayed on the additional LEDs are too individual, especially in drum mode. And there are many cases which have to be tested. Since I'm not able to do this with my hardware, I don't want to spent any effort here. Hint: maybe it's better to add the changes to SEQ_LED_UpdateIRQ, search for SEQ_LED_UpdateIRQ_GPLED_Not0, this is the place where the different LED patterns are selected. The track number is in SEQ_STEP_LEDS_CTR. Don't use the SEQ_FSR* or CS_M_HLP* functions here to determine the pointer to the track records, also don't use the TMP variables --- this is an interrupt service routine. Thats all what I can say reg. this topic. Best Regards, Thorsten. P.S.: take care, parts of seq_gp.inc have been changed, don't copy your old file over the new one -
Alright, this is the root cause! The PIC18F452 requires a 10 MHz crystal Best Regards, Thorsten.
-
Hi Martin, your help is welcome! :) Style guide: the easiest solution would be when only the texts are translated. If you want to add more descriptions, more pictures, more examples, then this should be done in the original page as well to avoid inconsitencies on changes. I already wrote it to Moxi, but it's possible for general interest. Here some things which will be changed in the next weeks: all MBHP pages will get some hints and pictures about bypass caps the MBHP_MF page will be completely rewritten the MIOS Bootstrap page will be partly overworked due to the new upload tool (MIOS Studio) hints about MIOS Studio will also be added to the "MPASM" and "MPLAB" page, and to the troubleshooting page Best Regards, Thorsten.
-
An impressing pictures! :) Not sure if caps will really help, maybe it's better to reduce the value of the pull-up resistors on the DIN module. You don't need to replace them, just solder the resistors in parallel. E.g., with a second 10k in parallel, you will get a 5k resistance You could try this for 1..8 inputs first in order to check if this really helps Best Regards, Thorsten.
-
If the crystal would be a problem, you wouldn't be able to upload code or to receive the right MIDI events. So, it must be ok. Which display are you using exactly? Best Regards, Thorsten.
-
x0x style seq... Need hardware help (LONG post!)
TK. replied to stryd_one's topic in Design Concepts
General tips for improvements: interrupts don't need to be disabled - currently it would be difficult to use the functions if interrupts are already disabled by the function which calls the subroutine (for any reason) use FSR1 instead of FSR0 like every MIOS routine - so that the program can use FSR0 for something else add a "movf MIOS_PARAMETER1, W" at the end of SRAM_Read, this saves code size on the calling routine (e.g. call SRAM_Read, movwf MY_VARIABLE) the PAGE* functions should access pages of 0x40 bytes, this makes it compatible to the MIOS_*_PAGE* functions variables like SRAM_ADDR should always be defined in app_defines.h to improve the oversight. An hint in the source code, that these registers must be defined, should be enough I would suggest to make the port for the SRAM control pins (currently LATA) and maybe also for the data/address port definable. See the aout driver (aout.inc) as an example Best Regards, Thorsten. -
Hi, frequency: up to 400 kHz, pull-up resistor value: 1k doesn't hurt here, than lower, than better (ok, the current consumption with < 100 Ohm would be too high) Best Regards, Thorsten.
-
The new version v2_2b is now available in the MIOS download section: http://www.ucapps.de/mios_download.html Fixed bugs: firmware doesn't crash anymore when multiple tracks are selected and the GP buttons are pressed MIDI event type (Note/CC/...) printed at first line when in drum mode ALL function disabled in drum mode track shift function disabled in drum mode Solo plays only the selected tracks and layer in drum mode (it's not possible to select multiple layers) manual trigger doesn't stop the sequencer anymore manual trigger plays only one step if sequencer is not in run mode (same behaviour like before) the display artifacts issue should not happen anymore Please let me know if there are any other (or new...) problems Best Regards, Thorsten.
-
Adam has sent me a new beta release (_beta2) with some minor bugfixes. Use this especially if you notice problems with the code upload (the block size has been decreased to 256 bytes due to problems with the Java MIDI handler in connection with the MIDI driver for SBLive and USB-MIDI) The link can be found under: http://www.avishowtech.com/midibox/wiki/index.php/miosstudio (Rene: strange, it should be a .jar file, does your browser support .zip an on-the-fly?) Best Regards, Thorsten.
-
Danke Martin! Du solltest diesen Artikel im Wiki veroeffentlichen, damit er nicht verloren geht (er muss nicht unbedingt in English uebersetzt werden) Gruss, Thorsten.
-
Hallo, je nach Vendor und Product ID sucht Windows einen passenden Treiber, es ist jedoch auch moeglich, diesen nachtraeglich zu aendern ("Treiber aktualisieren") Ich habe uebrigens meine eigenen PIDs, sponsored by Voti: http://www.voti.nl/pids/ allerdings helfen sie bei diesem Problem auch nicht weiter ;-) Gruss, Thorsten.
-
Hallo Markus, Mit ID 0x01 kann man einen Dump requesten, er enthaelt jedoch saemtliche Konfigurationsdaten Oder moechtest Du genau die MIDI Events requesten, die von den Bedienelementen (Encoder/Pot/Buttons) gesendet werden? Solch einen Snapshot kann man eigentlich nur ueber einen Taster antriggern, und nicht via SysEx. Falls Du hier keine weitere Programmierarbeit reinstecken moechtest, koenntest Du auch einfach das "AUTO_SNAPSHOT" und "RECEIVE_PC_FOR_BANKCHANGE" Flag im midibox64e.ini File einschalten - so laesst sich der Snapshot ueber einen Program Change Befehl antriggern. Es gibt mittlerweile eine neue MB64E Variante, die jedoch noch nicht veroeffentlicht ist. Sie unterstuetzt (optional) einen Patch Modus, bei dem man als Snapshot lediglich die Encoder/Pot/Button Einstellungen zurueckbekommt, und nicht die MIDI Events (zusaetzlich kann man 128 dieser Patches in jeden BankStick speichern). Falls Du so etwas brauchst, dann kann ich Dir eine Vorabversion zuschicken. Gruss, Thorsten.
