Вопросы по архитектуре микроконтроллеров AVR

Обсуждаем контроллеры компании Atmel.
Ответить
Мучитель микросхем
Сообщения: 430
Зарегистрирован: Вс апр 18, 2021 15:43:55

Сообщение Kalisnik »

- Я правильно понимаю, что "Рабочие регистры" - это внутренняя память ЦПУ МК? И АЛУ непосредственно может работать только с рабочими регистрами? А рабочие регистры уже обмениваются информацией с ОЗУ (SRAM)?
- Физически, рабочие регистры - это часть общей ОЗУ? Или это отдельная ОЗУ в ЦПУ МК?
Реклама
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Рабочие регистры это рабочие регистры, 32 ячейки памяти ядра, ни с какой другой памятью они не связаны.
Но есть специальные команды вроде ld, st, lds, sts специально для пересылки ОЗУ-регистры и lpm/spm для флеш-регистр r0.
Регистры это НЕ часть ОЗУ, но доступ к ним через операции работы с памятью возможен. Физически они устроены по-другому.
Реклама
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

https://yandex.ru/search/?lr=166645&cli ... 1%80%D0%B0
Просто море информации. Хотите, чтобы её за Вас прочитали и тут пересказали ? :facepalm:
Контактная информация:
Мучитель микросхем
Сообщения: 430
Зарегистрирован: Вс апр 18, 2021 15:43:55

Сообщение Kalisnik »

Аlex, нет. Хочу обсуждать ее вместе. Так запоминается легче и чаще всего раскрываются какие-то сложные для понимания нюансы. Это запрещено?
Реклама
Эиком - электронные компоненты и радиодетали
Модератор
Аватара пользователя
Сообщения: 19055
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

я считаю, что это часть общего ОЗУ.
например, в МК АТмега8 рабочие регистры и прочие служебные регистры занимают адреса с 0х00 до 0х5F.
ОЗУ пользователя начинается с адреса 0х60.
и команды обращения к оперативной памяти (lds и sts) работают со всеми регистрами также, как с ячейками SRAM.
и в даташите все регистры и SRAM изображены на общей диаграмме со сплошной адресацией от нуля до "потолка" SRAM.
ВСЕ регистры еще имеют собственное название "Регистровый файл".
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

[uquote="Kalisnik",url="/forum/viewtopic.php?p=4087024#p4087024"]Аlex, нет. Хочу обсуждать ее вместе.[/uquote] Что тут обсуждать ?
Ответ на заданный Вами вопрос ищется за 10 секунд в интернете. Полагаю, поиск на все остальные вопросы займёт времени не более, чем на этот.

Добавлено after 1 minute 52 seconds:
Starichok51, вопрос был про физическое расположение РОН и SRAM. Физически, это разные области. Адресация тут не при чём.
Контактная информация:
Реклама
Модератор
Аватара пользователя
Сообщения: 19055
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

возможно, я не правильно понял вопрос.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Мучитель микросхем
Сообщения: 430
Зарегистрирован: Вс апр 18, 2021 15:43:55

Сообщение Kalisnik »

Аlex писал(а):Что тут обсуждать ?
Да мы уже обсуждаем. :)

Вопрос был не только про физическую память. Вопрос был еще про то, может ли АЛУ МК напрямую работать с другой памятью напрямую, кроме "Регистрового файла"? Т.е. правильно ли, что биты данных для любых арифметических и логических операций в ЦПУ берутся только из "Регистрового файла"?

Добавлено after 7 minutes 21 second:
Т.е. я хочу понять для чего были реализованы РОН. Почему, например, для этих целей не использовать ячейки памяти SRAM?

Добавлено after 1 minute 49 seconds:
Может они работают быстрее? Что-то типа буфера ЦПУ?
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

[uquote="Starichok51",url="/forum/viewtopic.php?p=4087029#p4087029"]я считаю, что это часть общего ОЗУ.[/uquote]
Это не так. Регистры отображаются на память, но не являются ей. В контроллерах постарше на память отображается вообще все: и регистры периферии (РОН кстати уже не отображаются), и флешка, и внешняя память, и даже виртуальные устройства.
может ли АЛУ МК напрямую работать с другой памятью напрямую
Именно AVR нет, но есть другие ядра вроде PIC, которые умеют складывать РОН с оперативкой.

Добавлено after 1 minute 35 seconds:
[uquote="Kalisnik",url="/forum/viewtopic.php?p=4087098#p4087098"]Может они работают быстрее? Что-то типа буфера ЦПУ?[/uquote]
Вместо чтения литературы угадать пытаетесь? Это очень неэффективный способ.
Даже разработка своего ядра эффективнее.
Мучитель микросхем
Сообщения: 430
Зарегистрирован: Вс апр 18, 2021 15:43:55

