Teade

Collapse

Foorumi reeglid.

Foorumi reeglistik on uuendatud. Palume tutvuda ja arvesse võtta.
See more
See less

MSP430 gurude abi vaja

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

    MSP430 gurude abi vaja

    Tere!
    Kuna olen mikroprotsessorite alal täielik võhik, oleks kohalike gurude abi vaja.
    Eesmärgiks oleks rotary encoder'iga juhitav helivaljuse regulaator, kasutades releesid ja MSP430F2013. Võimalikult voolusäästlik, kuna sooviks proset toita patareilt.
    Olemas on MSP430F2013 target board koos USB development tooliga, IAR workbench, Yahoo tech groupist leitud enkooderi programmi põhi C's. Peale programmi väikest mudimist-kohandamist õnnestus enkooderi osa tööle saada, vastavalt enkooderi kruttimisele muutub muutuja AQB_counter piirides 0 kuni 62 kahe ühiku kaupa.
    Vaja oleks
    1) Väike koodijupp C's, mis teisaldaks muutuja täisarvu prose jalgadele binaarselt, nii et esimene bitt jääks ära.
    Näiteks arv 59 ->
    pin7 pin6 pin5 pin4 pin3
    1 1 1 0 1 (viimane 1 jääks ära)
    2) Mõni aeg peale kruttimist läheks prose sliipi, kuid jalgadele 7-3 jääks loogilised tasemed alles. Ärkaks uuesti enkooderi kruttimisel.

    Kui kellelgi üldse on viitsimist asjaga aidata siis saadaks meiliga või lisaksin siia teemasse manusena IAR projekti.
    Tänud!
    Kolakoguja

    #2
    Vs: MSP430 gurude abi vaja

    1. Nagu ma aru saan, siis soovid kasutada porti 1-te, siin aitab:
    x=x<<1; // Nihutan 1 biti võrra
    x&=62; // Kustutan mittesoovitavad bitid
    P1OUT=x; // Saadan porti
    2. Puhkama saad prose panna lihtsa reaga:
    LPM1;
    kus siis number võib olla 0 ... 4, mis määrab ära mis osad puhkama pannakse, loe andmelehelt, millist reziimi vajad.

    Loodan, et oli abi.
    viimati muutis kasutaja aatom; 25 m 2009, 13:47.

    Comment


      #3
      Vs: MSP430 gurude abi vaja

      Esmalt postitatud aatom poolt
      1. Nagu ma aru saan, siis soovid kasutada porti 1-te, siin aitab:
      x=x<<1; // Nihutan 1 biti võrra
      x&=62; // Kustutan mittesoovitavad bitid
      P1OUT=x; // Saadan porti
      Tundus, et BIT0 muudeti ka?
      Esmalt postitatud aatom poolt
      2. Puhkama saad prose panna lihtsa reaga:
      LPM1;
      kus siis number võib olla 0 ... 4, mis määrab ära mis osad puhkama pannakse, loe andmelehelt, millist reziimi vajad.
      Uurin.
      Esmalt postitatud aatom poolt
      Loodan, et oli abi.
      Suurimad tänud!!!
      Kolakoguja

      Comment


        #4
        Vs: MSP430 gurude abi vaja

        Lisaküsimus idee pihta: Voolusäästlik ja kasutab releesid? Minu mõistuse koha pealt ei ole need hästi selles kontekstis kokkusobivad või mis lahendust silmas pidasid?

        Comment


          #5
          Vs: MSP430 gurude abi vaja

          Esmalt postitatud Eggy poolt
          Lisaküsimus idee pihta: Voolusäästlik ja kasutab releesid? Minu mõistuse koha pealt ei ole need hästi selles kontekstis kokkusobivad või mis lahendust silmas pidasid?
          Aparaadi väljalülitamisel jääks viimane seadistus meelde (prose töötaks pataka pealt).

          Selline variant sobib kah:

          counter = counter >> 1; // Nihutan 1 biti võrra paremale -- kustutan kõige madalama biti
          counter = counter << 3; // Nihutan õigesse kohta
          P1OUT = counter; // Saadan porti
          Kolakoguja

          Comment


            #6
            Vs: MSP430 gurude abi vaja

            Esmalt postitatud Eggy poolt
            Lisaküsimus idee pihta: Voolusäästlik ja kasutab releesid? Minu mõistuse koha pealt ei ole need hästi selles kontekstis kokkusobivad või mis lahendust silmas pidasid?
            On ka lukustuvaid releesid.
            If you think education is expensive, try ignorance.

            Comment


              #7
              Vs: MSP430 gurude abi vaja

              Esmalt postitatud andreie poolt
              On ka lukustuvaid releesid.
              Polariseerituid?

              MASU aeg, kasutan olemasolevaid juppe - NEC smd korpuses signaalireleed, ebayst ostetud 1% hiina 0805 takid, TI ürituselt saadud development plaat jne..

              PS Antud kood päris ei sobi, madalamad bitid kirjutatakse üle (need mille küljes on enkooder ja valgusdiood). Eks ma pusi edasi...

              Nii tundub olevat õige:

              readback = P1OUT; // loeme registrite väärtused tagasi
              readback &= 3; //kustutame bitid 7-3
              counter = counter >> 1; // Nihutan 1 biti võrra -- kustutan kõige madalama biti
              counter = counter << 3; // Nihutan õigesse kohta
              counter = counter + readback;
              P1OUT = counter; // Saadan porti

              Testriga jalgu surkides jõudsin avastuseni, et jalgade väärtusi ei muudeta...
              Googeldades selgus, et P1DIR vajab asjakohast seadistamist
              viimati muutis kasutaja pupsik46; 25 m 2009, 19:54.
              Kolakoguja

              Comment


                #8
                Vs: MSP430 gurude abi vaja

                Põhimõtteliselt asi töötab, releed klõbistavad enkooderi kruttimisel, aga üleminekul (a'la 01111->10000) tuleb kõva lärtsatus.
                Releed jõuavad ennem lahti minna (release time 1ms) kui sulgeda (operate time 2ms).
                Niisiis tuleks ennem releed sulgeda, oodata 1-2ms ja siis lahti lasta. Algoritmi mõtlesin välja, ajalise viite saaks käsuga delay(x) või siis __delay_cycles(x). Või oleks mõtet kasutada timer'eid?
                Kolakoguja

                Comment


                  #9
                  Vs: MSP430 gurude abi vaja

                  Oleneb puhtalt koodist, kui hõivatud prose on jne. Samas taimereid on tal ka reeglina vaid üks. On ka kolmas võimalus, panna taimer perioodiliselt tööle (1ms näiteks) ja lugeda katkestusi.

                  Comment


                    #10
                    Vs: MSP430 gurude abi vaja

                    Prose tegeleb ainult enkooderiga.
                    Kolakoguja

                    Comment


                      #11
                      Vs: MSP430 gurude abi vaja

                      Lärtsatustest sain lahti, aga nüüd ilmnes järgmine mega pidur. Releede draivimiseks kasutasin ULN2003, aga selle juhtimine on vastupidine - sisendis 0-> väljundis 1 ja vastupidi. Ehk siis, kui prose patakas saab tühjaks ja prose väljundites on null, on volüüm põhjas. Nüüd siis kaks võimalust - kas 20x2 takistit ümberjoota või ULN2003 sisendid 5-10koomiste takkidega "ülesse" tõmmata, et vaikimisi oleks sisendites loogiline 1.
                      Kolakoguja

                      Comment


                        #12
                        Vs: MSP430 gurude abi vaja

                        või ehk paned dioodi prose toitesse et kui ULN toite all saab ka prose toite ja patareist poogen.
                        Modelleerimises ja tootmises kehtivad:
                        1. Avariikindel vooluring lühistab kõik teised.
                        2. Transistor, millel on kiiresti toimiv kaitse, säästab kaitset, sulades kõigepealt ise.

                        Comment


                          #13
                          Vs: MSP430 gurude abi vaja

                          ULNi toide on 12V, prosel max 3.6V. Dioodist nagu vähe kasu?
                          Kolakoguja

                          Comment


                            #14
                            Vs: MSP430 gurude abi vaja

                            oeh. Ehk lisaks regulaatori ka?
                            Modelleerimises ja tootmises kehtivad:
                            1. Avariikindel vooluring lühistab kõik teised.
                            2. Transistor, millel on kiiresti toimiv kaitse, säästab kaitset, sulades kõigepealt ise.

                            Comment


                              #15
                              Vs: MSP430 gurude abi vaja

                              Esmalt postitatud murphy poolt
                              oeh. Ehk lisaks regulaatori ka?
                              Kas nii?
                              Lisatud failid
                              Kolakoguja

                              Comment

                              Working...
                              X