реклама на сайте
подробности

 
 
> Научите пожалуйста, как подключить ОЗУ к ATMega8?
li4
сообщение Jun 11 2006, 12:28
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 11-06-06
Пользователь №: 17 980



Я только начинаю изучать цифровую схемотехнику и микроконтроллеры ATmel. Поэтому мне на данном этапе необходима помощь более опытных людей. Задача которую я хочу решить, но не знаю как: подключить внешнее ОЗУ к микроконтроллеру ATMega8. Есть идея использовать микросхему-преобразователь последовательного кода в параллельный для формирования адреса на входах микросхемы памяти. В Интернете я нашел такую микросхему: 74F673A - 16-битный сдвиговый регистр с последовательным входом и параллельным выходом. Для управления этой микросхемой, судя по описанию, нужно 3 сигнала: STCP(Store Clock Pulse Input), R/W(Read/Write Input) и SI/O(Serial Data Input or 3-STATE Serial Output). На 16-выходах74F673A (Q0-Q15) должен сформироваться код, соответствующий загруженному через SI/O- вход. У меня на микроконтроллере ATMega8 свободны выводы PD4(XCK/T0), PD5, PD6. Можно ли их напрямую подключить к входам STCP, R/W и SI/O микросхемы 74F673A? Есть так же свободные выводы ATMega8: PB0,PB1,PB2,PB3(MOSI),PB4(MISO),PB5(SCK),PD6(AIN0),PD7(AIN1). Можно ли их так же подключить напрямую к входам для записи данных(I/O1-I/O8) микросхемы ОЗУ HM6264BLP?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение Jun 11 2006, 15:56
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Ну просто жуткое извращение.

Если всё-таки упорно хотите припаять кучу микросхем то вот вариант:
Адрес 16 бит можно формировать через SPI -> 2 * 74HC595
Далее, чтобы ещё и записывать байт в ОЗУ потребуется третья 74HC595. К ней нужно подвести сигнал EZ, соединённый с WR ОЗУ. CS и OE подцепить на землю. На все три HC595 подать общий LE (строб перезагрузки выходов). Итого будет 2+2 = 4 линии (выхода) от проца. Ещё надо придумать чтение из памяти. Там тоже можно поставить 8-битовый регистр, преобразующий парал. 8 бит в последовательные для считывания по SPI. Защёлкивать в него можно через тот же LE. Таким образом можно подключить память до 64К через 5 линий проца (3 - SPI, WR и LE). Как чтение так и запись в память будет занимать передачу трёх байт по SPI и пары стробов.
__________
XTAL1,XTAL2 можно использовать если фьюзы настроить на работу от внутреннего RC-генератора.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
li4
сообщение Jun 12 2006, 13:13
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 11-06-06
Пользователь №: 17 980



Всем спасибо за ваши ответы. Наиболее точно описал как реализовать то, что я хотел, GetSmart'.
Цитата(GetSmart @ Jun 11 2006, 19:56) *
Ну просто жуткое извращение.
Если всё-таки упорно хотите припаять кучу микросхем то вот вариант:
Адрес 16 бит можно формировать через SPI -> 2 * 74HC595
Далее, чтобы ещё и записывать байт в ОЗУ потребуется третья 74HC595. К ней нужно подвести сигнал EZ, соединённый с WR ОЗУ. CS и OE подцепить на землю. На все три HC595 подать общий LE (строб перезагрузки выходов). Итого будет 2+2 = 4 линии (выхода) от проца. Ещё надо придумать чтение из памяти. Там тоже можно поставить 8-битовый регистр, преобразующий парал. 8 бит в последовательные для считывания по SPI. Защёлкивать в него можно через тот же LE. Таким образом можно подключить память до 64К через 5 линий проца (3 - SPI, WR и LE). Как чтение так и запись в память будет занимать передачу трёх байт по SPI и пары стробов.
Согласен, конечно, что это не самый лучший вариант, проще было бы использовать микроконтроллер, в котором уже заложена возможность подключения памяти. Но мне сейчас важно сделать схему не максимально быстро и изяшно, а научиться работать с микроконтроллерами и памятью. Изящные схемы начну собирать когда наберусь больше опыта.
Я нарисовал схему по описанию, данному GetSmart :
Опасаюсь что в ней могут быть ошибки, поэтому прошу вас посмотреть и если действительно что-то не так, то подсказать как сделать правильно.

