Browse Source

Update sd.asm

Optimize SD Card protocol timing delay for CSIO interface.
pull/119/head
Wayne Warthen 6 years ago
parent
commit
eeab786848
  1. 12
      Source/HBIOS/sd.asm

12
Source/HBIOS/sd.asm

@ -866,7 +866,7 @@ SD_INITCARD1:
; MAKE SURE WE FINISH SENDING
#IF ((SDMODE == SDMODE_CSIO) | (SDMODE == SDMODE_MK4) | (SDMODE == SDMODE_SC))
CALL SD_WAITTX ; WAIT FOR TE TO CLEAR
CALL DLY4 ; WAIT A BIT MORE FOR FINAL BIT
CALL DLY32 ; WAIT A BIT MORE FOR FINAL BIT
#ENDIF
;
; PUT CARD IN IDLE STATE
@ -1025,7 +1025,7 @@ SD_INITCARD5:
; PER SPEC, THE CARD SHOULD NOW BE ABLE TO HANDLE FULL SPEED OPERATION
; SO, FOR CSIO OPERATION, WE SET CSIO TO MAXIMUM SPEED
CALL SD_WAITTX ; MAKE SURE WE ARE DONE SENDING
CALL DLY4 ; WAIT A BIT MORE FOR FINAL BIT
CALL DLY32 ; WAIT A BIT MORE FOR FINAL BIT
XOR A ; ZERO MEANS MAX SPEED
OUT (Z180_CNTR),A ; NOW SET CSIO PORT
#ENDIF
@ -1674,12 +1674,10 @@ SD_DESELECT:
; FINISH SENDING AFTER TE IS CLEARED. THE DELAY BELOW WILL
; DO THIS FOR THE SLOWEST POSSIBLE SEND RATE WHICH IS
; CLK / 1320, SO DELAY AT LEAST 1320 T-STATES
;CALL DLY64 ; DELAY FOR FINAL BIT
;
; IN PRACTICE, IT LOOKS LIKE THIS WORST CASE SCENARIO NEVER
; OCCURS. FOR NOW, USE A SMALL DELAY WHICH SEEMS TO BE MORE
; THAN ADEQUATE BASED ON LOGIC ANALYZER TRACES.
CALL DLY4 ; DELAY FOR FINAL BIT
; IN PRACTICE, A SMALLER DELAY IS FINE BASED ON LOGIC ANALYZER
; TRACES.
CALL DLY32 ; DELAY FOR FINAL BIT
#ENDIF
;
LD A,(SD_OPRVAL)

Loading…
Cancel
Save