(MCU 8051) STC15W104 >> Assembly >> W25Q64

Read JEDEC ID


參考資訊:
1. w25q64fw.pdf
2. w25qxx github

SPI時序如下:

main.s

  uart_tx set p3.1
  spi_cs  set p3.4
  spi_do  set p3.5
  spi_di  set p3.2
  spi_clk set p3.3
  
  .org 0h
  jmp _start

  .org 100h
_start:
  setb spi_cs
  setb spi_do
  setb spi_di
  setb spi_clk

  ; Read JEDEC ID (9Fh)
  mov a, #9fh
  clr spi_cs
  call spi_txrx
  call spi_txrx
  call uart_tx
  call spi_txrx
  call uart_tx
  call spi_txrx
  call uart_tx
  setb spi_cs
  jmp $

spi_txrx:
  mov r0, #8
  mov r1, a
  mov r2, #0
s0:
  clr spi_clk
  mov a, r1
  rlc a
  mov r1, a
  jc s1
  clr spi_di
  sjmp s2
s1:
  setb spi_di
s2:
  setb spi_clk
  jb spi_do, s3
  clr c
  sjmp s4
s3:
  setb c
s4:
  mov a, r2
  rlc a
  mov r2, a
  djnz r0, s0
  mov a, r2
  ret

  ; 57600,N,8,1
  ; RC 11.0592MHz
uart_tx:
  mov r0, #8
  clr uart_tx
  mov r1, #44
  djnz r1, $
u0:
  rrc a
  jc u1
  clr uart_tx
  sjmp u2
u1:
  setb uart_tx
u2:
  mov r1, #44
  djnz r1, $
  djnz r0, u0
  setb uart_tx
  mov r1, #44
  djnz r1, $
  ret
  .end

編譯程式:

$ mcu8051ide --compile main.s

完成


返回上一頁