MIDIbox - MIDIbox

MIDIbox proje bir açık kaynak modüler DIY donanım ve yazılımdan oluşan çerçeve, MİDİ etrafında inşa edilmiş platform PIC ailesinin mikrodenetleyiciler - PIC18F452, PIC16F88, PIC18F4620 ve PIC18F4685 ve son zamanlarda STM32 FXX ve LPC1769 32 bit. Donanım oluşturmak için kullanılabilir MİDİ çeşitli kontrol üniteleri sentezleyiciler, çok kanallı kayıt yazılımı ve diğer MIDI cihazları; yanı sıra bağımsız sentezleyiciler, sıralayıcılar ve diğer projeler.

Tarih

MIDIbox Donanım Platformu, Thorsten Klose'un MIDI denetleyicileri üzerindeki önceki çalışmalarının devamı niteliğindedir.[1][2]Tasarımlar, yeniden kullanılabilir ve değiştirilebilir modüllerden oluşan standart bir ortama dayanmaktadır. İlk modüllerin yayınlanmasından kısa bir süre sonra, küçük bir meraklı grubu oluştu ve gelişen bir açık kaynak geliştirme topluluğu haline geldi.

MIDIbox Donanım Platformu (MBHP)

Platform, amatör montajlara izin vermek için küçük, karmaşık olmayan devrelere dayalı iyi tanımlanmış ve belgelenmiş modüllere odaklanır. Bu modüller daha sonra eksiksiz bir proje halinde birleştirilir. Tüm levhalar tek kat yapılabilir PCB'ler ile tasarlanmış prototip panolar ücretsiz yazılım CAD programı. Hemen hemen tüm bileşenler deliğin içinden daha kolay montaj için.

İlk MIDIbox donanım platformu (MBHP), kendi açık kaynağına dayanıyordu işletim sistemi - MIOS (MIDIbox İşletim Sistemi) - PIC ile yazılmış montaj dili hız ve doğruluk için. Bir C sarıcı katmanı basitleştirilmiş kodlama sağlar. MIOS, hobiciler ve meraklılar tarafından basit yeniden yapılandırma, uyarlama ve genişletmeye izin verecek şekilde tasarlanmış ve belgelenmiştir.

Yeni MIDIBox Donanım Platformu, MIOS32, NXP'den ARM tabanlı LPC1769 ve STM32F407'de çalışır. STMikroelektronik ve bir Gerçek Zamanlı İşletim Sistemi (RTOS) türetilmiştir FreeRTOS.[3] alet zinciri MIOS32 için dayanmaktadır GCC ve yalnızca C dilini kullanır.

Modüller

Şu anda yaklaşık 15 ayrı modül mevcuttur:

Mikrodenetleyici modülleri

  • Çekirdek modülü
  • Gerçek bir PIC-Burner veya JDM Modülü gibi PIC Programcı Modülleri

Giriş modülleri

  • AIN Modülü Analog Giriş (0-5V)
  • DIN Modül Dijital Giriş (AÇIK / KAPALI)

Çıkış modülleri

  • DOUT Modülü Dijital Çıkışı (örneğin LED AÇIK / KAPALI)
  • LCD Modül Sıvı Kristal Ekran
  • Çıkış Voltajlarına AOUT Modülü Analog Çıkışı (Kontroller için)

Sıralayıcı modülleri

  • SEQV4 Sıralayıcı V4
  • SEQV4L Sıralayıcı V4 Lite
  • SEQV3 Sıralayıcı V3

Ses modülleri

Bellek genişletme modülleri

  • BankStick 32k / 64k Bellek modülü

MIDI I / O modülleri

  • LTC Modülü MIDI LED Göstergeleri + 1 MIDI-Out + 1 Thru (+ 1 opsiyonel COM-Portuna)
  • USB Modülleri PC / USB Arayüzü

Çeşitli modüller

  • Motorfader'ları kontrol etmek için MF Modülü
  • Diğer (Mikrodenetleyici-) Cihazlarla iletişim kurmak için IIC Modülleri I2C

RTP-MIDI modülü

  • MIOS32 aygıt yazılımı, yüksek hız üzerinden KissBox OEM RTP-MIDI modülüne doğrudan bağlantı içerir SPI[4][5]

MIDIbox İşletim Sistemi (MIOS)

