Jump to content

    

Работа с Parallel NOR Flash

Есть такая память MT28EW01GABA1 - Parallel NOR Flash.

Читал документацию ничего не понял. Как формируется адрес для записи? Там есть адрес сектора и "другой адрес" типа адрес в секторе. Вобщем я не понял по какому принципу формируются адреса и как выставляются данные на шинах.

Шина данных она и командная шина, но я так и не понял алгоритмику работы с памятью.

Может кто то работал с памятью такого типа?

Share this post


Link to post
Share on other sites
2 hours ago, jenya7 said:

Может кто то работал с памятью такого типа?

Работал. Там все просто.

Можно писать по одному байту или слову в зависимости от состояния ноги BYTE#

К примеру, для записи одного байта нужно выполнить четыре записи :

1) по адресу 0xAAA записать 0xAA

2) 0x555 > 0x55

3) 0xAAA > 0xA0

4) по нужному адресу записать нужные данные

И ожидать окончания процесса записи контролируя сигнал RY/BY#

В таблице Standard Command Definitions всё команды подробно описаны.

Если побайтно писать слишком медленно, то есть возможность писать буфером.

Грузим весь буфер (512 байт) необходимыми данными и затем одной командой пишем его в нужное место.

Share this post


Link to post
Share on other sites
1 hour ago, zombi said:

по адресу 0xAAA записать 0xAA

спасибо.

то есть выставить на шине адреса и данных значения?

ADDR[MAX:0] = 0xAAA

DQ[7:0] = 0xAA

и я так понимаю между каждыми пунктами 1) - 4) нужно передергивать строб сигнал?

а как выставить Bus Size - 8 bkb 16 ?

я вижу в зависимости от Bus Size данные адрес-дата резко меняются. пустые значения это don't care?   а я понял. это общее значение.

image.png.1731b608ebf154c176c48c421f96260b.png


 

 

Edited by jenya7

Share this post


Link to post
Share on other sites
11 minutes ago, jenya7 said:

а как выставить Bus Size - 8 bkb 16 ?

Quote

Byte/word organization select: Selects x8 or x16 bus mode. When BYTE# is LOW, the device is in x8 mode and when HIGH, the device is in x16 mode. Under byte configuration, BYTE# should not be toggled during any WRITE operation. Caution: This pin cannot be floated.

 

11 minutes ago, jenya7 said:

и я так понимаю между каждыми пунктами 1) - 4) нужно передергивать строб сигнал?

Если строб сигналом вы называете сигнал WE#, то да им и нужно дёргать )

Хотя вроде можно и CE# дёргать.

См. фиг. WE#-Controlled Program или CE#-Controlled Program

Share this post


Link to post
Share on other sites
1 hour ago, zombi said:

 

спасибо.

я не вижу никакого latch сигнала. есть какое то минимальное время выставления адрес-дата? учитывая что чип не клокируется это как то странно.

Share this post


Link to post
Share on other sites
4 minutes ago, jenya7 said:

спасибо.

я не вижу никакого latch сигнала. есть какое то минимальное время выставления адрес-дата? учитывая что чип не клокируется это как то странно.

В DS есть временные диаграммы всех режимов работы.

Где и проименованы все важные временные интервалы.

В таблицах эти интервалы указаны с точностью до нс.

Чего еще-то надо?

Share this post


Link to post
Share on other sites
1 hour ago, zombi said:

В DS есть временные диаграммы всех режимов работы.

Где и проименованы все важные временные интервалы.

В таблицах эти интервалы указаны с точностью до нс.

Чего еще-то надо?

понял. спасибо.

Share this post


Link to post
Share on other sites

а как формируется адрес?

Quote

The address (defined by the ADDR signal) of a NOR Flash is divided into two parts. The most significant bits of
ADDR indicate the address of a sector/bank/block. Different manufacturers may use any of these terms to describe
this. The least significant bits of ADDR indicate a certain address in the specified sector.
 

то есть ADR[15:8] - адрес сектора а ADR[7:0] адрес в секторе ? но у меня 1024 сектора - они не влезут в байт.

Share this post


Link to post
Share on other sites
1 hour ago, jenya7 said:

они не влезут в байт.

Если у вас чего-то кудато-то не лезет, то причем здесь мс?

в DS четко написано : адрес разделён на две части.

A[MAX:0].

величину MAX уточняете по DS на вашу мс.

количество бит необходимое для адресации единицы информации выясняете согласно положению луны и/или влажности в вашем регионе.

 

Share this post


Link to post
Share on other sites

может я туплю нипадецки но все таки

у меня 1 гигабайт - шина A[24:0]. 1024 блока - A[24:15] 10 бит. остается 15 бит - A[14:0]. размер блока - 128 килобайт - 15 бит недостаточно чтоб адресовать 128 килобайт.

Edited by jenya7

Share this post


Link to post
Share on other sites
44 минуты назад, jenya7 сказал:

может я туплю нипадецки но все таки

у меня 1 гигабайт - шина A[24:0].

Память MT28EW01GABA1 на 1 гигабит, а не на 1 гигабайт.

Старший адрес A25, младший для 16-ти битного режима A0. Итого 26 бит. 2^26 = 67 108 864 слов по 16 бит. Умножаем 67 108 864 на 16 получаем 1 073 741 824 = 1Гб.

Share this post


Link to post
Share on other sites
38 minutes ago, jenya7 said:

у меня 1 гигабайт

Осетра урежте -  у вас 1 гигаБИТ, т.е. 128 мегабайт. Это 27 адресных бит. У вас шина A[25:0] плюс ещё один бит (в 8ми битном режиме) - A-1. Итого 27 битов, всё как в аптеке

 

Share this post


Link to post
Share on other sites

точно. спасибо. теперь надо как то DQ15/A-1 в кор впиндюрить. у меня кор для младших чипов.
 

Edited by jenya7

Share this post


Link to post
Share on other sites
4 hours ago, jenya7 said:

точно. спасибо. теперь надо как то DQ15/A-1 в кор впиндюрить. у меня кор для младших чипов.
 

что такое кор? и зачем туда чегото впендюривать?

Если работаете в 8-ми битном режиме, то считайте что пин DQ15/A-1 это адрес А0, пин A0 это А1, ..., А25 это А26

итого получаете А[26..0] (27 бит необходимых для адресации 128 МегаБайт)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now