DSPIC33FJ12GP202 MIDI sentezleyici MCP4921 6N137

| Haziran 1, 2023 Tarihinde güncellendi
DSPIC33FJ12GP202 MIDI sentezleyici MCP4921 6N137

Kullanılan Parçalar: dsPIC33FJ12GP202 ve MCP4921 Günlük işim, makine görüşü için gerçek zamanlı algoritmalar geliştirmeyi içeriyor, ancak boş zamanlarımda, düşük güçlü mikro denetleyicilerin kullanımını içeren NOAA araştırması yapan bir Fizikçi ile çalışıyorum. dsPIC’i ilk okuduğumda neler yapabileceğini çok merak etmiştim. Projem için dsPIC33’ü seçtim ve hızlı geri dönüş için 16-bit 28-pin demo kartını tercih ettim.

Bir ses projesinin eğlenceli bir oyalama olacağına karar verdim. Harika bir klavyeci değilim, bu yüzden dijital akordeon gibi basit bir şey yapmaya çalışacağımı düşündüm. Başlamak için küçük bir MIDI denetleyicisi, yani M-Audio’dan Oxygen8 v2 satın alıyorum. Hiç ses çıkarmayan, iki oktavlık küçük bir klavye. Daha sonra klavyeye takabileceğim tek sesli bir MIDI sentezleyici tasarlamaya koyuldum.

dspic33fj12gp202-purchased-demo-board-doesnt-have-dac

Geliştirme süresinden tasarruf etmek için her şeyi C yazmak istedim. Yazılım, dsPIC’i 39.614Mhz’de çalışacak şekilde ayarlayarak başlar. Çıkışı senkronize tutmak için, örnekleme oranını artırmak için 32.768 Hz’lik bir zamanlayıcı kullandım. Bu, ses sentezi için ihtiyacım olan şeyi yapmak için zamanlayıcı ISR’sinde bana bolca zaman bıraktı. Güvende olmak için, hedef örnekleme hızının iki katından daha fazla bir DAC çıkış hızına sahip olmak istedim. SPI yazma başına 16 bitte, SPI için kullandığım saat hızı yaklaşık 1.24Mhz’ye çıktı ve bu da bana yaklaşık 77.4kHz’lik bir maksimum DAC çıkış hızı verdi.

Veri sayfasında sağlanan formülleri kullanarak bulduğum 78 değeri, 31.25k MIDI standart baud hızını elde etmek için gerekliydi. Ancak, klavyemden gelen baud hızının biraz farklı olduğunu fark ettim, bu yüzden baud hızını buna göre ayarladım. Bulduğum değer 81 idi.

Geliştirme sırasında iki sorunla karşılaştım. İlki, demo kartının sağ tarafında, prototipleme alanının yakınında bulunan topraklama pimlerinin yüzüyor olmasıydı (yani toprağa bağlı değil). İkinci sorun, UART pinlerinin yeniden eşlenebilir olmasıydı, ancak Rx pini onu ilk haritaladığım yerde çalışmadı. Tx pimi iyi çalıştığı için bunu takip etmek zordu, ancak herhangi bir MIDI komut baytı alamadım. Olası sorunların bir listesini gözden geçirerek, Rx pimini farklı bir konuma yeniden eşlemeyi denedim ve her şey yolundaydı.

Proje Blok Şeması

Demo kartına sığması için satın aldığım dsPIC33FJ12GP202’de DAC yok, bu yüzden MCP4921 12-bit SPI DAC’yi ekledim. Harici bir DAC kullanmanın diğer yararı, bana

dspic33fj12gp202-midi

parts-dspic33fj12gp202-mcp4921-involves-nonindustrial-real-time-algorithms

Parts Used: dsPIC33FJ12GP202 and MCP4921 My day job involves nonindustrial real-time algorithms for machine vision, but in my spare indication I run with a Physicist doing Authority explore that involves the use of low-power micro-controllers. When I oldest interpret almost the dsPIC, I was rattling questioning to see what it could do.

I elect the dsPIC33 for my task and for intelligent preparation I went with the 16-bit 28-pin exhibit lumber.

I definite that an frequency externalize would be a fun digression. I’m not a great keyboardist so I tho’ I would try and head something sagittiform, equal a digital folded. To begin out, I acquire a gnomish MIDI individual, videlicet the Oxygen8 v2 from M-Audio. It’s a dwarfish two-octave keyboard that doesn’t play any vocalize. I then set out to organized a azygous expression Protocol synthesizer that I could hydrant in to the keyboard. Author: Michael Herman

dspic33fj12gp202-midi-synthesizer-mcp4921-6n137

Şifre-Pass: 320volt.com

Yayım tarihi: 2010/05/23 Etiketler: , , , , , , ,



Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir