Teade

Collapse

Foorumi reeglid.

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

SPI programmeerimine

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

    SPI programmeerimine

    Tere kõigile,
    lihtne küsimus arusaajatele: soovin saata MIDI data PIC16f628-st teise mikrokontrollerisse, kasutades vahepeal Serial Peripheral Interface formaati. Küsimus on aga selles, et esimene PIC võtab väljast MIDI baidi läbi USART´i ning saadab selle nüüd juba SPI kasutades teise kontrollerisse. Milline peaks olema sellisel juhul SPI kella kiirus, kui MIDI jaoks on baud rate seatud 31,250 bitti/sek peale? Kasutan 20 Mhz kella PIC´i ja teise kontrolleri tööks.
    viimati muutis kasutaja Kurjasti Kasutaja; 12 m 2006, 15:15.

    #2
    Vs: SPI programmeerimine

    Kas see tähendab seda, et vastu võttev PIC saadab kõik "laivis" mingile muusikariistale edasi ja et seepärast on konkreetsed kiirused tähtsad?
    Ma kasutaks pigem puhvreid ja vastuvõtu poolel taktiks asja oma taimeriga välja.
    Muidugi on ka teisi variante...
    - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
    - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

    Comment


      #3
      Vs: SPI programmeerimine

      Tegelikult on asja uba selles, et soovin saata MIDI juhtmevabalt statsionaarsesse süntekasse, kasutades laivis ainult MIDI kontrollerit. Asi on teostatav tänu NRF905 chipile, mille bitrate on 75kBps. Sobib ideaalselt MIDI üle kandma. Ainult, et praegu ei tea kas andmevahetus PIC-i ja NRF905 vahel peab toimuma samuti MIDI bitrate´i alusel või paneb ikkagi 20 mhz alusel, ehk siis 250 ns ühe instruktsiooni täimiseks. Suht segane tekst aga midagi ehk selgus.

      Comment


        #4
        Vs: SPI programmeerimine

        PICi sisemine takst on Fosc/4 !!!
        Raadioside puhul soovitan veelkord vahepuhvreid kasutada. On ju nii, et osa pakette võib kaotsi minna, nagunii kasutad veakorrektsiooni (Hamming vms) ja seega ei saa data otse eetrist sündile minna.
        - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
        - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

        Comment


          #5
          Vs: SPI programmeerimine

          Loomulikult on PIC´i sisemine sagedus Fosc/4, ehk minu puhul kasutades 20Mhz kella on ühe instruktsiooni toimumine 125 ns. Ok, ma katsun olla nüüd veelgi täpsem. Nimelt toimib andmeside täielikult NRF905 kivi peal (see on täpsemini data tranceiver, milles sisaldub ka 8081 MCU, mälu, PLL ning palju muudki), PIC võtab saatja poolel MIDI baidi läbi USART´i vastu ning klokib selle NRF905 kivisse, mis omakorda saadab selle läbi eetri teise NRF905´i. Seal toimub vastupidine protsess - NRF905 klokib MIDI baidi välja PIC´i, mis läbi inverteri saadab juba korrektse MIDI süntekasse. Kogu eetrisolekuprotsess vältab 650 mikrosekundit, mis välistab ka kurikuulsa MIDI delay. Siin ongi küsimus, et milline peaks olema PIC´ide ning NRF905-e omavaheline andmeside kiirus. Ühendus on täiesti turvaline, sest kasutatakse Manchester kodeerimist ning lisaks sellele on 32 baidine! addresseerimine. Ühesõnaga oleks tegemist wireless MIDIga, mida saab kasutada ka väga kehvades tingimustes (NRF905 ei võta ennem mingit datat vastu kui on saanud korrektse addressi teiselt NRF-ilt).

          Tegelikult sain seda kirjutades ka ise aru kui mõttetut asja ma küsisin
          viimati muutis kasutaja Kurjasti Kasutaja; 13 m 2006, 18:16.

          Comment


            #6
            Vs: SPI programmeerimine

            nrf950 datasheet väidab, et clock võib olla kuni 10MHz, nii et vali endale sobiv kiirus, kuid mitte üle 10MHz. Võib olla ka 31,25kHz

            Comment

            Working...
            X