mirror of
https://github.com/romychs/SprinterESP.git
synced 2025-04-18 01:32:42 +03:00
Init, buffer TX and RX procedures debug complete
This commit is contained in:
parent
2a422f7a39
commit
8d5f374035
@ -48,7 +48,7 @@ LSR_OE EQU 0x02 ; Overrun Error
|
||||
LSR_PE EQU 0x04 ; Parity Error
|
||||
LSR_FE EQU 0x08 ; Framing Error
|
||||
LSR_BI EQU 0x10 ; Break Interrupt
|
||||
LSR_THRE EQU 0x20 ; Transmitter Holding Register
|
||||
LSR_THRE EQU 0x20 ; Transmitter Holding Register Empty
|
||||
LSR_TEMT EQU 0x40 ; Transmitter empty
|
||||
LSR_RCVE EQU 0x80 ; Error in receiver FIFO
|
||||
|
||||
@ -115,12 +115,29 @@ UF_T_FND
|
||||
|
||||
; Test slot, A - ISA Slot no. 0 or 1
|
||||
UT_T_SLOT
|
||||
; check IER hi bits, will be 0
|
||||
LD (ISA.ISA_SLOT), A
|
||||
LD HL, REG_IER
|
||||
CALL UART_READ
|
||||
AND 0xF0
|
||||
RET NZ
|
||||
|
||||
; check SCR register
|
||||
LD DE,0x5555
|
||||
CALL CHK_SCR
|
||||
RET NZ
|
||||
LD DE,0xAAAA
|
||||
CALL CHK_SCR
|
||||
RET
|
||||
|
||||
CHK_SCR
|
||||
LD HL, REG_SCR
|
||||
CALL UART_WRITE
|
||||
CALL UART_READ
|
||||
CP D
|
||||
RET
|
||||
|
||||
|
||||
|
||||
; ------------------------------------------------------
|
||||
; Init UART device TL16C550
|
||||
@ -133,13 +150,13 @@ UART_INIT
|
||||
LD A, FCR_TR8 | FCR_FIFO ; Enable FIFO buffer, trigger to 14 byte
|
||||
LD (IX+_FCR),A
|
||||
XOR A
|
||||
LD (IX+_IER), A ; Disable interrupts
|
||||
LD (IX+_IER), A ; Disable interrupts
|
||||
|
||||
; Set 8bit word and Divisor for speed
|
||||
LD A, LCR_DLAB | LCR_WL8
|
||||
LD (IX+_LCR), A ; Enable Baud rate latch
|
||||
LD (IX+_LCR), A ; Enable Baud rate latch
|
||||
LD A, DIVISOR
|
||||
LD (IX+_DLL), A ; 8 - 115200
|
||||
LD (IX+_DLL), A ; 8 - 115200
|
||||
XOR A
|
||||
LD (IX+_DLM), A
|
||||
LD A, LCR_WL8 ; 8bit word, disable latch
|
||||
@ -175,24 +192,29 @@ UART_WRITE
|
||||
; Out: CF=1 - tr not ready, CF=0 ready
|
||||
; ------------------------------------------------------
|
||||
UART_WAIT_TR
|
||||
PUSH AF, BC, HL
|
||||
|
||||
CALL ISA.ISA_OPEN
|
||||
LD BC, 100
|
||||
CALL UART_WAIT_TR_INT
|
||||
CALL ISA.ISA_CLOSE
|
||||
RET
|
||||
|
||||
;
|
||||
; Wait, without open/close ISA
|
||||
;
|
||||
UART_WAIT_TR_INT
|
||||
PUSH AF, BC, HL
|
||||
LD BC, 500
|
||||
LD HL, REG_LSR
|
||||
WAIT_TR_BZY
|
||||
LD A,(HL)
|
||||
AND A, LSR_THRE
|
||||
JR NZ,WAIT_TR_RDY
|
||||
CALL UTIL.DELAY_1MS
|
||||
CALL UTIL.DELAY_100uS ; ~11 bit tx delay
|
||||
DEC BC
|
||||
LD A, C
|
||||
OR B
|
||||
JR NZ,WAIT_TR_BZY
|
||||
SCF
|
||||
WAIT_TR_RDY
|
||||
CALL ISA.ISA_CLOSE
|
||||
|
||||
POP HL, BC, AF
|
||||
RET
|
||||
|
||||
@ -211,7 +233,7 @@ UTB_NOT_R
|
||||
RET
|
||||
|
||||
; ------------------------------------------------------
|
||||
; char uart_tx_buffer(char* tbuff, int size)
|
||||
; Transmit buffer
|
||||
; Inp: HL -> buffer, BC - size
|
||||
; Out: CF=0 - Ok, CF=1 - Timeout
|
||||
; ------------------------------------------------------
|
||||
@ -225,8 +247,8 @@ UTX_NEXT
|
||||
OR C
|
||||
JR Z,UTX_EMP
|
||||
; check transmitter ready
|
||||
CALL UART_WAIT_TR
|
||||
JR C, UTX_EMP
|
||||
CALL UART_WAIT_TR_INT
|
||||
JR C, UTX_TXNR
|
||||
; transmitt byte
|
||||
LD A,(HL)
|
||||
INC HL
|
||||
@ -234,22 +256,54 @@ UTX_NEXT
|
||||
DEC BC
|
||||
JR UTX_NEXT
|
||||
; CF=0
|
||||
XOR A
|
||||
UTX_EMP
|
||||
UTX_EMP
|
||||
AND A
|
||||
UTX_TXNR
|
||||
CALL ISA.ISA_CLOSE
|
||||
POP HL,DE,BC
|
||||
RET
|
||||
|
||||
; ------------------------------------------------------
|
||||
; Transmit zero ended string
|
||||
; Inp: HL -> buffer
|
||||
; Out: CF=0 - Ok, CF=1 - Timeout
|
||||
; ------------------------------------------------------
|
||||
UART_TX_STRING
|
||||
PUSH DE,HL
|
||||
LD DE, REG_THR
|
||||
CALL ISA.ISA_OPEN
|
||||
UTXS_NEXT
|
||||
LD A,(HL)
|
||||
AND A
|
||||
JR Z,UTXS_END
|
||||
; check transmitter ready
|
||||
CALL UART_WAIT_TR_INT
|
||||
JR C, UTXS_TXNR
|
||||
; transmitt byte
|
||||
LD A,(HL)
|
||||
INC HL
|
||||
LD (DE),A
|
||||
JR UTXS_NEXT
|
||||
; CF=0
|
||||
UTXS_END
|
||||
AND A
|
||||
UTXS_TXNR
|
||||
CALL ISA.ISA_CLOSE
|
||||
POP HL,DE
|
||||
RET
|
||||
|
||||
|
||||
|
||||
|
||||
; ------------------------------------------------------
|
||||
; Empty receiver FIFO buffer
|
||||
; ------------------------------------------------------
|
||||
UART_EMPTY_RS
|
||||
PUSH AF, HL
|
||||
CALL ISA.ISA_OPEN
|
||||
LD A, FCR_TR8 | FCR_RESET_RX | FCR_FIFO
|
||||
PUSH DE, HL
|
||||
LD E, FCR_TR8 | FCR_RESET_RX | FCR_FIFO
|
||||
LD HL, REG_FCR
|
||||
LD (HL), A
|
||||
CALL ISA.ISA_CLOSE
|
||||
POP HL, AF
|
||||
CALL UART_WRITE
|
||||
POP HL, DE
|
||||
RET
|
||||
|
||||
; ------------------------------------------------------
|
||||
@ -259,7 +313,7 @@ UART_EMPTY_RS
|
||||
; ------------------------------------------------------
|
||||
UART_WAIT_RS1
|
||||
PUSH BC,HL
|
||||
WAIT_MS+* LD BC,0x0000
|
||||
WAIT_MS+* LD BC,0x2000
|
||||
JR UVR_NEXT
|
||||
UART_WAIT_RS
|
||||
PUSH BC,HL
|
||||
@ -274,6 +328,11 @@ UVR_NEXT
|
||||
OR C
|
||||
JR NZ,UVR_NEXT
|
||||
UVR_TO
|
||||
IF TRACE
|
||||
PUSH AF,BC,DE,HL
|
||||
PRINTLN MSG_RCV_EMPTY
|
||||
POP HL,DE,BC,AF
|
||||
ENDIF
|
||||
SCF
|
||||
UVR_OK
|
||||
POP HL,BC
|
||||
@ -288,15 +347,14 @@ ESP_RESET
|
||||
CALL ISA.ISA_OPEN
|
||||
|
||||
LD HL, REG_MCR
|
||||
LD A, MCR_RST | MCR_RTS ; 0110b ESP -PGM=1, -RST=0, -RTS=0
|
||||
LD (HL), A
|
||||
LD A, MCR_RST ;| MCR_RTS ; -OUT1=0 -> RESET ESP
|
||||
LD (REG_MCR), A
|
||||
CALL UTIL.DELAY_1MS
|
||||
;LD HL, REG_MCR
|
||||
LD A, MCR_AFE | MCR_RTS ; 0x22 -RST = 1 -RTS=0 AutoFlow enabled
|
||||
LD A, MCR_AFE | MCR_RTS ; 0x22 -OUT1=1 RTS=1 AutoFlow enabled
|
||||
LD (HL), A
|
||||
|
||||
CALL ISA.ISA_CLOSE
|
||||
|
||||
; wait 2s for ESP firmware boot
|
||||
LD HL,2000
|
||||
CALL UTIL.DELAY
|
||||
|
||||
@ -337,8 +395,8 @@ UART_TX_CMD
|
||||
CALL UART_EMPTY_RS
|
||||
|
||||
; HL - Buffer, BC - Size
|
||||
CALL UTIL.STRLEN
|
||||
CALL UART_TX_BUFFER
|
||||
;CALL UTIL.STRLEN
|
||||
CALL UART_TX_STRING
|
||||
JR NC, UTC_STRT_RX
|
||||
; error, transmit timeout
|
||||
LD A, RES_TX_TIMEOUT
|
||||
@ -413,6 +471,10 @@ UTC_RET
|
||||
POP HL, DE, BC
|
||||
RET
|
||||
|
||||
IF TRACE
|
||||
MSG_RCV_EMPTY
|
||||
DB "Receiver is empty!",0
|
||||
ENDIF
|
||||
|
||||
; Buffer to receive response from ESP
|
||||
RS_BUFF DS RS_BUFF_SIZE, 0
|
||||
|
@ -26,17 +26,14 @@ ISA_RST EQU 0x80
|
||||
; Reset ISA device
|
||||
; ------------------------------------------------------
|
||||
ISA_RESET
|
||||
PUSH AF,BC,HL
|
||||
|
||||
LD BC, PORT_ISA
|
||||
LD A,ISA_RST | ISA_AEN ; RESET=1 AEN=1
|
||||
OUT (C), A
|
||||
CALL UTIL.DELAY_1MS
|
||||
XOR A
|
||||
OUT (C), A ; RESET=0 AEN=0
|
||||
LD HL,20
|
||||
LD HL,100
|
||||
CALL UTIL.DELAY
|
||||
POP HL,BC,AF
|
||||
RET
|
||||
|
||||
; ------------------------------------------------------
|
||||
|
@ -15,7 +15,7 @@ DELAY
|
||||
LD HL,20
|
||||
|
||||
DELAY_NXT
|
||||
CALL SUB_DELAY
|
||||
CALL DELAY_1MS_INT
|
||||
DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
@ -24,7 +24,9 @@ DELAY_NXT
|
||||
POP HL,BC,AF
|
||||
RET
|
||||
|
||||
SUB_DELAY
|
||||
|
||||
|
||||
DELAY_1MS_INT
|
||||
LD BC,400
|
||||
SBD_NXT
|
||||
DEC BC
|
||||
@ -36,13 +38,20 @@ SBD_NXT
|
||||
|
||||
|
||||
|
||||
; TODO: Do it with timer
|
||||
DELAY_1MS
|
||||
PUSH BC
|
||||
CALL SUB_DELAY
|
||||
CALL DELAY_1MS_INT
|
||||
POP BC
|
||||
RET
|
||||
|
||||
DELAY_100uS
|
||||
PUSH BC
|
||||
LD BC,40
|
||||
CALL SBD_NXT
|
||||
POP BC
|
||||
RET
|
||||
|
||||
|
||||
; ------------------------------------------------------
|
||||
; Calc length of zero ended string
|
||||
; Inp: HL - pointer to string
|
||||
|
@ -190,7 +190,7 @@ CMD_SET_SPEED
|
||||
DB "AT+UART_CUR=115200,8,1,0,3\r\n",0
|
||||
CMD_ECHO_OFF
|
||||
DB "ATE0\r\n",0
|
||||
CMD_STATION_MODE
|
||||
CMD_STATION_MODE
|
||||
DB "AT+CWMODE=1\r\n",0
|
||||
CMD_NO_SLEEP
|
||||
DB "AT+SLEEP=0\r\n",0
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
; Set to 1 to turn debug ON with DeZog VSCode plugin
|
||||
; Set to 0 to compile .EXE
|
||||
DEBUG EQU 1
|
||||
DEBUG EQU 0
|
||||
|
||||
; Set to 1 to output TRACE messages
|
||||
TRACE EQU 1
|
||||
@ -75,30 +75,25 @@ START
|
||||
PRINTLN WCOMMON.MSG_ESP_RESET
|
||||
CALL WIFI.ESP_RESET
|
||||
|
||||
CALL WIFI.UART_EMPTY_RS
|
||||
|
||||
LD HL,REG_SCR
|
||||
LD E,0x55
|
||||
CALL WIFI.UART_WRITE
|
||||
|
||||
LD E, FCR_TR8 | FCR_FIFO
|
||||
LD HL, REG_FCR
|
||||
CALL WIFI.UART_WRITE
|
||||
; IF TRACE
|
||||
; ; Dump, DLB=0 registers
|
||||
; LD BC, 0x0800
|
||||
; CALL DUMP_REGS
|
||||
|
||||
; Debug, dump all registers
|
||||
LD BC, 0x0800
|
||||
CALL DUMP_REGS
|
||||
; ; Dump, DLAB=1 registers
|
||||
; LD HL, REG_LCR
|
||||
; LD E, LCR_DLAB | LCR_WL8
|
||||
; CALL WIFI.UART_WRITE
|
||||
|
||||
; LD BC, 0x0210
|
||||
; CALL DUMP_REGS
|
||||
|
||||
; Dump, page2
|
||||
LD HL, REG_LCR
|
||||
LD E, LCR_DLAB | LCR_WL8
|
||||
CALL WIFI.UART_WRITE
|
||||
|
||||
LD BC, 0x0310
|
||||
CALL DUMP_REGS
|
||||
|
||||
LD HL, REG_LCR
|
||||
LD E, LCR_WL8
|
||||
CALL WIFI.UART_WRITE
|
||||
; LD HL, REG_LCR
|
||||
; LD E, LCR_WL8
|
||||
; CALL WIFI.UART_WRITE
|
||||
; ENDIF
|
||||
|
||||
; Turn local echo Off
|
||||
CALL WCOMMON.INIT_ESP
|
||||
|
Loading…
Reference in New Issue
Block a user