Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
24.01.2008, 03:44
|
#1
|
Прохожий
Регистрация: 02.01.2008
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Как организовать доступ к памяти?
Здравствуйте! Подскажите пожалуйста, как организовать взаимодействие микроконтроллера с памятью. Как я понимаю, память состоит из множества ячеек,которые объединены в байты (при байтовой организации).А каждый адрес в памяти указывает только на один байт. Вопрос:
1 Правильно ли я понимаю устройство памяти
2 Как адресовать ее микроконтроллеру
3 Как вообще производится запись N байтов в память: нужно ли перед каждым посланным байтом выставлять адрес следующей ячейки(если да, то каким образом это делается)?_
|
|
|
|
24.01.2008, 05:48
|
#2
|
Прописка
Регистрация: 16.04.2004
Сообщений: 201
Сказал спасибо: 337
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Вы поконкретнее задачу опишите. Какой контроллер, какая память? А то на ваш вопрос можно целый учебник писать сюда.
|
|
|
|
24.01.2008, 19:24
|
#3
|
Прохожий
Регистрация: 02.01.2008
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Меня интересует самый общий случай. Например, для организaции взаимодействия микроконтроллера со светодиодом достаточно лишь подавать/отключать сигнал соответствующего вывода, к которому подключен светодиод. Но ведь с памятью дело обстоит сложнее!
Скажем, имеется контроллер PIC16F84A и EEPROM КМ1609РР2А 8Kx8, у которой 13 адресных входов,8 информационных выводов вход/выход, ну и вход выбора микросхемы.
И нужно записать например три байта информации.
Каким же образом следует выставить адрес памяти и записать данные? и куда должны быть подключены адресные входы, а куда информационные? А еще, насколько я знаю, существует память с автоинкрементом и без него. В чем оличия работы таких микрух?
|
|
|
|
25.01.2008, 07:09
|
#4
|
Прописка
Регистрация: 16.04.2004
Сообщений: 201
Сказал спасибо: 337
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Насколько я понял, Вы говорите о параллельной мкросхеме памяти. С данным контроллером без дополнительных ухищрений полностью задействовать адресное пространство не получится. У него слишком мало портов ВВ. Как вы сами написали, надо 13+8+CS+RD/WR итого как минимум 23 порта. Чтобы просто реализовать все возможности этой памяти, надо использовать более многоногий МК, либо делать аппаратные регистры на шину адреса, а в контроллере использовать один и тот же 8-битный порт сначала для задания 2-х байтов адреса, а после этого уже для передачи данных. В любом случае система того не стоит. Единственное достоинство параллельной памяти - это быстродейтвие и простота протокола обмена. Если наворачивать регистры, то это преимущество сводится к нулю. Выход из ситуации - последовательные микрухи памяти. Для их обслуживания требуется максимум 3 порта в случае SPI, 2 порта в случае I2C, и один порт в случае 1 Wire. Естественно, протокол посложнее чем параллельный, но здесь зато почти нет ограничения на размер адресуемого пространства.
Автоинкремент - это автоматическое увеличение адреса в микросхеме памяти по завершении операции чтения или записи. После этого можно сразу же проводить операции со следующим байтом памяти без предварительной установки адреса, но насколько я понимаю, это фишка только последовательных микросхем. В параллельных это трудно представить.
|
|
|
|
25.01.2008, 08:39
|
#5
|
Вид на жительство
Регистрация: 05.09.2006
Сообщений: 360
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Думаю многим пригодится. Читайте.
http://lord-n.narod.ru/walla.html
Удачи.
|
|
|
|
25.01.2008, 18:37
|
#6
|
Прохожий
Регистрация: 02.01.2008
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Drex
C параллельной памятью вроде бы все понятно-выставляем адрес и записываем данные.А как организовать взаимодействие с последовательной памятью по I2C, ведь у нее нет адресных линий(всего две: SDA и SCL!!!)? Я имею ввиду не протокол, а сам механизм передачи. Т.е.сформировали условие START, затем нужно передать адрес этой памяти(как и куда его нужно передать?),а потом данные(как и куда?). Может быть, где-то есть литература по устройству и взаимодействию с последовательной памятью?
|
|
|
|
25.01.2008, 19:26
|
#7
|
Прописка
Регистрация: 27.11.2004
Сообщений: 175
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
2 oleggun
скачайте и почитайте datasheet на i2c и другие интересующие последовательные мелкосхемы памяти, напр.
http://www.atmel.com/dyn/products/da...?family_id=647
Еще можете погуглить файлик ' Шина I2C в радиотехнических конструкциях (Б.Семёнов) .djvu '
|
|
|
|
30.04.2008, 18:04
|
#8
|
Прохожий
Регистрация: 02.01.2008
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Здесь была размещена неверная ссылка
|
|
|
|
30.04.2008, 18:38
|
#9
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
oleggun
Это что? Не открывается...
|
|
|
|
30.04.2008, 18:42
|
#10
|
Прохожий
Регистрация: 02.01.2008
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Да это не то что нужно- щас удалю
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 13:26.
|
|