Steward
分享是一種喜悅、更是一種幸福
微處理器 - STCmicro STC15W104 - Assembly - W25Q64 - Read JEDEC ID
參考資訊:
http://plit.de/asem-51/
https://github.com/nimaltd/w25qxx
http://www.stcisp.com/stcisp620_off.html
https://sourceforge.net/projects/mcu8051ide/
https://www.winbond.com/resource-files/w25q64fw_revk%2007012016%20sfdp.pdf
SPI時序如下:
main.s
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | 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
完成