Сообщение отредактировал li4 - Jun 12 2006, 13:16
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 12 2006, 14:13
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(li4 @ Jun 12 2006, 16:13) *
Опасаюсь что в ней могут быть ошибки, поэтому прошу вас посмотреть и если действительно что-то не так, то подсказать как сделать правильно.
1)У тебя получилось, что в регистры мл. адреса и данных (DD1, DD8) всегда записывается одинаковая информация. Я бы регистр DD8 подцепил в цепочку к DD1, DD7. При чтении информация в нем не важна и достаточно будет задвинуть 16 бит адреса.
2) сигнал разрешения выхода на DD8 подается одновременно с сигналом записи. А память скорее всего требует чтобы к моменту сигнала записи данные уже стояли. Надо бы задержать сигнал записи RC-цепочкой.
3) Питание на регистры, память и емкости блокировочные у каждого корпуса не забудь.
4) Очень рекомендую керамику 0.1мкф параллельно С1

Сообщение отредактировал Сергей Борщ - Jun 12 2006, 14:15


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- li4   Научите пожалуйста, как подключить ОЗУ к ATMega8?   Jun 11 2006, 12:28
- - haker_fox   Старшие модели ATmega, не помню точно какие, ну на...   Jun 11 2006, 13:43
|- - li4   Цитата(haker_fox @ Jun 11 2006, 17:43) Ст...   Jun 11 2006, 14:09
- - GetSmart   А интересно, бывает ли I2C-шная рама наподобие 24C...   Jun 11 2006, 14:22
|- - li4   Цитата(GetSmart @ Jun 11 2006, 18:22) А и...   Jun 11 2006, 14:50
|- - _Bill   No subject Цитата(GetSmart @ Jun 11 2006, 17...   Jun 14 2006, 12:56
- - defunct   Любые пины можете использовать для эмуляции шины п...   Jun 11 2006, 15:17
- - proba   http://www.myplace.nu/avr/dram/index.htm   Jun 11 2006, 17:47
- - SasaVitebsk   Цитата(li4 @ Jun 11 2006, 15:28) Я только...   Jun 11 2006, 22:34
- - GetSmart   В схеме есть некоторые ошибки, прилагаю свою, сдел...   Jun 12 2006, 21:00
|- - li4   Цитата(GetSmart @ Jun 13 2006, 01:00) В с...   Jun 13 2006, 14:40
- - GetSmart   Дельное замечание: Адресные линии для RAM можно по...   Jun 13 2006, 08:02
|- - Сергей Борщ   Цитата(GetSmart @ Jun 13 2006, 11:02) Жел...   Jun 13 2006, 09:04
- - GetSmart   Всё это так, не без мелких недостатков, но они свя...   Jun 13 2006, 09:38
- - GetSmart   Господа, помогите человеку! Лично я не знаю че...   Jun 13 2006, 15:32
|- - Сергей Борщ   Цитата(GetSmart @ Jun 13 2006, 18:32) Гос...   Jun 13 2006, 16:39
|- - SasaVitebsk   Цитата(Сергей Борщ @ Jun 13 2006, 19:39) ...   Jun 14 2006, 16:19
- - GetSmart   Не пугайте сразу человека кучей конденсаторов. Дос...   Jun 14 2006, 13:05
|- - Сергей Борщ   Цитата(GetSmart @ Jun 14 2006, 16:05) Не ...   Jun 14 2006, 14:01
- - GetSmart   ЦитатаСм продукцию фирмы Ramtron Только это не RAM...   Jun 14 2006, 17:33
- - GetSmart   Ага. Пришёл гений. Можно расходиться. Тока речь ш...   Jun 14 2006, 18:23
- - GetSmart   Bill говорил про FRAM. Это почти RAM. То есть така...   Jun 14 2006, 19:21
- - GetSmart   Будет, если читать/писать по рандом-адресам. Собст...   Jun 14 2006, 20:04


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 16:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01384 секунд с 7
ELECTRONIX ©2004-2016