MIDIbox İşletim Sistemi (MIOS), esnek MIDI denetleyici uygulamalarının tasarımını kolaylaştırır. MIOS, ticari kontrolörlerle mümkün olmayan fikir alışverişi ve kişisel uyarlamaların temeli olarak ticari olmayan, açık bir platforma bağlıdır.

Topluluk tarafından oluşturulan çoğu denetleyici, mevcut belgelenmiş tasarımlara dayanır ve mevcut aygıt yazılımının sağladığı özellik setiyle hayata başlar. Son kullanıcılar, cihazlarını değiştirilebilir program koduyla geliştirebilir ve ana uygulamalarına, sentezleyicilere veya diğer MIDI cihazlarına uyacak şekilde özelleştirebilirler. Kullanıcılar ayrıca kendi tercihlerine göre özelleştirebilirler iş akışı veya sıfırdan yeni bir proje tasarlayın.

Uygulama kaynak kodu, modül şemaları ve PCB düzenleri, ticari olmayan kullanım için modifikasyonlar ve geliştirmeler için şablonlar olarak ücretsiz olarak mevcuttur. Böylece MIOS ve Donanım Platformu, ticari, ana akım MIDI pazarının alanlarının dışında olası uygulamaları oluştururken, meraklı mikro denetleyici geliştirmeye kolay bir giriş sağlar.

MIOS, GPL 1.8 sürümüne kadar. Daha sonraki sürümler artık ticari kullanım için Thorsten Klose'un iznini gerektiriyor.[6]

Teknik Özellikler

İşletim sistemi, kullanıcının donanım ve yazılım olaylarına kancaları ve Donanım Platformu modülleri ile etkileşim için işlevler sağlayan bir çekirdekten oluşur.

  • 128 dijital girişe kadar
  • 128 dijital çıkışa kadar
  • 64 analog girişe kadar
  • karakter ve grafik LCD'ler
  • 8 BankSticks'e kadar (I2C EEPROM'lar )
  • bir MIDI Girişi ve bir MIDI Çıkışı veya bir RS232 seri COM Liman

Arka plan sürücüleri, aşağıdaki kontrol görevleri için kullanılabilir:

  • MIDI I / O işleme
  • Bootstrap yükleyici
  • 64'e kadar analog dönüşüm tencere 10 bit çözünürlüğe sahip, fader'lar veya diğer analog kaynaklar
  • 10 bit çözünürlüğe sahip 8 adede kadar motorlu hareketli fader için motor kullanımı
  • 64'e kadar taşıma döner kodlayıcılar
  • 128 düğmenin, dokunmatik sensörün veya benzer dijital giriş cihazlarının kullanımı
  • 128 adede kadar LED, röle, Dijital-Analog Dönüştürücü veya benzer çıkış cihazlarının kullanımı. İçinde çoklu modu neredeyse sınırsız sayıda LED, LED halkaları ve LED rakamları çalıştırılabilir
  • EEPROM, Flash ve BankStick'ten / EEPROM'a Okuma / Yazma
  • MIDIbox Bağlantısı aracılığıyla PIC18F Çekirdek modüllerini bağlama

Tüm işletim sistemi, assembly dilinde yazılmış ve hız için optimize edilmiştir. MIOS şu anda 8k program belleği ve 640 bayt RAM kullanıyor.

Sadece 75 µs 128 dijital giriş pinini okumak ve 128 çıkış pinine yazmak için gereklidir. 100 µs içinde 16 döner kodlayıcı işlenir. Analog girişler arka planda her 200 µs'de taranır; tanımlanabilir minimum aralıktan daha büyük değişiklikler bir kullanıcı kancasını tetikler.

256 MIDI olayına kadar özel işlevleri tetikleyebilir; Olay listesinin işlenmesi yaklaşık 300 µS gerektirir. MIDI olayları ayrıca bir kullanıcı rutini tarafından işlenebilir. Sysex ayrıştırma veya benzeri işler. Zamanla tetiklenen kod için bir kullanıcı zamanlayıcı mevcuttur.

C dışındaki diğer yüksek seviyeli diller için destek mümkündür.

MIOS donanımı

MIOS donanımı, MIDIBox Donanım Platformu (MBHP) kavramı etrafında düzenlenmiştir. MBHP, belirli bir işlemci için mümkün olan en yüksek bağlantı sayısını sunan çok yönlü anakartlardır. MBHP'nin dört versiyonu şu anda mevcuttur:

  • PIC16F877 ve PIC18F452 için MBHP (8 bit işlemciler). İki çip pin uyumludur, ancak PCB'nin iki çip arasında basit bir değişikliğe ihtiyacı vardır
  • LPC1769 için MBHP (32 bit ARM7 işlemci)
  • STM32F407 için MBHP (32 bit Cortex M4 işlemci)

