Teade

Collapse

Foorumi reeglid.

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

SPI PIC18F4620-l ei taha töötada

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

    SPI PIC18F4620-l ei taha töötada

    Raudvaraline SPI siis. Kui oodata baidi saatmise lõppu SSPSTAT lipu BF järgi siis võibki ootama jääda. Ootamine katkestuse lipu järgi ei anna samuti tulemusi. Samuti ei aita errata.st leitud lahendid (kopeerida SSPSTAT W-registrisse ja kontrollida BF lippu sealt). Muide, selle kivi SPI mooduli errata on aukartust öratavalt suur. Kas ta ongi...p..sse kukkunud?
    Sama kood PIC18F452-l töötab. Bit-bang SPI töötab kenasti ja võiks ju probleemi lahendatuks lugeda aga ikkagi huvitav, mis kamm asjaga on.
    Ossiga vaadates on näha, et saadetakse 9 impulssi (CLK), eriti aeglaselt! Edasi ei juhtu midagi. Takt taimer 2-lt.
    On's keegi selle kivi raudvaralise SPI tööle saanud?
    - 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!

    #2
    Vs: SPI PIC18F4620-l ei taha töötada

    See ongi põhjus miks ma uusi AVRe ja PICe isegi pika toikaga ei puutu
    If it tastes bad - split it out.

    Comment


      #3
      Vs: SPI PIC18F4620-l ei taha töötada

      See on loogiline aga mitte probleemi seletus.
      - 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


        #4
        Vs: SPI PIC18F4620-l ei taha töötada

        Ja sa porged asmis ja mplabis? Ei tea öelda aga võid proovide mikroe.com lehelt, seal on C compileri sees libraryd, seni töötanud kõik, helpis on korralik kirjeldus kuda kasutada ja näited. 2K koodi on vaba, aga puudus et kui miski vea leiad ei parandata kohe. Kui lisentsi omad fixsitaxse 2 päeva jooksul ja saadetakse uus installer sulle.
        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


          #5
          Vs: SPI PIC18F4620-l ei taha töötada

          Kui C proged võid ju vastava koodijupi üles panna, alati enda vigu ei näe kh.
          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


            #6
            Vs: SPI PIC18F4620-l ei taha töötada

            Ma ei tea, kas hakkan foorumiraffast tüütama, mu kood on asmis. Olen jah see dinosaurus (fossiil ) kes eelistab teade, mida ta kood teeb ja sisaldab
            Aga...

            Nii ma initsialiseerin SPI:
            Esiteks portide suunad:
            Kood:
                            MOVLW    0x10
                            MOVWF    TRISC                    ; Y-data, MMSi koivad:(SDO-C5-CDIN väljund, SDI-C4-CDOUT sisend,SCK-C3-CCK väljund), ...
                            movlw    0x1C
                            movwf    PORTC                    ; MMC otsad kõrgeks
            Siis SPI-port ise:
            Kood:
            ;; **** SPI BUS ****
            ;                movlw    0x7C
            ;                movwf    T2CON
            ;                bcf        SSPSTAT,SMP                ; loeme daata CLK keskel
            ;                bcf        SSPSTAT,CKE                ; saadame daata SCK tõusval frondil
            ;                movlw    0x33;2
            ;                movwf    SSPCON1
            Ja siin inintsialiseerin MMC-kaardi saates talle esmalt 80 taktipulssi jättes CCS-i passiivseks (HIGH)
            Kood:
            init_card:        bcf        viga
                            BTFSC    CDI                        ; kaart sees?
                            GOTO    init_cf_err                ; ei, välju veateatega
                            movlw    0xFF
                            movwf    Count                    ; 255 * proovime
            init_c0:        bsf        CCS                        ; MMC disabled hetkel veel
                            movlw    .10                        ; Seame MMC SPI-reziimi. Selleks saadame 80 taktipulssi tühjalt
                            movwf    count
            init_c1:        movlw    0xFF
                            call    wr_spi
                            decfsz    count
                            goto    init_c1
            Siin sisalduv SPI-ga suhtlev lõik "wr_spi" ei lõpeta tööd kunagi, ossil tekib 9 (!) taktipulssi kusjuures seda tervelt 500 us jooksul (super aeglane!)
            Kood:
            ;; *************************************************************************************************************
            ;; ************************ Kirjutab W sisu SSPBUF'i ***********************************************************
            ;; *************************************************************************************************************
            ;wr_spi:        bsf    PIR1,SSPIF
            ;            bcf        SSPCON1,WCOL
            ;                bcf        SSPCON1,SSPOV            ; tarbetu ?
            ;                bcf        T2CON,TMR2ON
            ;                bcf        PIR1,SSPIF
            ;                clrf    TMR2
            ;                movwf    SSPBUF
            ;                bsf        T2CON,TMR2ON
            ;
            ;wr_spi1:;        movf    SSPSTAT,W
            ;        ;        btfss    WREG,BF                    ; sai tehtud ?
            ;                btfss    PIR1,SSPIF
            ;                goto    wr_spi1                    ; ootame veel        
            ;                movf    SSPBUF,W                ; loe vastus
            ;                bcf        PIR1,SSPIF
            ;                return
            Arvestan juba Microchipi errata-t.
            Märgin veel, et täpselt sama kood sarnasel aga vanemal prosel PIC18F452 töötab kenasti. Portides õnnetule 4620-le jookseb kokku...
            Nagu märgitud, sain bit-bang SPI-ga kõik toimima. Vaid uudishimu jääb...
            - 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


              #7
              Vs: SPI PIC18F4620-l ei taha töötada

              Tubli töö asmis kribada. Ise küll ei kujuta et oleks oma hetke projekti(ARM7) asmis kirjutanud, C-s juba seda umbes 4k rida, Graafika, Fat32, IDE, Terminali funktsioonid. Koodi on alati hea yles panna, kui oma asja valmis saan riputan üles, Kujutan ette et näitekx library uarti jaoks kus ytled ainult baudi ja pärast kirjutad võib nii mõnelegi kasulik olla. Graafikaga pole vist midagi kellelgi teha, oma tehtud graafika kontroller, FPGA peale. Samas kes teab, ostab xilinxi kivi 70 eega eest digikeyst ja saab endale max 1024x1024 graafika kontrolleri mis täielikult prose poolt confitav, Gaafika VHDL-s.
              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


                #8
                Vs: SPI PIC18F4620-l ei taha töötada

                Aga postita oma mure microchipi foorumisse. Seal liigub tunduvalt rohkem asja jagavaid inimesi.

                Comment

                Working...
                X