Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

MSSP -> SPI nastavenie

 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
mikollar



Založen: Dec 26, 2004
Příspěvky: 1425
Bydliště: Košice - okolie

PříspěvekZaslal: po červen 11 2007, 11:23    Předmět: MSSP -> SPI nastavenie Citovat

Zdravim, nema niekto zaručene funkcny priklad pouzitia SPI v asm alebo co este treba nastavit okrem SSPSTAT, SSPCON a TRISC aby tento modul bol funkcny? Skusal som uz vsetky nastavenia podla katalogu. Udaje sa zapisu do SSPBUF ale neodoslu sa. V registroch mam nastavene povolenie SPI. Moje nastavenie sa zhoduje z vacsinou nastaveni uvadzanych na inete.
Skusal so to na 16f877. Uz nemam napady co este je potrebne spravit.

Za kazdu radu dakujem

kód:


 list p=16f877A, R=DEC
include "p16f877A.inc"



   org   0x0000      ; zacatek programu
   goto   INIT      ; skok na počáteční inicializaci


      org 0x0004
      retfie
;**************************************************************************
INIT   movlw   b'000000'   ; prednastaveni PORTu A


   movwf   PORTA
   movlw   b'00000000'   ; prednastaveni PORTu B
   movwf   PORTB

   movlw   b'00000000'   ; přednastavení PORTu D
   movwf   PORTD      ; !!! jen PIC16F874 a PIC16F877 !!!
   movlw   b'000'      ; přednastavení PORTu E
   movwf   PORTE      ; !!! jen PIC16F874 a PIC16F877 !!!
      ; ------------------------
   bcf   STATUS,RP1
   bsf   STATUS,RP0   ; banka registru 1

   movlw   b'00000110'   ; A/D vstupy OFF
   movwf   ADCON1
   
   MOVLW   B'00010000'         

   MOVWF   TRISC         ;
   


;-----------------------------------------------------------------------------------------------------------------------   

   movlw   b'11111111'   ;
   movwf   TRISD      ;

   movlw   b'111'      ;
   movwf   TRISE      ;
   
   movlw   01000000   
   movwf SSPSTAT
   
   CLRF   PIR1
   
   MOVLW   B'00001000'
    MOVWF     PIE1
   
   MOVLW   B'11000000'
    MOVWF     INTCON                ; INTERRUPTS
    
    MOVLW    B'00000001'                 ;
   MOVWF    SSPCON
    BSF      SSPCON, SSPEN
      
      CLRF   OPTION_REG
      
      MOVLW   B'00000001'
    MOVWF     T1CON
    
    MOVLW   B'00000010'
    MOVWF     T2CON
   
   BCF   STATUS, RP0      ;SPECIFY BANK 0
   
   goto   MAIN
;**************************************************************************



MAIN       BCF    STATUS, RP1 ;Specify Bank1
      BSF    STATUS, RP0 ;
                BCF    SSPSTAT,7

           BCF   STATUS, RP0      ;SPECIFY BANK 0
      
      MOVFW   SSPBUF         
      
      movlw   .100
                MOVWF    SSPBUF         


      BCF    STATUS, RP1 ;Specify Bank1
      BSF    STATUS, RP0 ;
      
LOOP        BTFSS    SSPSTAT, BF ;
      GOTO    LOOP
                BCF    SSPSTAT, BF
            BCF      STATUS, RP0
      
      NOP
      NOP
      NOP
      NOP
      NOP
      
         MOVFW   SSPBUF   

        GOTO   MAIN
END



EDIT: Upraveny program


Naposledy upravil mikollar dne st červen 13 2007, 15:50, celkově upraveno 3 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nop



Založen: May 18, 2007
Příspěvky: 161

PříspěvekZaslal: út červen 12 2007, 20:14    Předmět: Citovat

s tímhle jsem nikdy nic nedělal snad by mohli pomoci tutorialy od microchipu,nestudoval jsem,jen náhodou na to narazil.. http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1959
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mikollar



Založen: Dec 26, 2004
Příspěvky: 1425
Bydliště: Košice - okolie

PříspěvekZaslal: út červen 12 2007, 20:40    Předmět: Citovat

dakujem za link , tento som uz skusal len problem je ten ze ani tieto priklady od microchipu nefunguju a to som skusal uz 3 PICka Confused
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Modemo



Založen: May 13, 2007
Příspěvky: 90
Bydliště: Brno, Pov. Bystrica

PříspěvekZaslal: st červen 13 2007, 13:22    Předmět: Citovat

A nebude chyba inde? Wink
Mne sa nestalo, ked si otvorim datasheet akehokolvek protokolu a idem krok po kroku, dodrzim vsetko co mam, aby to neslo.....a ked neslo, tak som spatne zistil, ze som predsa len cosi nedodrzal Smile
Mozno ze mas chybu na druhej strane rozhrania Question
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mikollar



