FAQ по книгам, общие вопросы

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

Вот читаю Сашку Белова "Микроконтроллеры AVR в радиолюбительской практике", только что то он там намудрил.
Attiny2313
Sram состоит из 3 частей - это 32 байта для РОН, 64 регистра ввода/вывода, и остальные 128 байт - это собственно, адресное пространство внутренней ОЗУ.
Но, вот команды sbi, cbi, sbis, sbic. Они работают только с регистрами ввода/вывода, с РОН они работать не могут. Так? Наш Белов пишет: "...Регистры ввода/вывода, имеющие адрес в диапазоне от 0х00 до 0х1F, доступны для команд SBI, CBI..."
Но как так, вседь по адресному пространству 0х00 до 0х1F у нас находятся 32 РОН.
Заблудил он меня.
...
Не умеешь - не берись, но не взявшись не научишься...
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

Открываешь даташит на интересующий МК и видишь, что РОНы находятся по адресам 0х00...0x1F, затем идут регистры ввода вывода и пр. Затем смотришь в раздел сведений о регистрах (215 стр для тини 2313) и видишь, что к РВВ по адресам 0x20 и выше обращение идет косвенной адресацией а прямая адресация имеете значения от 0x00 до 0x1F. Как то так вот попытался объяснить.
Может кто поправит/дополнит...
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Контактная информация:
Реклама
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

но ведь по адресам 0х00...0x1F находятся РОН, а не РВВ. РВВ находится от 0х20...0х60...
Не умеешь - не берись, но не взявшись не научишься...
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

Итак, МК AVR.
Гарвардская архитектура - память данных и программ разделена аппаратно.
Про память программ все вроди бы ясно - от программного счетчика 9...12разрядный адрес поступает на адресные входы Flash-ПЗУ.
Оттуда, по шине команд 16 битная инструкция, прочитанная из ПЗУ, передается в регистр команд (тоже 16 разрядный), и далее в декодер команд (тоже 16 разрядный).
Так, все понятно, с этим.
Теперь следующее.
Память данных EEPROM и память данных (32РОН, 64РВВ,...байт ОЗУ) тоже между собой разделены. Только как в них ячейки адресуются? где шина адреса?
шина данных вообще от flash-пзу нету? Она, как я понял, только между памятью ОЗУ и EEPROM...и др. переферийными устройствами.
Но как тогда, например, в РОН помещается непосредственное значение? Оно же в программной памяти записано! А шины данных там нет!
Вложения
Фото1897.jpg
(67.94 КБ) 373 скачивания
Не умеешь - не берись, но не взявшись не научишься...
Реклама
Эиком - электронные компоненты и радиодетали
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

Откуда сей чудный рисунок? :wink:
В оригинале чуть-чуть по-другому :tea:
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Реклама
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

рисунок нарисовал - это как я думаю.
В оригинале (в даташите) я вообще не нашел 16 разрядной шины. Есть только 8 разрядные...
До сих пор мучаюсь с этой гарвардской архитектурой.
Привык просто к интел8080 и хоть хвост обломи...
Не умеешь - не берись, но не взявшись не научишься...
Реклама
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

подскажите, разрядность вот этой шины...
Вложения
tiny2313_s.gif
(25.74 КБ) 388 скачиваний
Не умеешь - не берись, но не взявшись не научишься...
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»