Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
Witam.
W Internecie mo¿na znale¼æ du¿o przyk³adów, jak odtwarzaæ przez mikrokontroler d¼wiêk takimi sposobami, jak PWM czy DAC na interfejsie I²S. Niestety, ale jako¶æ d¼wiêku PWM-a mnie nie zadowala, a zewnêtrzny DAC nie wchodzi³ w grê, poniewa¿ mój mikrokontroler nie ma wspomnianego wy¿ej interfejsu. Nagle mnie ol¶ni³o, gdzie¶ mam star± kartê Sound Blaster 16!
W Internecie nie ma ¿adnego przyk³adu, jak oprogramowaæ taki sprzêt przez µC. Zatem zabra³em siê za pisanie kodu, za³o¿y³em na elektrodzie ten temat, lecz spotka³ siê raczej z ma³ym zainteresowaniem. Od ostatniego postu wiele siê zmieni³o i teraz mam obs³ugê DMA oraz 16-bitow± jako¶æ przy maksymalnym próbkowaniu. Jako no¶nik danych wykorzystujê kartê SD, obs³uguje j± biblioteka FatFs. Do odtwarzania wykorzysta³em dwa bufory, które zmieniam w przerwaniu od karty.
Schemat po³±czeñ:
Na schemacie omin±³em takie oczywiste rzeczy, jak kondensatory czy rezystory podci±gaj±ce. Jak widaæ - zosta³y mi tylko cztery wolne piny, nie licz±c jeszcze tych od interfejsu JTAG. PA9 i PA10 zamierzam wykorzystaæ do UARTu, a przyciski zrobiæ na pinie PB0, gdzie mam przetwornik ADC.
Program na razie wyszukuje kolejne pliki na karcie pamiêci i odtwarza je w takiej kolejno¶ci, jak s± zapisane w tablicy plików. Pozosta³o tylko napisanie obs³ugi uk³adu OPL3 (uk³ad do syntezy FM). Kodem siê oczywi¶cie podzielê, liczê na wszelkie uwagi dotycz±ce zarówno kodu, jak i po³±czeñ z kart±. Dziêkujê za uwagê.
Do moderatorów: Temat jest przedstawieniem kodu, a nie prezentacj± prototypu (który zreszt± dzia³a).
Re: Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
Witam Mam takie pytanie czy to bêdzie dzia³aæ na STM32F100RBT6B na p³ytce discovery? Mowa by³a o braku kondensatorów i rezystorów chodzi tylko te z karty SD czy s± jeszcze jakie¶ na ISA? Jeszcze jedno pytanie czy to bêdzie dzia³aæ z ka¿dym SB16? Pytam o to wszystko bo jestem ciekaw czy uda³o by mi siê to odpaliæ u siebie w domu :)
Ps. Czekam na film :)
Re: Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
Powinno dzia³aæ z ka¿dym SB16. Ogólnie to wszystkie piny z³±cza ISA podpina³em bezpo¶rednio. A jak± maksymaln± czêstotliwo¶æ taktowania ma ten twój µC? Schemat mojej p³ytki w za³±czniku.
Re: Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
W swoim projekcie mam czêstotliwo¶æ 72MHz, niestety po zjechaniu do 24 program siê nie odpala. Zawsze mo¿esz spróbowaæ przetaktowaæ swój uk³ad. Mój przy kwarcu 8MHz osi±ga maksymalnie 128MHz.
Re: Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
Ok dziêki za informacje, w±tpiê aby mi siê uda³o przetaktowaæ uP 3 razy. Nie pozostaje mi nic innego jak inny, ale to mnie nie powstrzyma bo to siê wydaje naprawdê bardzo interesuj±ce :)
Re: Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
Pomys³ fajny. Magistrala ISA jest do ogarniêcia i mo¿na uzyskaæ w ten sposób tanim kosztem ciekawe peryferia. Co do DACa pod³±czanego po I2S to mo¿na kreatywnie u¿yæ spi i w przerwaniu odwracaæ stan linii mówi±cej który kana³ jest przesy³any. Takie rozwi±zanie ma tak± zaletê, ¿e jest szeroki wybór scalaków (same dac, dac + wyj¶ciowy amp s³uchawkowy itd.) a pinów zu¿ywa nieporównywalnie mniej.
Re: Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
Interesuj±cy i niestereotypowy projekt. Nie znam siê na tym kompletnie i mo¿e moje pytanie zabrzmi g³upio, ale czy da³oby siê wykorzystaæ takiego starego SB16 jako zewnêtrzn± kartê d¼wiekow± USB do laptopa (czyli jak s±dzê trzeba by by³o zrobiæ odpowiedni uk³ad konwertera USB na ISA)? Oczywiscie te¿ by³aby to tylko sztuka dla sztuki.
Re: Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
Ja to bym chcia³ konwerter USB<->ISA albo jeszcze lepiej USB<->PCI .... bardzo by siê przyda³o co¶ takiego czasem ;) Projekt równie warto¶ciowy z naukowego punktu widzenia co szalony - kawa³ dobrej roboty ! Dawno nie widzia³em niczego ciekawego na tej elektrodzie a tu proszê :) Do wszystkich tych co chcieliby napisaæ bez sensu, sztuka dla sztuki, mo¿na pro¶ciej. Pewnie ze mo¿na. Mo¿na w ogóle nie robiæ nic tylko kupiæ w markecie odtwarzacz mp3 za 10z³ i te¿ bêdzie gra³o ale nie na tym to polega.
Re: Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
Czy jeste¶ w ten sposób w stanie obs³ugiwaæ i inne karty na ISA? Mo¿e u¿ywaj±c wiêkszego procesora by¶ by³ w stanie obs³u¿yæ np. kartê VGA, sieciow± itp tak ¿eby docelowo stworzyæ sobie ma³y komputerek ;).
Re: Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
ghost666 wrote:
Mo¿e u¿ywaj±c wiêkszego procesora by¶ by³ w stanie obs³u¿yæ np. kartê VGA, sieciow± itp tak ¿eby docelowo stworzyæ sobie ma³y komputerek
Takie rzeczy mo¿na obs³u¿yæ na AVR, wiêc?
thereminator wrote:
czy da³oby siê wykorzystaæ takiego starego SB16 jako zewnêtrzn± kartê d¼wiekow± USB do laptopa
Jest to mo¿liwe do wykonania, ba, nawet na tym samym uC. Problemem bêdzie tylko napisanie sterownika pod PC. Wystarczy przesy³aæ do karty np. 1024 próbek. Karta po ich odtworzeniu wy¶le dane do PC by ten ponownie wys³a³ próbki - i tak w kó³ko.
MarcinBukat wrote:
Co do DACa pod³±czanego po I2S to mo¿na kreatywnie u¿yæ spi i w przerwaniu odwracaæ stan linii mówi±cej który kana³ jest przesy³any.
Prawdê mówi±c wiedzia³em o tym rozwi±zaniu lecz w moim sklepie dostanie takich uk³adów graniczy z cudem a przez internet nie chcia³o mi siê kupowaæ. Mo¿na wybebeszyæ kartê z uk³adu YAC516 ale po co skoro karta sprawna?
ghost666 wrote:
Czy jeste¶ w ten sposób w stanie obs³ugiwaæ i inne karty na ISA?
Re: Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
Mam pytanko, czy takie co¶ bêdzie wspó³pracowaæ z odtwarzaczem i czy np nada siê jako lepsze ¼ród³o dla s³uchawek? Albo np. wsparcie ¼ród³owe przed wzmacniaczem celem poprawy jako¶ci d¼wiêku?
Re: Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
Bardzo ciekawe wykorzystanie starej karty d¼wiêkowej :-)
Przez d³ugi czas interesowa³o mnie, czy trzeba du¿o sobie komplikowaæ ¿ycia, by zainicjowaæ kartê (czy wszystko de facto ogranicza siê do wys³ania komend np. ustawienia g³o¶no¶ci, barwy d¼wiêku)
Jak pamiêtam z ery PCtów z non-PnP BIOS, karty te trzeba by³o inicjowaæ przez narzêdzie intel PnP Manager lub CTCM/CTCU, ale to ju¿ poza tematem...
Z uk³adem yamahy bêdziesz mia³ troszkê wiêcej trudu. Popatrz sobie mniej-wiêcej na kody ¼ród³owe trackerów np. EdLib 1.05 czy te¿ Adlib Tracker II.. Sztuk± dla sztuki by³oby wykorzystanie w³a¶nie tego ma³ego scalaka jako syntezatora 9/18 kana³owego...
Re: Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
Kiedy¶ w poszukiwaniu taniego ¼ród³a przetworników AD i DA zawêdrowa³em na p³ytê g³ówn± PC-ta. Mo¿na na niej znale¼æ zintegrowan± kartê d¼wiêkow± zamkniêt± w jednym uk³adzie scalonym, ca³o¶æ ma jedn± zasadnicz± zaletê, w internecie mo¿na znale¼æ PDF-a z dok³adnym opisem tych scalaków.
Takim doskona³ym przyk³adem jest ALC202:
--Single chip audio CODEC with high S/N ratio (>90 dB).
20-bit DAC, 18-bit ADC.
Stereo full-duplex CODEC with independent and variable sampling rate.
4 analog line-level stereo input with 5-bit volume control : LINE_IN,CD,VIDEO,AUX
2 analog line-level mono input : PC_BEEP,PHONE_IN.
Mono output with 5-bit volume control.
Stereo output with 6-bit volume control.
2 MIC inputs: Software selectable.
Power management and enhanced power saving.
3D Stereo Enhancement
External Amplifier power down capability.
Multiple CODEC extension.
Compliant with AC’97 2.2 specification
50mW/8W amplifier at LINE/ Headphone output
Jack-detect function to mute LINE/MONO/HP output, to control S/PDIF output.
Supports S/PDIF out is compliant with AC’97 rev2.2.
2 GPIO pins.
14.318MHzà24.576MHz digital PLL.
Supports double sampling rate (96KHz) of DVD audio playback.
+30dB boost preamplifier for MIC input.
Power support: Digital: 3.3V Analog: 3.3V/5V
Standard 48-Pin LQFP Package
Re: Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
RSP, zainteresowa³e¶ mnie tymi uk³adami. U siebie znalaz³em takie jak CMI9739A, AD1980, AD1881A i ALC260. Z tego co czyta³em wychodzi na to, ¿e wszystkie obs³uguje siê przez co¶ podobnego do SPI czy I2S, niejaki AC-Link. Wygl±da na prosty lecz martwi mnie jak z mikrokontrolera uzyskaæ ci±g³y sygna³ 12.288MHz. W dodatku trzeba przesy³aæ próbki 20 bitowe.
Re: Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
Ciekawy temat, mo¿e jak bêdê siê nudzi³ to odkopiê którego¶ soundblastera w pracy... a mo¿e z jak±¶ inn± kart± siê spróbujê pobawiæ 8-)
@KJ taki konwerter usb<-> isa jak pokaza³ Lazer mogê udostêpniæ (jak chcesz to pisz na @). U¿ywa³em go kiedy¶ do swoich celów a od paru lat le¿y i siê kurzy. Swego czasu my¶la³em nawet, ¿eby spróbowaæ na jego podstawie zmontowaæ drugi, ale przesta³ byæ potrzebny i temat siê sam zamkn±³
Re: Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
Witam!
Projekt ciekawy... bo nietypowy ;). W sumie nie wiele mi mówi ca³y ten pomys³, ale mam pytanie: po co w tej karcie (jak i w kilku innych z jakimi siê spotka³em) jest z³±cze IDE ? Zawsze siê zastanawia³em, ale nie mam bladego pojêcia...
Re: Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
marti_944 wrote:
mam pytanie: po co w tej karcie (jak i w kilku innych z jakimi siê spotka³em) jest z³±cze IDE ? Zawsze siê zastanawia³em, ale nie mam bladego pojêcia...
pgoral wrote:
czêsto by³o potrzebne by podpi±æ CD-ROM co czyni³o z komputera komputer multimedialny - d¼wiêk, CD-rom, etc. Taka potrzeba rynku w pewnym okresie.
kiedys plyta glowna nie miala zadnego interfejsu poza interfejsem klawiatury - podlaczenie urzadzen takich jak FDD, HDD wymagalo posiadania karty wkladanej w jeden ze slotow, zazwyczaj istniejace rozwiazania to byla tzw karta combo posiadajaca 2 porty szeregowe, jeden port drukarkowy, interfejs FDD i port HDD (czasem dwa), posiadanie przez karte dodatkowego portu dla podlaczenia CD-ROM bylo czesto jedynym sposobem korzystania z CD-ROM zwlaszcza ze w poczatkowym okresie CD-ROM korzystaly z niestandardowych rozwiazan i wymagaly specjalnych portow/kart - czesto na kracie bylo kilka roznych portow - w roznym standardzie - np CD-ROM Mitsumi zdaje sie 1x i 2x uzywaly wlasnego interfejsu a tych interfejsow bylo 2 albo 3 rodzaje plus wlasnie ATA/IDE.
Re: Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
No tak, to nie moje czasy, jednak bardzo interesuj±ce. Wtedy kszta³towa³y siê znane dzi¶ standardy. Je¶li dobrze rozumiem - to z³±cze pe³ni³o funkcjê zwyk³ego z³±cza IDE ? Na takiej karcie by³ jaki¶ kontroler ?
Re: Sound Blaster 16 + STM32, czyli co nuda robi z cz³owiekiem
pandy wrote:
posiadanie przez karte dodatkowego portu dla podlaczenia CD-ROM bylo czesto jedynym sposobem korzystania z CD-ROM zwlaszcza ze w poczatkowym okresie CD-ROM korzystaly z niestandardowych rozwiazan i wymagaly specjalnych portow/kart - czesto na kracie bylo kilka roznych portow - w roznym standardzie - np CD-ROM Mitsumi zdaje sie 1x i 2x uzywaly wlasnego interfejsu a tych interfejsow bylo 2 albo 3 rodzaje plus wlasnie ATA/IDE.
W sumie nie spotka³em siê z napêdami CD, które mia³y by jakie¶ problemy na kartach rozszerzeñ ale CD-ROM najczê¶ciej pod³±cza³em pod kartê d¼wiêkow±, która posiada³a odpowiedni kontroler.
marti_944 wrote:
W sumie nie wiele mi mówi ca³y ten pomys³, ale mam pytanie: po co w tej karcie (jak i w kilku innych z jakimi siê spotka³em) jest z³±cze IDE ?
Karta rozszerzeñ w czasach "ISA" posiada³a tylko jeden port IDE. Karta d¼wiêkowa nie by³a zintegrowana z p³yt± g³ówn±:). Faktem jest, ¿e w tych czasach dyski twarde by³y strasznie drogie, ale je¶li kto¶ chcia³ pod³±czyæ dwa dyski twarde to nie móg³ pod³±czyæ CD-ROM-u. Druga sprawa, ¿e dysk twardy trzeba by³o konfigurowaæ w BIOS-ie (tj. wpisywaæ jego parametry w BIOS-ie). Podejrzewam, ¿e producenci kart d¼wiêkowych zauwa¿yli problem tylko dwóch urz±dzeñ IDE i dziêki temu teraz mo¿emy pod³±czyæ co najmniej 4 urz±dzenia IDE/SATA:).
Bardzo przepraszam za OFF-TOPIC. Temat bardzo mnie zainteresowa³ i ¶ledzê wypowiedzi w tym temacie. Posiadam wiele p³yt g³ównych z ró¿nymi zintegrowanymi uk³adami "d¼wiêkowymi" ró¿nych firm oraz karty ISA i bardzo chêtnie poczyta³bym jakie zastosowania autor w ramach "nudy" ma dla podobnych uk³adów.