|
Подключение внешней памяти через мультиплексированную шину, ATMEGA128 чтение, запись из внешней памяти |
|
|
|
Dec 22 2005, 09:21
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 12-05-05
Пользователь №: 4 940

|
Подскажите пожалуйста как обратится к внешней памяти, используя альтернативные выводы (ALE, WR, RD)? Работаю в CodeVision
........
MCUCR = 0x80; // Разрешаем работу с внешним ОЗУ
XMCRB = 0x07; // Адресные выводы порта С A8...A15 не использовать
а вот как прочитать записать по определенному адресу? Подскажите пожалуйста.
|
|
|
|
|
 |
Ответов
|
Dec 27 2005, 00:45
|

учащийся
    
Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249

|
Цитата(defunct @ Dec 27 2005, 02:00)  Цитата(_artem_ @ Dec 26 2005, 02:10)  defunct , ram kotorij ti upomyanul - on nizkoskorostnoj . Na 16 MHz ne ponyanet bez wait steyta. Lucse ispolzovat fast asynchronous sram's szaderzkoj do 20 nanosec. Primeri podobnyx chipov mozno nayti v STK501 guide gde recommenduyutsya tipy sram'ov dlja zapajki .
20нс абсолютно не нужно. Не настолько быстр AVR как этого хотелось бы. Приведенная мной 70нс память, работает без дополнительных waitstate и на 14.7456 Mhz, и на 16 Mhz. AVR считывает ячейку памяти (без waitstate) за три такта, длительность такта будет равна 62.5 нс при Fosc = 16Mhz, соответственно длительность строба RD/WR равна 2*62.5нс = 125 нс, что вполне удовлетворяет требованиям памяти (у приведенных микросхем памяти длительность цикла чтения/записи - 70нс). Рисунок 13 дата шит атмега 128 - первые два такта используются для установления адреса в латч триггер . Сам сигнал /write (с которого отсчет на выборку ячейки идет) на память начинается вровень с третьим тактом вместе (даже на рисунке видно небольшое запаздывание по отношению к тактовой частоте). В итоге мы получаем не три такта на выборку адреса а один, что в конечном итоге меньше 62.5 наносек на максимальной частоте. (without delay state) Почему то атмел рекомендует 20 нанoсекундные чипы, хотя можно в принципе и 55 наносек поставить. Но вот интересный материал правда на японском http://elm-chan.org/docs/avr/jitter.html. Там видно что тактовая может прыгать на атмегах. Читал что этот эффект используется в мсп430 для того чтобы уменьшить спектр излучения микросхемой эм энергии в соответствии со своими америкосовскими нормами (насчет норм могу и ошибаться). Если атмел тоже это специально сделал в тактовой то наверняка возможна ситуация со временем обрашения меньше чем даже 60 наносек.
--------------------
Зачем лаять на караван , когда на него можно плюнуть?
|
|
|
|
|
Dec 27 2005, 01:30
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(_artem_ @ Dec 27 2005, 02:45)  Рисунок 13 дата шит атмега 128 - первые два такта используются для установления адреса в латч триггер . Сам сигнал /write (с которого отсчет на выборку ячейки идет) на память начинается вровень с третьим тактом вместе (даже на рисунке видно небольшое запаздывание по отношению к тактовой частоте). В итоге мы получаем не три такта на выборку адреса а один, что в конечном итоге меньше 62.5 наносек на максимальной частоте. (without delay state) Эх, сорри, облажался я..  Да вы правы, строб идет не 2 такта, а один.. итого 62.5нс на выборку на 16Mhz. И действительно на 16Mhz память может не успевать. На практике же у нас редко m128 работает на 16mhz (пару раз испытали - память работала устойчиво, разумеется понимаю, что пара раз - не показатель). В основном тактируем мегу 14.7456Mhz, глюков указанной памяти не замечено. (waitstate не ставим). тактируем либо кристалом с запрограммированными фузами CKOUT/CKOPT, либо от внешнего генератора, поэтому тактовая частота у нас не прыгает.. Цитата(_artem_ @ Dec 27 2005, 02:45)  Если атмел тоже это специально сделал в тактовой то наверняка возможна ситуация со временем обрашения меньше чем даже 60 наносек. Врятли, скорее наоборот - в большую сторону.
|
|
|
|
Сообщений в этой теме
nagserg Подключение внешней памяти через мультиплексированную шину Dec 22 2005, 09:21 BVU Цитата(nagserg @ Dec 22 2005, 12:21) Подс... Dec 22 2005, 09:43 Rash А какую внешню память в качестве ОЗУ используете, ... Dec 22 2005, 09:51 defunct Цитата(Rash @ Dec 22 2005, 11:51) А какую... Dec 25 2005, 23:56 nagserg Честно говоря я использую не память, а контроллер ... Dec 22 2005, 11:03 BVU Цитата(nagserg @ Dec 22 2005, 14:03) Чест... Dec 22 2005, 11:58  nagserg Цитата(BVU @ Dec 22 2005, 14:58) Цитата(n... Dec 22 2005, 13:03 mse ЦитатаXMCRB = 0x07; // Адресные выводы порта С A8.... Dec 22 2005, 12:58 mse Цитатаот например в ISP1581 есть адрес Mode 0x0C.
... Dec 22 2005, 13:12 nagserg Спасибо огромное за ответы, смысл понятен, хотелос... Dec 22 2005, 14:06 _artem_ char *ptr_p, getit;
ptr_p = (char*)0xffff;
getit... Dec 22 2005, 14:44 nagserg char* vp = (char *)Определенный Адрес;
char a;
... Dec 26 2005, 09:19 nagserg Цитата(nagserg @ Dec 26 2005, 12:19) char... Dec 26 2005, 10:49  defunct Цитата(nagserg @ Dec 26 2005, 12:49) Каки... Dec 27 2005, 00:28   nagserg Цитата(defunct @ Dec 27 2005, 03:28) Цита... Dec 27 2005, 08:27 defunct > Я DMA не использую пока и всё-таки каким обра... Dec 27 2005, 08:50 nagserg Цитата(defunct @ Dec 27 2005, 11:50) ps: ... Dec 27 2005, 11:50 BVU nagserg, когда Вы хотите использовать обращение к ... Dec 28 2005, 07:55
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|