• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: PIC16F88用SPI控制MCP41010問題
#6
中級會員
中級會員


查看用戶資訊
感謝客位大大的回覆,可以用了....非常感謝....^ ^

發表於: 2009/7/16 22:51
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC16F88用SPI控制MCP41010問題
#5
資深會員
資深會員


查看用戶資訊
LOOP BTFSS SSPSTAT, BF ;CHECK IF TRANSMISSION IS COMPLETE


R大

記得你說過, 傳送應該是要檢查SSPIF
可是看那段程式. 是檢查BF旗標ㄝ

http://www.microchip.com.tw/modules/n ... t_id=26146#forumpost26146

發表於: 2009/7/16 11:21
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC16F88用SPI控制MCP41010問題
#4
版主
版主


查看用戶資訊
找了一段控制 MCP41010 的 SPI 程式,參考一下,CS 腳 (RA0) 變成Low 後連續送出兩個 8 bits資料,這樣就達到傳送 16 bits 的任務了。

AN746: http://www.microchip.com/stellent/idc ... eId=1824&appnote=en011862

CS        EQU    H'00'            ;CHIP SELECT

COMMAND        EQU    H
'13'            ;VARIABLE FOR THE COMMAND BYTE 
R_VALUE        EQU    D
'140'            ;VARIABLE FOR THE RESISTANCE VALUE  
                             

;****************************************************************************************
;********************  
PROGRAM ORIGIN  **************************************************
;****************************************************************************************


        
ORG    0X00


;----------------------------------------------------------------------------------------
;--------------------  
PORTB AND SPI SETTING  -------------------------------------------
;----------------------------------------------------------------------------------------


        
BSF    STATUSRP0        ;SPECIFY BANK 1
        MOVLW    H
'00'            
        
MOVWF    TRISA            ;SET PORTA AS AN OUTPUT
        MOVWF    TRISC            
;SET PORTB AS AN OUTPUT
        BCF    STATUS
RP0        ;SPECIFY BANK 0
    
         CLRF      PCLATH                 
;ENSURE PCLATH BIT 3 IS CLEARED
             CLRF      INTCON                 
;ENSURE ALL INTERRUPTS ARE DISABLED
             MOVLW     0x30                   
;
             
MOVWF     SSPCON                 ;SET SYNC SERIAL PORT CONTROL REGISTER  


;----------------------------------------------------------------------------------------
;--------------------  
PROGRAM ROUTINE  -------------------------------------------------
;----------------------------------------------------------------------------------------


        
BCF    PORTACS        ;SELECT THE POT

        MOVLW    COMMAND            
;LOAD THE COMMAND BYTE IN THE ACCUMULATOR
        CALL     TRANSMIT        
;TRANSMIT THE COMMAND BYTE 

        MOVLW    R_VALUE            
;LOAD THE RESISTANCE VALUE IN THE ACCUMULATOR
        CALL     TRANSMIT        
;TRANSMIT THE RESISTANCE VALUE 

        BSF    PORTA
CS        ;UNSELECT THE POT

        
GOTO    FINISH            ;FINISH

        
;----------------------------------------------------------------------------------------
;--------------------  
TRANSMISION SUBROUTINE  ------------------------------------------
;----------------------------------------------------------------------------------------


TRANSMIT     BCF    STATUSRP0        ;SPECIFY BANK 0
              MOVWF     SSPBUF            
;PLACE DATA IN BUFFER TO SEND 

            BSF       STATUS
RP0        ;SPECIFY BANK 1
LOOP             BTFSS     SSPSTAT
BF        ;CHECK IF TRANSMISSION IS COMPLETE
             
GOTO      LOOP             ;
             
BCF       STATUSRP0        ;SPECIFY BANK 0

         
RETURN                   ;RETURN FROM SUBROUTINE


;****************************************************************************************


FINISH        GOTO     FINISH

        END

發表於: 2009/7/16 11:12
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC16F88用SPI控制MCP41010問題
#3
資深會員
資深會員


查看用戶資訊
好可愛的問題,讓人回想到5年前的我 >"< 也常常有可愛的問題

你如果是用硬體送SPI就只能參考DATASHEET看是否有送8Bit以上的方法,或是像N所說的送2筆8Bit

如果你是用自己寫的軟體送SPI,那你高興怎麼送都可以,一次送16Bit也行,但習慣上是送2次8Bit

發表於: 2009/7/16 8:40
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC16F88用SPI控制MCP41010問題
#2
資深會員
資深會員


查看用戶資訊
命令8bit,資料8bit 分2次送
1共就是16bit

發表於: 2009/7/15 22:56
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


PIC16F88用SPI控制MCP41010問題
#1
中級會員
中級會員


查看用戶資訊
我用PIC16F88的SPI去餵資料給MCP41010,但PIC16F88的SPI一次只丟8 bit,但MCP41010一次需要16 bit以上的資料, 如何設定PIC16F88,讓它一次丟16個bit以上來配合MCP41010所需的資料??

發表於: 2009/7/15 22:32
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------