Сообщение Kalisnik »

COKPOWEHEU писал(а):Вместо чтения литературы угадать пытаетесь?
Нет, делаю все параллельно. Если что-то непонятно, задаю вопрос здесь.
Модератор
Аватара пользователя
Сообщения: 19055
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

Kalisnik, подавляющее число команд (инструкций) в AVR состоит из одного слова (2 байта).
и в одном слове невозможно сделать такое множество комбинаций из нулей и единиц, чтобы АЛУ работало и с РОН и с ОЗУ "полномасштабно".
для работы с ОЗУ команды состоят уже из двух слов - нужно еще указать в команде адрес ячейки ОЗУ.
понятно, что команда из двух слов выполняется в 2 раза медленнее, чем команда из одного слова. то есть, работа с ОЗУ медленнее, чем с РОН.
а адрес ячейки ОЗУ занимает заметно больше 1 байта. и оставшихся бит в первом байте команды недостаточно, чтобы создать большой набор операций с ячейками ОЗУ.
поэтому для работы с ОЗУ существуют только команды различных вариантов пересылки между РОН и конкретной ячейкой.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Сообщение parovoZZ »

РОН-ы? Они всегда относились к периферии. А где расположены - зависит от МК. В последних МК AVR вообще всё находится в едином адресном пространстве, что делает работу с ними в разы приятнее.
Теперь запись в EEPROM выглядит так:

Код: Выделить всё

void EEPROM_write_word (uint8_t eeprom_adr, uint16_t* eeprom_data)
{
    uint16_t*   eeprom;
    
    eeprom = (uint16_t*)(EEPROM_START + eeprom_adr);
    
    *eeprom = *eeprom_data;
    
    while (NVMCTRL.STATUS & NVMCTRL_EEBUSY_bm);
    
    CCP = CCP_SPM_gc;
    NVMCTRL.CTRLA = NVMCTRL_CMD_PAGEERASEWRITE_gc;
}
Аналогично можно "чиркануть" во flash.


Штудируйте даташит - там вся информация есть.
Мучитель микросхем
Сообщения: 430
Зарегистрирован: Вс апр 18, 2021 15:43:55

Сообщение Kalisnik »

Starichok51, спасибо. Теперь стало понятнее.
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

Для начало стоило бы разобраться что такое АЛУ, и что входит в состав АЛУ, а уж потом приплетать сюда ОЗУ flash и EEPROM.
parovoZZ писал(а):РОН-ы? Они всегда относились к периферии.
Ни когда они не относились к периферии.
parovoZZ писал(а):Штудируйте даташит - там вся информация есть.
Начните хотя бы с КР1830ВЕ31.
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Сообщение parovoZZ »

Даже в даташите показано, что РОН-ы не входят в состав АЛУ. Хоть они и связаны напрямую, но таки они отдельно.
Модератор
Аватара пользователя
Сообщения: 19055
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

а никто тут и не говорил такую глупость, что РОН входят в состав АЛУ.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1405
Зарегистрирован: Чт фев 19, 2015 12:41:04

Сообщение astrahard »

А еще, AVR нехорош тем, что большинство инструкций не работают с регистрами 0-15, только с регистрами 16-31. Видимо потому, что Flash, для ускорения работы, сделана 16 разрядной и, поделена на страницы 16 байт. Вообщем архитектура очень примитивна, а периферия и контроллер прерываний изобилует грубыми ляпами.
"Every profession is a conspiracy against the uninitiated" (B. Shaw)
"A textbook can be defined as a book unsuitable for reading" (B. Shaw)
Tautology is humor in "this" place (Vigo Carpathian)
Опытный кот
Аватара пользователя
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков

Сообщение slav0n »

а Си так вообще пофиг где РОНы находятся
ohmycode!
primuss3.com
Контактная информация:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1405
Зарегистрирован: Чт фев 19, 2015 12:41:04

Сообщение astrahard »

Си то пофиг (а быстродействие уменьшается) но, вот прерывания от ШИМ теряются, если их больше одного запрограммировать. Например, установлены прерывания по переполнению и по совпадению. Прерывание по переполнению не вызывается вовсе, если установлено прерывание по совпадению. Все писалось на Си. Интересно, это ляп периферии или ляп контроллера прерываний? Вектора то разные.
"Every profession is a conspiracy against the uninitiated" (B. Shaw)
"A textbook can be defined as a book unsuitable for reading" (B. Shaw)
Tautology is humor in "this" place (Vigo Carpathian)
Опытный кот
Аватара пользователя
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков

Сообщение slav0n »

а что говорит даташит?
ohmycode!
primuss3.com
Контактная информация:
Ответить

Вернуться в «AVR»