在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1957|回复: 3

[求助] 请教flash的烧写问题

[复制链接]
发表于 2011-2-21 22:23:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本人初学FPGA,感觉有点困难,理不出头绪。现在对flash  AM29LV160DB  进行简单的擦除、读写操作,借用已有的用picoblaze写的flash控制器,我自己修改了下,怎么擦除都不成功,也不知道问题在哪,怎么调试修改。请教达人对flash的控制最基本应该注意的问题都有哪些?
发表于 2011-2-22 08:14:35 | 显示全部楼层
把代码贴到这,让大家帮着看一下
 楼主| 发表于 2011-2-23 16:10:55 | 显示全部楼层
这是部分擦除的程序
                           CONSTANT FLASH_data_in_port, 02        ;Read data from FLASH device
                           ;
                           CONSTANT FLASH_data_out_port, 10       ;Data to write into FLASH device
                           ;
                           CONSTANT FLASH_addr_hi_port, 80        ;FLASH address[23:16]
                           CONSTANT FLASH_addr_mi_port, 40        ;FLASH address[15:8]
                           CONSTANT FLASH_addr_lo_port, 20        ;FLASH address[7:0]
                           ;
                           CONSTANT FLASH_control_port, 08        ;FLASH control
                           CONSTANT FLASH_read, 01                ;         active High read - bit0
                           CONSTANT FLASH_ce, 02                  ; active Low device enable - bit1
                           CONSTANT FLASH_we, 04                  ;         active Low write - bit2

                           NAMEREG sF, UART_data                  ;used to pass data to and from the UART


                           ;erase chip command sequence
                           ;
                           LOAD s9, 00
                           LOAD s8, 0A
                           LOAD s7, AA
                           LOAD s1, AA
                           CALL FLASH_byte_write
                           LOAD s8, 05
                           LOAD s7, 55
                           LOAD s1, 55
                           CALL FLASH_byte_write
                           LOAD s8, 0A
                           LOAD s7, AA
                           LOAD s1, 80
                           CALL FLASH_byte_write
                           LOAD s8, 0A
                           LOAD s7, AA
                           LOAD s1, AA
                           CALL FLASH_byte_write
                           LOAD s8, 05
                           LOAD s7, 55
                           LOAD s1, 55
                           CALL FLASH_byte_write
                           LOAD s8, 0A
                           LOAD s7, AA
                           LOAD s1, 10
                           CALL FLASH_byte_write
                           ;
                           ;wait for erase to complete by polling status register
                           ;
          chip_erase_loop: CALL FLASH_byte_read                   ;read status register
                           TEST s0, 80                            ;test MSB
                           JUMP NZ, end_chip_erase
                           LOAD UART_data, character_fullstop     ;progress dots
                           CALL send_to_UART
                           CALL delay_1s
                           JUMP chip_erase_loop
                           ;
           end_chip_erase: CALL send_CR
                           CALL send_OK
                           JUMP prompt
                           ;
         abort_chip_erase: CALL send_Abort
                           JUMP prompt



         FLASH_byte_write: OUTPUT s9, FLASH_addr_hi_port          ;set 24-bit address
                           OUTPUT s8, FLASH_addr_mi_port
                           OUTPUT s7, FLASH_addr_lo_port
                           OUTPUT s1, FLASH_data_out_port         ;set data byte to be written
                           LOAD s1, 00                            ;set controls
                           OUTPUT s1, FLASH_control_port
                           LOAD s1, 06                            ;>45ns delay
                           LOAD s1, 06                            ;  but do something useful by preparing register!
                           OUTPUT s1, FLASH_control_port          ;clear controls
                           RETURN


          FLASH_byte_read: OUTPUT s9, FLASH_addr_hi_port          ;set 24-bit address
                           OUTPUT s8, FLASH_addr_mi_port
                           OUTPUT s7, FLASH_addr_lo_port
                           LOAD s1, 05                            ;set controls
                           OUTPUT s1, FLASH_control_port
                           LOAD s1, 06                            ;>70ns delay
                           LOAD s1, 06                            ;   but do something useful by preparing register!
                           INPUT s0, FLASH_data_in_port           ;read data byte
                           OUTPUT s1, FLASH_control_port          ;clear controls
                           RETURN
发表于 2011-2-24 09:08:35 | 显示全部楼层
O_O
不知道这里有没有看得懂的高人。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-14 12:38 , Processed in 0.029586 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表