Teade

Collapse
No announcement yet.

Arvutile kõlareid

Collapse
X
 
  • Filter
  • Kellaaeg
  • Show
Clear All
new posts

    Vs: Arvutile kõlareid

    Esmalt postitatud moi poolt Vaata postitust
    Samas pole neist eriti mingeid objektiivseid mõõtmisi.
    TAS5508 kivil on toitega volumi juhtimise võimalus ja väljund, saaks kasutada kui reguleeritav toide juurde ehitada.
    Ühe mõõtmise leidsin, seal on TAS5508 ja TAS5548 PWM muunduriga võimudel suurusjärgu võrra paremad THD numbrid kui STA326 võimudel:

    Comment


      Vs: Arvutile kõlareid

      Proovisin siis Arduinoga I2C konfiguratsiooni saata STA350 kivile. Programmeerimine on Arduinos täitsa tehtav ilma enne sügavamalt seda teadmata, IDE ja üldse ülesehitus on palju lihtsam kui STM32 puhul ja netist leiab näiteid ning kirjeldusi päris palju.
      Tööle aga ikkagi ei saanud.
      Mingi raudvara tasemel probleem on vist.
      STA ei vasta, et masteri (Arduino) poolt tulnud aadress on kohale jõudnud (ei saada õigesti ACK/NACK bitti), sealt edasi Arduino infot enam välja ei saada. Mul on olemas ka USB-I2C konverter, sellega kõik töötab. Kui nende mõlemaga välja saadetavat signaali loogika analüsaatoriga vaadata, siis Arduino puhul leiab analüsaator, et masteri välja saadetud aadress on 0x38 (bin 111000), see mis paberite järgi on STA aadress aga STA ACK bitti ei saada. USB-I2C muunduri I2C signaalist aga leiab analüsaator, et masteri välja saadetud aadress oleks nagu 0x1C (bin 11100), ehk üks 0 on kadunud lõpust aga kõik toimib, STA saab sellest aru kui aadressist 0x38 ja saadab ka ACK biti.
      Pildid ka, esimene töötav USB-I2C, teine Arduinost.



      viimati muutis kasutaja moi; 03 m 2019, 10:58.

      Comment


        Vs: Arvutile kõlareid

        Tuttav teema. Aadress ja saadetav baid on ühe biti võrra nihkes. Nimelt loe i2c tööpõhimõtet. aadressist 111000 on tegelikult aadress 11100 ja viimane 0 on write käsu bitt.
        Korrektne on rääkida aadressist 11100 millele pannakse see 0 bit juurde. Aga osad libraryd ei tee seda vaid pead ise saatma esimese data baidi ja selle kokkupanekul vaja aadress shl 1 ja lisata 1 lugemiseks ja 0 kirjutamiseks. shl asenda arduino käsuga, ise kirjutan pascalis aga probleem on sama.
        viimati muutis kasutaja urmas78; 03 m 2019, 17:32. Põhjus: bitiviga

        Comment


          Vs: Arvutile kõlareid

          Mis seal elektriliselt toimub? Liiga tugev pullup? Analüsaator loeb küll nullid-ühed aga kas ka Arduino?

          Siin on väike arutelu sarnasel teemal koos koodinäidetega.

          Edit: Siin räägib tegelt päris asjast:

          Note

          There are both 7- and 8-bit versions of I2C addresses. 7 bits identify the device, and the eighth bit determines if it's being written to or read from. The Wire library uses 7 bit addresses throughout. If you have a datasheet or sample code that uses 8 bit address, you'll want to drop the low bit (i.e. shift the value one bit to the right), yielding an address between 0 and 127. However the addresses from 0 to 7 are not used because are reserved so the first address that can be used is 8. Please note that a pull-up resistor is needed when connecting SDA/SCL pins. Please refer to the examples for more informations. MEGA 2560 board has pull-up resistors on pins 20 - 21 onboard.
          Toidan trolle!

          Comment


            Vs: Arvutile kõlareid

            Antud juhul ei peaks nagu olema see aadressi pikkuse küsimus. Nii STA350 kui Arduino Wire teegi kohta on info, et mõlemal on aadress 7 bitine. Loogika analüsaatoris on ka valik, kas 7 või 11 bitine aadress, ma valisin 7 ja saingi sellised imelikud tulemused. Kas siis vigane on ka loogika analüsaator? USB-IC2 kaudu läheb softis aadressina ikka 0x38.
            Kui pilte vaadata, siis on seal ka üks oluline vahe näha, Adruino SCL esimene 0 on oluliselt lühem kui USB-IC2 muunduri oma, kas sealt ei või olla, et Arduinos on SDA ja SCL natuke halvemini sünkroonis?

            Elektriliselt toimub seal umbes-täpselt see mida loogika analüsaator näitab, analüsaator lihtsalt veab 1-d ja 0-id ilusaks kandiliseks, nii kandilised na ossis ei ole ja pakettide viimased biti on natuke madalamate nivoodega

            Comment


              Vs: Arvutile kõlareid

              Tegin loomkatse, lasin Arduinost kirjutada aadressile 0x1C ja tundb, et töötab sellisel moel. STA350 saadab ACK biti ja Arduinost tulevad andmed edasi ja nad jõuavad STA350 poolel õigesti kohale, õigesse registrisse.
              Väike kahtlus ainult jääb, et kui Arduino Wires on selline viga, siis mis vigu seal veel on ja miks ikkagi Loogika analüsaator neid bitte nii interpreteerib? Tegelikult on ka teine võimalust, et vigane on STA350 andmeleht ja USB-I2c soft või olen nendest valesti aru saanud. Seda, et STA350 andmelehes on kalasid sees, olen ka leidnud, hea on vahest Apogee ja vanemate STA32x andmelehti lugeda, seal mõningaid vigu ei ole aga on jälle mõned teised vead. Natuke teeb ettevaatlikuks ka pildil olev üks kitsas piik SCL aadressi baidi lõpus.

              viimati muutis kasutaja moi; 03 m 2019, 17:09.

              Comment


                Arvutile kõlareid

                0x38 on mitte aadress vaid esimene data bait. Seda nimetatakse ka kui 8bit aadressiks, tegelikult on see eksitav natuke, aga väga praktiline moodus.
                Tegelik i2c aadress on 0x1C. See on 7bit aadress. Välja saatmisel tuleb see aadress teha shl 1 ja see nr muutbki 0x39 lugemisel ja 0x38 kirjutamisel. Seda teeb üldjuhul library.
                Antud juhul arduino tahab vist saada 7bit aadressi, sa annad 0x38, tehakse tehe shl 1 ja saadakse 0x70 mis on ossi alumisel pildil.

                Seega lahendus anna arduinole aadressiks 0x1c ja peaks käima hakkama. Sellest tehakse shl 1 ja saadakse 0x38 mis peaks olema korrektne. Testi.

                Esmalt postitatud moi poolt Vaata postitust
                Natuke teeb ettevaatlikusk ka pildil olev üks kitsas piik SCL aadressi baidi lõpus.
                See piik on normaalne. See on hetk kus master (arduino ) lülitab data üheks ja slave (sta350) vastab ask.

                I2c aadressidega on palju segadusi, tihti on kirjas õige aadress, aga mõnikord ( nagu ka siin) on antud esimene data bait. Need ongi tegelikult erinevad selle ühe biti võrra (read/write). Aga kui ükskord oled i2s probleemi läbi närinud siis teine kord on juba selge mida proovida.

                Esmalt postitatud moi poolt Vaata postitust
                Tegelikult on ka teine võimalust, et vigane on STA350 andmeleht ja USB-I2c soft .
                Tegelikult ei ole vigane. Usb i2c seade vajab mitte aadressi vaid esimest data baiti mis sisaldab 7bit aadressi ja 1bit read/write bitti. Selle kokkupanekul ongi esimene data bait 0x38. Soft ei saa aru kas vaja on lugeda või kirjutada ja valik jäetakse programmeerijale. See on arvamus, ei ole ise seda softi kasutanud.
                viimati muutis kasutaja Scott; 04 m 2019, 06:09. Põhjus: järjestikpostitused kokku (3 tk)

                Comment


                  Vs: Arvutile kõlareid

                  No jah, siis hakkab nagu kohale jõudma, et tegelikult ei ole olemas 7 või 8 bitist IC2 aadressi vaid erinevates kohtades räägitakse erinevatest asjadest ja nii mitmelgi neti lehel ning kivide andmetes on need segamini kui pudru ja kapsad.
                  Kui orginaal I2C spetsifikatsiooni lugeda https://www.nxp.com/docs/en/user-guide/UM10204.pdf , siis seal on juttu ainult 7 ja 10 bitistest aadressidest.
                  Seal USB-I2C softis on muide aadress üldine 8-bitine ja lugemiseks või kirjutamiseks on omaette käsud/nupud, seega pehmelt öeldes segane korraldus aga kuna mul ta töötas STA350-ga kohe esimesel katsetusel 0x38 aadressiga, siis jäigi mulje, et nii peabki olema ja see 0x38 ongi see päris 7-bitine aadress.
                  viimati muutis kasutaja moi; 03 m 2019, 17:42.

                  Comment


                    Vs: Arvutile kõlareid

                    Jah. 8bit pole olemas. See on data bait mis saadetakse välja ja kuna see on kokku pandud aadressist ja read/write bitist siis mõni nimetab seda baiti kah aadressiks aga tegelikult on see siiski data bait.

                    Comment


                      Vs: Arvutile kõlareid

                      Lõpuks peale üsna pikka pusimist sain käima kõlari STA350 sisemiste filtrite ja EQ-de peal. Andmeleht on sellel muidugi üsna suur mõistatus just nende biquadide koha pealt, üldse ei imesta, et keegi selle peal midagi nende biquad ekude ja filtritega teinud ei ole.
                      Mingi kala on ka Arduinost üle IC2 kirjutamisega, alati ei jõua kogu info kohale ja midagi läheb kaduma, samas arvutist USB-I2C on väga stabiilne.
                      viimati muutis kasutaja moi; 06 m 2019, 23:29.

                      Comment


                        Vs: Arvutile kõlareid

                        Sul on seda jonni ikka üksjagu ennast sellest kõigest läbi närida
                        Ma mingi hetk ka diagonaalis lugesin spekki, paistis, et see eq värk on kirjutatud ainult signaalitöötlemise teooriaga kursis olijale.
                        viimati muutis kasutaja Scott; 08 m 2019, 04:31. Põhjus: eelnevat postitust ei pea täielikult tsiteerima
                        Toidan trolle!

                        Comment


                          Vs: Arvutile kõlareid

                          Seal on probleem ikka rohkem selles, et info on kas täitsa vigane, kaheti/kolmeti tõlgendatav või üldse puudub. Otsest signaaliteooriat vaja ei lähe kui tead, mis on biquad DSP puhul. Nende biquad koefitsentide sellisesse vormi saamine, et nad oleks nagu STA350 neid tahab saada koos selle vormi välja mõistatamisega oli kõige keerulisem.

                          Comment


                            Vs: Arvutile kõlareid

                            Vahepeal sai ka seda Arduino ja STA350 I2C ühilduvust uuritud. Põhiline probleem on selles, et Arduino on 5 V pealt töötav, STA350 loogika pool töötab aga 3,3V peal. Lubatud maksimum sisendite pingeid pole STA350 kohta antud aga nagu USB-I2C kasutamise praktikast selgub 5V teda ära ei tapa (USB-I2C moodulil on sisemised 4,7k pull-up takistid 5V peale). Arduino 328P prose PC4 ja PC5 sisendite/väljundite kohta on aga info segane, päris aru ei saagi kuidas neid peaks kõige parem olema 3,3V loogikaga ühendada:
                            Port C is a 7-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The PC5...0 output
                            buffers have symmetrical drive characteristics with both high sink and source capability. As inputs, Port C pins
                            that are externally pulled low will source current if the pull-up resistors are activated. The Port C pins are tristated
                            when a reset condition becomes active, even if the clock is not running.

                            Hetkel on Arduino PC5 ja PC4 pull-upiga 3,3V peale ühendatud ja praktika näitab, et on mõningaid probleeme.
                            On kellelgi mingeid ideid?

                            Comment


                              Vs: Arvutile kõlareid

                              Esmalt postitatud moi poolt Vaata postitust
                              Hetkel on Arduino PC5 ja PC4 pull-upiga 3,3V peale ühendatud ja praktika näitab, et on mõningaid probleeme.
                              On kellelgi mingeid ideid?
                              Level shifter?

                              https://www.yeint.ee/elektroonika-1/arendusvahendid/arendusplaadid/konverterid-2/txb0104-4-kanaliga-kahesuunaline-nivookonverter
                              https://playground.arduino.cc/Main/I...lLevelShifter/
                              Toidan trolle!

                              Comment


                                Vs: Arvutile kõlareid

                                Kogu teema käib kõrgelt üle pea, aga igaks juhuks, ega 3.3V Arduino ei aitaks? Näiteks Pro Mini, Due.
                                viimati muutis kasutaja kaspar99; 07 m 2019, 12:15.

                                Comment

                                Working...
                                X