Analyzing NOR Flash Timing (S3C2440)

Publisher:trendsetter10Latest update time:2019-05-10 Source: eefocusKeywords:NOR Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

The timing of the programmable access cycle of the S3C2440 memory controller is:

insert image description here

The time parameters (Tacc, Tacs, Tcoh, etc.) in the above figure are all programmable.


Let's take a look at the timing of NOR Flash:

insert image description here

All we need to do is set the timing of the S3C2440 Nor Flash controller (BANK0 of the memory controller) to meet the timing of the Nor Flash chip.

The reference range of each parameter can be obtained through the AC CHARACTERISTICS of Nor Flash.

insert image description here

Combining the two pictures of the Nor Flash chip, we can get the following information:


After sending the address data (Addresses), you need to wait for Taa (required to be greater than or equal to 70ns) time for the address data to be valid;

After sending the chip select signal (CE#), you need to wait for Tce (required to be greater than or equal to 70ns) time before the chip select signal is valid;

After sending the read signal (OE#), you need to wait for the Toe time (required to be greater than or equal to 30ns) for the read signal to be valid;

For simplicity, we send out the address data (Addresses), chip select signal (CE#), and read signal (OE#) at the same time, and then let them all wait for 70ns (wait for the signal to be valid). Corresponding to the read timing diagram of the Nor Flash controller of S3C2440, the address signal A[24:0], chip select signal nGCS, and read signal nOE need to be sent out at the same time, and keep Tacc greater than or equal to 70ns.


According to the reference manual of S3C2240, Nor Flash is connected to BANKCON0, so we only need to set BANKCON0.

insert image description here

The default value of Tacc is 14 clocks. When the system is powered on, a 12MHz crystal oscillator is used. HCLK=12MHz, Tacc=(1000/12*14)≈1166ns. This value is very large and can almost meet all Nor Flash requirements.


After startup, set HCLK to 100MHz, T=1000/100=10ns, Tacc needs to be greater than or equal to 70ns, so set Tacc equal to 101, 8 clocks.


#include "s3c2440_soc.h"


void bank0_tacc_set(int val)

{

BANKCON0 = val << 8;

}


Keywords:NOR Reference address:Analyzing NOR Flash Timing (S3C2440)

Previous article:Code relocation (S3C2440)
Next article:Memory Controller and SDRAM (S3C2440)

Recommended ReadingLatest update time:2024-11-16 14:28

Stm32_Debug Error: Flash Download Failed-"Cortex-M3"
There are generally two situations when rror:Flash Download Failed-"Cortex-M3" appears:   1. In SWD mode, in the Debug menu, the Reset menu option (Autodetect/HWreset/sysresetReq/Vectreset) is AutoDetect by default, just change it to SysResetReq.   2. In Jtag mode, the chip size is wrong. In Flash- Configure Falsh Too
[Microcontroller]
Stm32_Debug Error: Flash Download Failed-
STM flash data read
////   /////////******************************.h file************************************/////////////////////////////////////   #ifndef _FLASH_CTRL_H_   #define _FLASH_CTRL_H_   #ifdef STM32F10X_HD   #define FLASHADDRSTART 0x0807F800 //   #define FLASHADDREND 0x08080000 //   #elif STM32F10X_MD   #define FLAS
[Microcontroller]
How to use JLink to download and burn the boot program to NorFlash
1. Tools and wiring harness preparation 1. Prepare a set of Jlink V8 (try to use this version, other versions have not been verified); 2. Make a JTAG adapter cable from the Jlink downloader to the interface of the mini2440 development board, as shown in Figure 1-3; 3. Install the JLinkARM burning tool (it is recommend
[Microcontroller]
How to use JLink to download and burn the boot program to NorFlash
Add interrupt configuration to the Keil startup file S3C2440.s for S3C2440
Preface This article mainly describes how to add interrupt configuration and interrupt address mapping in the S3C2440.s file that comes with Keil, so that when an interrupt occurs, it can jump to the interrupt service function in the user code. It is currently available in the TQ2440 development board. Project sourc
[Microcontroller]
Cortex-M3 (NXP LPC1788) Watchdog Timer's Impact on Flash Programming
        I have been learning about the windowed watchdog module these days. I had been debugging happily before, but this morning I suddenly could not enter the debugging mode, and could not erase the Flash or download the program. I was depressed for a long time, thinking that there was something wrong with the Keil s
[Microcontroller]
uboot-2011.12 ported to S3C2440 (Sequence 3) —— References for Makefile
references: Chapter 15 of "Wei Dongshan - Complete Handbook of Embedded Linux Application Development" Analysis of start.s of uboot DENX's u-boot is a huge system, and a thorough study of the operation of u-boot's Make is also a huge project. At present, I only refer to the above two reference documents to make a brie
[Microcontroller]
arm: The difference between jlink debugging and direct programming and running [mdk s3c2440]
1. Initialization of global variables. 2. Cases that have not yet been discovered. /****************************************************** / First upload the connection file sct LR_ROM1 0x30000000 0x00010000 { ; load region size_region   ER_ROM1 0x30000000 0x00010000 { ; load address = execution address    *.o
[Microcontroller]
What is the difference between EEPROM and flash in a microcontroller?
Flash is used to store code and cannot be changed during operation; EEPROM is used to store user data and can be changed during operation. For example, the alarm time of a clock is initially set to 12:00, and then changed to 6:00 during operation. This is stored in EEPROM and is not afraid of power failure. Even if the
[Microcontroller]
Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号