Bir proje, belirli bir MBHP'de bulunanlardan daha az G / Ç'ye ihtiyaç duyduğunda, MIDIBox konsepti bu projeye özel basitleştirilmiş bir PCB oluşturmaya izin verir. Bu, Sammich MIDIBox SID'de kullanılan yaklaşımdır [7] ve Sammich MIDIBox FM. Bu iki kit, orijinal MBHP tasarımını içerir, ancak bir SID yongası veya bir YMF262 yongası ile bağlantıya adanmış basitleştirilmiş bir PCB içerir.

STM32F407 MBHP durumunda, CPU bir yardımcı kart olarak kullanılan, ST tarafından yapılan ve geliştirme kartı olarak satılan (ST tarafından STM32F4 Keşfi) bir modüle monte edilir.[8] Son kullanıcının SMD bileşenleriyle uğraşması gerekmez, yardımcı kart standart 0.1 "konektörlere monte edilir[9]

Eksiksiz çözümler

Bu noktada, tam olarak belgelenmiş 11 projenin yanı sıra topluluk tarafından oluşturulan çok sayıda kullanıcı projesi bulunmaktadır. Resmi projeler aşağıdaki gibidir:

  • MIDIbox SEQ V3:

16 Canlı Adım ve Morph Sıralayıcı + Gelişmiş Arpej Oluşturucu

  • MIDIbox SID V1:

MIDI ile kontrol edilebilen Donanım Sentezleyici, MOS Teknolojisi SID Commodore 64/128 ile birlikte gönderilen (MOS6581) ses yongası

  • MIDIbox FM V1:

90'ların başındaki Soundblaster (uyumlu) ses kartlarından bilinen ünlü FM seslerini üretmek için Yamaha YMF262 ses yongasına (OPL3 olarak da bilinir) dayalı donanım sentezleyici

  • MIDI Birleşme V1:

İki ayrı MIDI girişini tek bir çıkışta birleştirir

  • MIDI Yönlendirici V1:

Çeşitli MIDIbox'ları tek bir MIDI portuna yönlendirir

  • MIDI İşlemci:

MIDI olaylarını almak ve iletmek için temel işlevsellik sağlar

  • MIDIbox CV

Gibi voltaj kontrollü cihazları sürmek için CV ve geçit çıkışları sağlar. analog modüler sentezleyiciler

  • MIDIbox 64:

Tam teşekküllü 64 kanallı MIDI denetleyicisi

  • MIDIbox 64E V2:

MIDIbox 64'ün genişletilmiş versiyonu

  • MIDIO128 V2:

MIDIO128 arayüzü, 128 adede kadar dijital çıkış pini sürmek ve MIDI aracılığıyla 128 adede kadar dijital giriş pini üzerinde tepki vermek için kullanılır.

  • MIDIbox LC V1:

MIDIbox 64 / 64E'ye alternatif

  • MIDImon V2:

MIDI kablosu üzerinden iletilen olayları okunabilir bir biçimde raporlar

Ayrıca bakınız

Referanslar

  1. ^ "Thorsten Klose", SynthDIY
  2. ^ Thorsten Klose web sitesi, "MIDIBOX.org", uCApps.de
  3. ^ "Nesnelerin İnterneti uzantıları olan gömülü sistemler için pazar lideri RTOS (Gerçek Zamanlı İşletim Sistemi)". FreeRTOS. Alındı 2017-03-09.
  4. ^ "MIDIbox, RTP-MIDI'ye gider ... - Tasarım Kavramları - MIDIbox Forumu". Midibox.org. Alındı 2017-03-09.
  5. ^ [1]
  6. ^ "MIOS8 Değişiklik Günlüğü". UCApps.de. Alındı 2017-03-09.
  7. ^ "MidiBox SammichSID | Vintage Synth Explorer". Vintagesynth.com. Alındı 2017-03-09.
  8. ^ "STM32F4DISCOVERY - STM32F407VG MCU ile keşif kiti * Yeni sipariş kodu - STMicroelectronics". St.com. Alındı 2017-03-09.
  9. ^ "BEB DigitalAudio ana sayfası". Beb.digitalaudio.free.fr. Alındı 2017-03-09.

Dış bağlantılar