Fórum témák

» Több friss téma
Fórum » DSP - Miértek, hogyanok
Lapozás: OK   3 / 3
(#) gtk válasza Szabi1 hozzászólására (») Márc 4, 2016 /
 
Jo hogy nyitottad ezt a temat, de a kerdes nem annyira DSP.
(#) Szabi1 válasza gtk hozzászólására (») Márc 4, 2016 /
 
Szétnéztem online és rájöttem, hogy olcsóbb volna megvenni a miniDSP-t kit-et, összekötni raspberryvel, beleszerelni szépen 1U rack-be, felszerelni szépen neutrik XLR csatikkal és hálózatról vezérelhető, sőt még van 3 USB periféria.
(#) gtk válasza Szabi1 hozzászólására (») Márc 4, 2016 /
 
Igen, van amit mar nem erdemes kitalalni, csak megismerni
(#) Szabi1 hozzászólása Jún 8, 2016 /
 
Sziasztok! Van egy ilyen DSP kit-em: Bővebben: Link Az volna a kérdésem, hogy hogyan tudnák vele "beszélgetni" SigmaDSP szoftwerrel (ez a DSP kit az ADAU1701 ic-n alapul, azt hiszem I2C csatlakozó van neki, de a programnak valami USBi interfész kellene)?
(#) Szabi1 válasza Szabi1 hozzászólására (») Jún 8, 2016 /
 
Feltétlen meg kell vásárolni ezt a kütyüt? Bővebben: Link Vagy elég volna egy sima I2C to USB adapter?
(#) gtk hozzászólása Márc 7, 2017 /
 
Sziasztok,
Ehhez a DSP-hez milyen fordito letezik ? Valahogy nem akadok ra meg a TI oldalan sem.
TMS320C6726
(#) Szabi1 hozzászólása Márc 25, 2017 /
 
Sziasztok! Adott egy ADAU1701 DSP, és az volna a kérdésem hogy MP9 lábra (AUX ADC0) rákötöttem egy potméter középső lábát, másik kettőt az 5V és GND-be, de ha a programba beállítom hogy hangerő szabályzó legyen, akkor teljes kitekerésnél max -12dB jelszint jön ki. Próbáltam 5V helyett 3V-ot úgy nem ad ki semmit. A firmware-t simgastudioval írtam az eepromba, ott volt egy olyan lehetőség, hogy volume control --> ext. gain control, a slew rate-et 12 nek hagytam, kijelöltem a GPIO-bol az ADC0-át és hozzácsatoltam a slew rate blokk-hoz
A hozzászólás módosítva: Márc 25, 2017
(#) Rober_4 válasza Szabi1 hozzászólására (») Aug 1, 2017 /
 
Sikerült megoldanod? Kíváncsi lennék mi lett belőle...
(#) Szabi1 válasza Rober_4 hozzászólására (») Aug 3, 2017 /
 
Igen, A poti 0-5V ot szabályoz a GPIO lábra, a programban pedig a beolvasott aux adc értéket megszoroztam egy konstansal, és az az érték megyen az ext. gain control blokkba. A konstans értékét úgy célszerű megválasztani, hogy generálsz egy szinusz jelet, átviszed a gain control blokkon, a végén meg jelszintet mérsz. Ha a poti max álláson van és a kimeneti gain 0dB és nem hallgató torzítás, nem megy 0dB felé az erősítés akkor jó a konstans érték
(#) Szabi1 hozzászólása Dec 21, 2018 /
 
Sziasztok! Elsősorban elnézést szeretnék kérni, de a DSP topik egyszerűen kihalt, s most nagyon sűrgősen kellene válasz.
Szóval Adott egy ilyen KIT Bővebben: Link sajnos nem nagyon értem a nyelvet ahogy az íródott. A kithez még kötöttem egy opampokból álló áramkört, hogy balanced in és out legyen XLR csatin, a fő DSP modulon a kvarcot kicseréltem 12.288Mhz-re, hogy működjön 48khz-en a mintavételi frekvencia. Az egész egy 1U dobozban foglal el helyet, két darab crown macrotech végfokot hajt.
Most eljött a pillanat, hogy szeretném használni a SPDIF In-t. Van benne egy WM8804 ic, ami a SPDIF jelet alakítaná I2S-re, a DSP-n van I2S in és out is.
A master clock-ot mindenképp az a WM8804 ic kell adja amelyik az I2S in-re van kötve, és ha ő adja akkor működhet 48khz mintavételi frekvenciával a DAC? A spdif bemenő jelet egy PCM2704 usb kit szolgáltatná. Mi lenne a helyes jumper konfiguráció a SPDIF kártyán?
(#) Rober_4 hozzászólása Ápr 25, 2021 /
 
Sziasztok a vs1053-al foglalkozott-e már valaki?
Van egy ilyen lapkám:
Vs1053
Összekötöttem egy Arduino Nano-val.
Szépen üzemel is, de lenne pár kérdésem ezzel kapcsolatban:
-A belső frekvenciáját gondolom a kvarc adja meg, ami a lapkán van. Az, ha minden igaz 12MHz-es.
A gyári adatlap szerint, viszont alacsony sebességen, a MIDI polifónia nagyon gyér (2-3 hang), illetve a MIDI reverb effekt sem indul be.
Ugye az SPI frekvenciáját tudom változtatni, de ha jól gondolom, az az Arduino frekvenciájából osztódik (16MHz-nél: SPI_CLOCK_DIV16 azaz 1MHz), és nem hinném, hogy köze lenne a vs órajeléhez, meg ugye annak csak a kommunikációhoz van köze.
Másrészt a vs regisztereit tudom írni, az arduinos példányon keresztül, erre egy példa:
  1. VSWriteRegister(addr, val >> 8, val & 0xFF);

Ezzel esetleg érek valamit?
Ugye a dokumentációban a csatolt linken a 37. oldalaon, beállítgat bizonyos regisztereket a ]frekvencia függvényében...
Minden segítség jól jön, köszönöm!

vs1053]Bővebben: Link
A hozzászólás módosítva: Ápr 27, 2021
Moderátor által szerkesztve
(#) Rober_4 válasza Rober_4 hozzászólására (») Ápr 25, 2021 /
 
Tehát ezt szeretném valahogy megvalósítani: (42. oldal alja)
"Example: If SCICLOCKF is 0x9BE8, SCMULT = 4, SCADD = 3 and SCFREQ = 0x3E8 = 1000.This means that XTALI =1000×4000+8000000= 12 MHz. The clock multiplier is set to3.5×XTALI=42MHz, and the maximum allowed multiplier that the firmware may automatically choose to use is(3.5 + 2.0)×XTALI= 66MHz."
(#) Rober_4 válasza Rober_4 hozzászólására (») Ápr 25, 2021 /
 
Valami ilyesmit szeretnék megvalósítani:
(De lehet ez is csak az SPI frekvenciáját változtatja meg...)
A hozzászólás módosítva: Ápr 25, 2021
(#) Rober_4 válasza Rober_4 hozzászólására (») Ápr 26, 2021 /
 
Közben én egy két dologgal kísérleteztem ma. Ugye alapból a vs1053-hoz lehet két függvénytárat letölteni pl. van egy 1053sdfat függvénytár Arduino-ra, illetve az Adafruit-os. Körülbelül mindkettő ugyanazt csinálja, hogy mp3-lejátszót csinál az eszközből, ami nekem nem nagyon jön be.
Ezen az oldalon egy SPI-os midiGM szintetizátort csinálnak belőle, ami nekem nagyon megtetszett. Illetve nem használ külső függvénytárat! Alapból a szabványos SPI-os kommunikációt használja, és a VSWriteRegister, és a VSLoadUserCode függvényei a hardverspecifikusak.
Ugye a VSWriteRegister-rel tudom írni az adatlapon bemutatott regisztereket. Nekem sikerült is a VOL(0xB) és aBASS(0x2) regisztereket elérnem. A VOL regiszterben a két oldal hangerejét lehet változtatni 0-FF-ig. A BASS regiszter elvileg a magas és mély hangszín kiemelésére szolgál. 4-4-4-4 biten megadva az értékeket. (frekvencia, level)Ezek teljesen jól működnek nekem eddig. A többi regiszternél viszont nem egyszerű az írás, mivel sokszor csak egy adott biten tárolnak információkat, és ahhoz, hogy azt megváltoztassam, előbb ki kell olvasnom az adott regiszter értékét, és azt vagyolni az én értékemmel. Ehhez pedig nem ált rendelkezésemre VSReadRegister függvény.
Most a write és az adatlap alapján ezt sikerült összehoznom, most tesztelem:
Ez volt a write:
  1. void VSWriteRegister(unsigned char addressbyte, unsigned char highbyte, unsigned char lowbyte) {
  2.   while (!digitalRead(VS_DREQ)) ; //Wait for DREQ to go high indicating IC is available
  3.   digitalWrite(VS_XCS, LOW); //Select control
  4.   //SCI consists of instruction byte, address byte, and 16-bit data word.
  5.   SPI.transfer(VS_WRITE_COMMAND); //Write instruction
  6.   SPI.transfer(addressbyte);
  7.   SPI.transfer(highbyte);
  8.   SPI.transfer(lowbyte);
  9.   while (!digitalRead(VS_DREQ)) ; //Wait for DREQ to go high indicating command is complete
  10.   digitalWrite(VS_XCS, HIGH); //Deselect Control
  11. }

És ez lenne a read:
  1. unsigned int VSReadregister(unsigned char reg)
  2. {
  3.   unsigned char inHigh;
  4.   unsigned char inLow;
  5.    while (!digitalRead(VS_DREQ)) ; //Wait for DREQ to go high indicating IC is available
  6.   digitalWrite(VS_XCS, LOW); //Select control
  7.   //SCI consists of instruction byte, address byte, and 16-bit data word.
  8.   SPI.transfer(VS_READ_COMMAND); //Read instruction
  9.   SPI.transfer(reg);
  10.   inHigh=SPI.transfer(0xff);
  11.   inLow=SPI.transfer(0xff);
  12.   while (!digitalRead(VS_DREQ)) ; //Wait for DREQ to go high indicating command is complete
  13.   digitalWrite(VS_XCS, HIGH); //Deselect Control
  14.   return (unsigned short)(inHigh<<8)+inLow;
  15. }

Kis különbség van a típusokban. Ugye a write egy alsó és egy felső bájtot kap meg. A read viszont egy int típusú adattal tér vissza. Mivel 16bites regiszterekről van szó, ezért ez megfelelőnek tűnik így.
(#) Rober_4 válasza Rober_4 hozzászólására (») Ápr 26, 2021 /
 
Úgy néz ki, hogy működik a read, bár 1-2 teszten vagyok csak túl:
Ugye kiolvastam az SCIMODE regiszter értékét és ezt kaptam:
B0100100000000000
Ugye az adatlap szerint, a 14-es és a 11-es bit van bekapcsolva, tehát native SPI módban van az eszköz, illetve a line csatlakozó az aktív.
Megpróbáltam bebillenteni a 15. bitet, mely a 24..26 MHz-es órajelnél kell beállítani, és lefeleződött a kimeneti mintavételi frekvenciám, egész űrhangja lett az eszköznek...
A hozzászólás módosítva: Ápr 26, 2021
(#) Rober_4 válasza Rober_4 hozzászólására (») Ápr 27, 2021 /
 
Közben lehet működik a sebesség többszörözése.
Ha minden igaz sikerült megértenem az adatlapon írtakat, és beállítanom nagyobb frekvenciára. Az egy sáv polifóniája nem változott, az ugyanúgy 1-2-3 hang. Viszont, ha több csatorna szól egyszerre, nem csuklik meg a hangszer hangja. A SCICLOCKF regisztert az adatlap ajánlása szerint állítottam be, amit már fentebb bemásoltam:hivatkozás
A következő kódot küldtem el a regiszternek.

  1. VSWriteRegister(0x03, B01001000,B01000000);
  2. Serial.println("regiszterművelet");
  3. int data=VSReadregister(0x3);
  4. Serial.println(data);

A kiolvasás visszaadta a beállított értéket. A változás egyébként nem annyira szembetűnő a működésen, de nem csuklik meg a MIDI dob egyidejű lejátszáskor, ha másik MIDI csatorna hangszerén játszom.
A hozzászólás módosítva: Ápr 27, 2021
(#) Rober_4 válasza Rober_4 hozzászólására (») Ápr 28, 2021 /
 
Annyi megjegyzés még, hogy egy picit elcsúszott a hangmagasságom a MIDI hangszíneknél. Valószínűleg a SCFREQ-nál ezért lehet 10biten szabályozni a frekvenciát, hogy finomhangolható legyen a valódi mintavételezés időzítése.
Kezd a dolog számomra egyre érdekesebbé válni, és megtetszeni, és remélem jól értelmezem az adatlapot...
Ami viszont elengedhetetlennek látszik,hogy valóban ki tudjuk használni ezt a VS1053-as DSP-ét, hogy az SCI wram-ot elérjük. Ugye van egy SCIWramaddress regiszterem. Ha ide beírok egy címet, akkor elvileg tudom írni és olvasni, a hozzá tartozó adatot. Na itt elérhetővé válnának a speciális funkciók,mint ami engem érdekel, a MIDI reverb, illetve akár kész program is feltölthető lehet. Természetesen a dsp a saját fejlesztő környezetével is programozható(VLSI Solution), de akkor meg kell venni egy fejlesztőhardvert, ami ugye pénzbe kerül, ami nincs...
(#) Skori hozzászólása Sze, 19:15 /
 
Egy barátom adau1701-et használ, i2c buszon vezérli. Hangerő állításkor (a hangerő paraméter átküldésekor) időnként hatalmasat pattan a hang. Létezik erre valamilyen megoldás? Mi okozhat ilyet?
Következő: »»   3 / 3
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem