diff options
author | Christian Pointner <equinox@spreadspace.org> | 2013-07-12 02:33:32 +0000 |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2013-07-12 02:33:32 +0000 |
commit | ffdaa38e67a915dec7e053e39912f57504f8e2c4 (patch) | |
tree | c9210eefed1b548fd953afb91d94d932e3b92cd7 /bootloader | |
parent | started support for com-spi for 16f887 (diff) |
added spi send - still to long (but only 1 word)
git-svn-id: https://svn.spreadspace.org/pic/trunk@86 a09c6847-51d9-44de-8ef2-e725cf50f3c7
Diffstat (limited to 'bootloader')
-rw-r--r-- | bootloader/cmds-16f1847.inc | 2 | ||||
-rw-r--r-- | bootloader/cmds-16f887.inc | 9 | ||||
-rw-r--r-- | bootloader/com-16f887-spi.inc | 16 |
3 files changed, 18 insertions, 9 deletions
diff --git a/bootloader/cmds-16f1847.inc b/bootloader/cmds-16f1847.inc index 67775c5..bed54b9 100644 --- a/bootloader/cmds-16f1847.inc +++ b/bootloader/cmds-16f1847.inc @@ -133,7 +133,7 @@ write_flash_segment_next btfsc EECON1,WRERR movlw E_FLASH_WERR movlb .0 - movwf combuff + .2 ; = E_OK + movwf combuff + .2 ; = E_OK or write error movlw .1 ; bytes to send call send_answer goto wait_new_cmd diff --git a/bootloader/cmds-16f887.inc b/bootloader/cmds-16f887.inc index 5372821..25889c3 100644 --- a/bootloader/cmds-16f887.inc +++ b/bootloader/cmds-16f887.inc @@ -99,19 +99,16 @@ write_flash_segment_loop nop bcf EECON1,WREN bcf STATUS,RP0 - incfsz EEADR,f ; increment flash address - goto write_flash_segment_next - incf EEADRH,f -write_flash_segment_next + incf EEADR,f ; increment flash address (no need to increment EEADRH -> flash bondaries!) decfsz cnt,f goto write_flash_segment_loop bsf STATUS,RP0 - clrw ; check if a write error occured + movlw E_OK ; check if a write error occured btfsc EECON1,WRERR movlw E_FLASH_WERR bcf STATUS,RP1 bcf STATUS,RP0 - movwf combuff + .2 ; = E_OK + movwf combuff + .2 ; = E_OK or Write Error movlw .1 ; bytes to send call send_answer goto wait_new_cmd diff --git a/bootloader/com-16f887-spi.inc b/bootloader/com-16f887-spi.inc index 7f501cf..e4b8d2a 100644 --- a/bootloader/com-16f887-spi.inc +++ b/bootloader/com-16f887-spi.inc @@ -20,10 +20,20 @@ ;; along with spreadspace pic utils. If not, see <http://www.gnu.org/licenses/>. ;; +#define INTPIN PORTA,4 + ;; --- transmit byte and add it to csum com_tx_byte - ;; TODO add write + movwf SSPBUF + bcf INTPIN xorwf csum,f + bsf STATUS,RP0 +com_tx_byte_wait + btfss SSPSTAT,BF + goto com_tx_byte_wait + bcf STATUS,RP0 + movf SSPBUF,w + bsf INTPIN return ;; ---- wait for byte to be received @@ -57,8 +67,10 @@ com_init movlw b'01000000' ; SMP=0,CKE=1 movwf SSPSTAT bcf TRISC,5 ; RC5(SDO) = out - + bcf INTPIN ; interrupt line to master + ;; bank 0 bcf STATUS,RP0 movlw b'00100100' ; SSPEN=1,CKP=0,SSPM=0100(SPI Slave with SS) movwf SSPCON + bsf INTPIN |