From 37b5fe39f23067e6a3fc0beb9e40457298bfcba0 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sat, 28 Jan 2012 15:44:06 +0000 Subject: added aknowledge pulse to ihu-ttx communication git-svn-id: https://svn.spreadspace.org/mur.sat@239 7de4ea59-55d0-425e-a1af-a3118ea81d4c --- software/ihu/ihu.asm | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++ software/ihu/ttx.inc | 23 ++++++++++++++--- software/ttx/ttx.asm | 12 ++++++--- 3 files changed, 100 insertions(+), 7 deletions(-) (limited to 'software') diff --git a/software/ihu/ihu.asm b/software/ihu/ihu.asm index cec3e51..c213698 100644 --- a/software/ihu/ihu.asm +++ b/software/ihu/ihu.asm @@ -369,6 +369,78 @@ uart_rx_fe main ; sleep ; nop + ;; -------------------- + ;; TTX Test + movf TMP,w + btfsc STATUS,Z + goto main + + movwf BUF + clrf TMP + movlw BUF+1 + movwf FSR + + movlw .1 + movwf TTX_BYTE_CNT +main_read_bytes + movf TMP,w + btfsc STATUS,Z + goto main_read_bytes + movwf INDF + incf FSR,f + clrf TMP + decfsz TTX_BYTE_CNT,f + goto main_read_bytes + + movlw BUF + movwf FSR + movlw 0xA2 + call ttx_send + + xorlw .0 + btfss STATUS,Z + goto main_error + + movlw 'O' + movwf TXREG + movlw .1 + call wait_ms + movlw 'K' + movwf TXREG + movlw .1 + call wait_ms + movlw '\r' + movwf TXREG + movlw .1 + call wait_ms + movlw '\n' + movwf TXREG + movlw .1 + call wait_ms + goto main + +main_error + movlw 'E' + movwf TXREG + movlw .1 + call wait_ms + movlw 'R' + movwf TXREG + movlw .1 + call wait_ms + movlw 'R' + movwf TXREG + movlw .1 + call wait_ms + movlw '\r' + movwf TXREG + movlw .1 + call wait_ms + movlw '\n' + movwf TXREG + movlw .1 + call wait_ms + goto main ;; -------------------- ;; ADC Test diff --git a/software/ihu/ttx.inc b/software/ihu/ttx.inc index b9f45e7..2098340 100644 --- a/software/ihu/ttx.inc +++ b/software/ihu/ttx.inc @@ -108,7 +108,7 @@ ttx_send_frame movf TTX_BYTE_CNT,f btfsc STATUS,Z - return + goto ttx_get_csum ttx_next_byte call ttx_break @@ -119,16 +119,31 @@ ttx_next_byte decfsz TTX_BYTE_CNT,f goto ttx_next_byte +ttx_get_csum call ttx_break call ttx_recv_byte movf TTX_BYTE,w xorwf TTX_CSUM,w btfss STATUS,Z goto ttx_csum_error - return + retlw .0 ttx_csum_error - ;; TODO: react to comm error - return + retlw .1 ;; ------------------------------------- +ttx_send + call ttx_send_frame + movwf TTX_BYTE + call ttx_break + btfsc TTX_BYTE,0 + bcf PORTD,TTX_SDA + btfss TTX_BYTE,0 + bsf PORTD,TTX_SDA + bsf PORTD,TTX_SCL + nop + nop + nop + bcf PORTD,TTX_SCL + return + ;; ------------------------------------- diff --git a/software/ttx/ttx.asm b/software/ttx/ttx.asm index 6e974c9..0f75420 100644 --- a/software/ttx/ttx.asm +++ b/software/ttx/ttx.asm @@ -76,7 +76,7 @@ RX_BIT_CNT EQU H'004E' RX_BYTE_CNT EQU H'004F' RX_CMD EQU H'0050' RX_D_START EQU H'0051' -RX_D_END EQU H'0060' +RX_D_END EQU H'005F' ;; all pages BEACON_INT EQU H'0070' @@ -136,7 +136,9 @@ ext_int movwf RX_STATE btfsc STATUS,Z goto ext_int_send_csum + ext_int_next + incf FSR,f call rx_byte decfsz RX_BYTE_CNT,f goto ext_int_next @@ -148,6 +150,10 @@ ext_int_send_csum swapf RX_CMD,w andlw b'00001111' movwf RX_CMD +ext_int_wait_ack + btfss GPIO,SCLK + goto ext_int_wait_ack + btfss GPIO,SDAT bsf RX_STATE,complete bsf STATUS,RP0 movlw OSC_LOW @@ -425,7 +431,6 @@ rx_byte_clk_high movf INDF,w xorwf RX_CSUM,f - incf FSR,f return rx_byte_next @@ -451,7 +456,7 @@ rx_send_clk_high bsf STATUS,RP0 bsf TRISIO,SDAT - bcf STATUS,RP0 + bcf STATUS,RP0 return rx_send_next @@ -792,6 +797,7 @@ seccnt_zero ;; this gets called whenever a message was received from ihu msg_received call send_ack + bcf RX_STATE,complete clrf RX_STATE powerdown -- cgit v1.2.3