Založen: Dec 26, 2004
Příspěvky: 1425
Bydliště: Košice - okolie

PříspěvekZaslal: st červen 13 2007, 14:00    Předmět: Citovat

Ja som uz skusal aj priamo ASM subory microchipu, previedol som ich na HEX a nic neslo to. Z mikroprocesora nelezie von nic, porty zostávaju trvalo v LOG0 a nemenia sa vobec, asi bude treba nieco nastavit co prehliadam ale uz fakt netusim co. Skusam to uz cez tyzden Vozeďbouch , asi to hodim o zem a spravim to SW a snad to pojde
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
jankop



Založen: Apr 04, 2007
Příspěvky: 679

PříspěvekZaslal: st červen 13 2007, 15:12    Předmět: Citovat

Možná by nezaškodila elementární kontrola programu. Když si to odsimuluješ v MPLABu, tak ti snad nebude trvat týden, než přijdeš na to, že registr SSPSTAT není v bance 0, kde ho chybně adresuješ v sekci "main", nýbrž v bance 1.

A když si přečteš pozorně datasheet, tak dospěješ k závěru, že instrukce

kód:
MOVLW    B'00100001'       
MOVWF    SSPCON

bude asi lépe nahradit sekvencí
kód:
MOVLW    B'00000001'                 ;
MOVWF    SSPCON
BSF      SSPCON, SSPEN
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
mikollar



Založen: Dec 26, 2004
Příspěvky: 1425
Bydliště: Košice - okolie

PříspěvekZaslal: st červen 13 2007, 15:57    Předmět: Citovat

upravil som to podla rad, zmenil som to aj v uvode, program prejde raz dookola na nic necaka na odsalnie na nic a pri druhom kole Smile sa na tomto

kód:
LOOP        BTFSS    SSPSTAT, BF ;
      GOTO    LOOP


a dalej sa ani nepohne.

P.S. dufam ze som to spravne upravil
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
jankop



Založen: Apr 04, 2007
Příspěvky: 679

PříspěvekZaslal: čt červen 14 2007, 14:12    Předmět: Citovat

Následující program nastaví SSP modul a opakovaně v Master modu vysílá data. Ta jsou určena proměnou TxData, která se mění- inkrementuje. Program je pro jednoduchost v minimální verzi . Byl testován a fyzicky opravdu funguje. S krystalem 77,5kHz, LED a zrcátkem jsem viděl SCK i SDO. Propojením SDO-SDI procesor načítal data, která sám odeslal.
Měl jsem pouze 16F877. Pro procesor 16F877A by mělo stačit opravit řádky
kód:
 list      P=PIC16F877         
      #include <P16F877.INC> 
na
kód:
list      P=PIC16F877A         
    #include <P16F877A.INC> 

a v příkazu _CONFIG nastavit správný rezonátor!!!!

Vlastní kompletní program (MPLAB 7.60)

kód:

   list      P=PIC16F877          ; list directive to define processor
   #include <P16F877.INC>     ; processor specific variable definitions
   errorlevel -302
   __CONFIG  _BODEN_OFF & _CP_OFF & _WRT_ENABLE_OFF & _PWRTE_OFF & _WDT_OFF &_LP_OSC & _DEBUG_ON & _CPD_OFF & _LVP_OFF

;--------- VARIABLE DEFINITIONS ---------------------------------------
#define RAM_Start 0x72
    CBLOCK RAM_Start
TxData
    ENDC

   org   0x0000      ; zacatek programu
    nop             ; pro ICD2
   goto   INIT   ; skok na pocatecni inicializaci
   org   0x0004      ; vektor preruseni
   goto   INIT
;************************ Inicializace procesoru  *************************
INIT
    BANKSEL TRISC   ; bank 1
    movlw   b'00010000' ; nastav Serial Data In (SDI) – RC4/SDI/SDA
    movwf   TRISC
    movlw   b'00010000'
    movwf   SSPSTAT     
    BANKSEL SSPCON  ; bank 0
    movlw   b'00110010' ; Set up SPI port, Master mode, CLK/64,
    movwf   SSPCON      ; SSPEN = 1
                       
    clrf TxData       
repeat
    BANKSEL SSPCON  ; bank 0 
    movfw   SSPBUF
    movfw   TxData
    movwf   SSPBUF
   
    BANKSEL SSPSTAT
wait
    btfss   SSPSTAT,BF
    goto wait
    incf TxData,F
    goto repeat
    end
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
mikollar



Založen: Dec 26, 2004
Příspěvky: 1425
Bydliště: Košice - okolie

PříspěvekZaslal: čt červen 14 2007, 14:39    Předmět: Citovat

dakujem dakujem uz aj mne to ide to je super, este raz diky Geniální
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.13 sekund