Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2020-ноя-29 16:13

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 9 сообщений ] 
Автор Сообщение
СообщениеДобавлено: 2014-янв-30 10:11 
Не в сети

Зарегистрирован: 2013-июн-30 10:26
Сообщения: 117
Здравствуйте такая проблема?
Прочитал внимательно форум, но так и не понял адресацию при работе с ВНЕШНЕЙ ШИНОЙ
Память 16 бит * 1.000.000 ячеек ( Память Миландра 1645УРУ)

И так:
Я пишу по адресу 0x60000000 значение 0xA0A0, в отладчике (KEIL) вижу -> 0x60000000 0000A0A0
Дальше пишу по адресу 0x60000004 значение 0x0505, в отладчике (KEIL) вижу -> 0x60000004 00000505

То есть старшие 16 бит не записываются у меня.
Начинаю пробывать различные варианты
ячейки памяти с шагом 2 и с шагом 1. и записывать туда различные данные:
Например:
Я пишу по адресу 0x60000000 значение 0xA0, в отладчике (KEIL) вижу -> 0x60000000 0000XXA0
Дальше пишу по адресу 0x60000001 значение 0x05, в отладчике (KEIL) вижу -> 0x60000004 0000XX05

Вопрос:
Чтобы в моей памяти первые 16 бит располагались по адресу 0
вторые 16 бит располагались по адресу 1 и так далее...
Вообщем подряд.

КАК мне нужно записывать и считывать данные при работе с ВНЕШНЕЙ ШИНОЙ ?
или же
то что я вижу
Я пишу по адресу 0x60000000 значение 0xA0A0, в отладчике (KEIL) вижу -> 0x60000000 0000A0A0
Дальше пишу по адресу 0x60000004 значение 0x0505, в отладчике (KEIL) вижу -> 0x60000004 00000505

это и есть запись подряд?


Вернуться к началу
СообщениеДобавлено: 2014-янв-30 14:20 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 734
Откуда: АО "ПКК Миландр"
ksluk писал(а):
Здравствуйте такая проблема?
Прочитал внимательно форум, но так и не понял адресацию при работе с ВНЕШНЕЙ ШИНОЙ
Память 16 бит * 1.000.000 ячеек ( Память Миландра 1645УРУ)

И так:
Я пишу по адресу 0x60000000 значение 0xA0A0, в отладчике (KEIL) вижу -> 0x60000000 0000A0A0
Дальше пишу по адресу 0x60000004 значение 0x0505, в отладчике (KEIL) вижу -> 0x60000004 00000505

То есть старшие 16 бит не записываются у меня.
Начинаю пробывать различные варианты
ячейки памяти с шагом 2 и с шагом 1. и записывать туда различные данные:
Например:
Я пишу по адресу 0x60000000 значение 0xA0, в отладчике (KEIL) вижу -> 0x60000000 0000XXA0
Дальше пишу по адресу 0x60000001 значение 0x05, в отладчике (KEIL) вижу -> 0x60000004 0000XX05

Вопрос:
Чтобы в моей памяти первые 16 бит располагались по адресу 0
вторые 16 бит располагались по адресу 1 и так далее...
Вообщем подряд.

КАК мне нужно записывать и считывать данные при работе с ВНЕШНЕЙ ШИНОЙ ?
или же
то что я вижу
Я пишу по адресу 0x60000000 значение 0xA0A0, в отладчике (KEIL) вижу -> 0x60000000 0000A0A0
Дальше пишу по адресу 0x60000004 значение 0x0505, в отладчике (KEIL) вижу -> 0x60000004 00000505

это и есть запись подряд?
На чем (аппаратные средства) вы проводите свои эксперименты? Если используете демоплату для 1986ВЕ9х и модуль внешней памяти ОЗУ к этой демоплате, то внимательно смотрите схему подключения памяти к шине контроллера. Если используете свои разработки (платы), то представьте схему (если возможно). Пока что маловато информации.


Вернуться к началу
СообщениеДобавлено: 2014-янв-30 14:46 
Не в сети

Зарегистрирован: 2013-июн-30 10:26
Сообщения: 117
Petr писал(а):
ksluk писал(а):
Здравствуйте такая проблема?
Прочитал внимательно форум, но так и не понял адресацию при работе с ВНЕШНЕЙ ШИНОЙ
Память 16 бит * 1.000.000 ячеек ( Память Миландра 1645УРУ)

И так:
Я пишу по адресу 0x60000000 значение 0xA0A0, в отладчике (KEIL) вижу -> 0x60000000 0000A0A0
Дальше пишу по адресу 0x60000004 значение 0x0505, в отладчике (KEIL) вижу -> 0x60000004 00000505

То есть старшие 16 бит не записываются у меня.
Начинаю пробывать различные варианты
ячейки памяти с шагом 2 и с шагом 1. и записывать туда различные данные:
Например:
Я пишу по адресу 0x60000000 значение 0xA0, в отладчике (KEIL) вижу -> 0x60000000 0000XXA0
Дальше пишу по адресу 0x60000001 значение 0x05, в отладчике (KEIL) вижу -> 0x60000004 0000XX05

Вопрос:
Чтобы в моей памяти первые 16 бит располагались по адресу 0
вторые 16 бит располагались по адресу 1 и так далее...
Вообщем подряд.

КАК мне нужно записывать и считывать данные при работе с ВНЕШНЕЙ ШИНОЙ ?
или же
то что я вижу
Я пишу по адресу 0x60000000 значение 0xA0A0, в отладчике (KEIL) вижу -> 0x60000000 0000A0A0
Дальше пишу по адресу 0x60000004 значение 0x0505, в отладчике (KEIL) вижу -> 0x60000004 00000505

это и есть запись подряд?
На чем (аппаратные средства) вы проводите свои эксперименты? Если используете демоплату для 1986ВЕ9х и модуль внешней памяти ОЗУ к этой демоплате, то внимательно смотрите схему подключения памяти к шине контроллера. Если используете свои разработки (платы), то представьте схему (если возможно). Пока что маловато информации.
отладочный набор 1986ВЕ91Т и ОЗУ к ней.

Ну если Вы про то что там адрес начинается с A2 ( то есть формально с цифры 4 ) то я вижу то же самое:
Я пишу по адресу 0x60000004 значение 0xA0A0, в отладчике (KEIL) вижу -> 0x60000004 0000A0A0
Дальше пишу по адресу 0x60000008 значение 0x0505, в отладчике (KEIL) вижу -> 0x60000008 00000505

или так например

Я пишу по адресу 0x60000004 значение 0xA0A0, в отладчике (KEIL) вижу -> 0x60000004 0000A0A0
Дальше пишу по адресу 0x60000006 значение 0x0505, в отладчике (KEIL) вижу -> 0x60000008 00000000


Вернуться к началу
СообщениеДобавлено: 2014-янв-30 15:31 
Не в сети
Аватара пользователя

Зарегистрирован: 2012-авг-07 09:58
Сообщения: 132
ksluk писал(а):

отладочный набор 1986ВЕ91Т и ОЗУ к ней.

Ну если Вы про то что там адрес начинается с A2 ( то есть формально с цифры 4 ) то я вижу то же самое:
Я пишу по адресу 0x60000004 значение 0xA0A0, в отладчике (KEIL) вижу -> 0x60000004 0000A0A0
Дальше пишу по адресу 0x60000008 значение 0x0505, в отладчике (KEIL) вижу -> 0x60000008 00000505

или так например

Я пишу по адресу 0x60000004 значение 0xA0A0, в отладчике (KEIL) вижу -> 0x60000004 0000A0A0
Дальше пишу по адресу 0x60000006 значение 0x0505, в отладчике (KEIL) вижу -> 0x60000008 00000000
Проверьте подключение выводов у микросхемы ОЗУ (могут быть перепутаны):
14 /BHE Вход сигнала разрешения выборки старших разрядов данных4
48 /BLE Вход сигнала разрешения выборки младших разрядов данных.

Код инициализации портов и внешней шины в студию.


Вернуться к началу
СообщениеДобавлено: 2014-фев-06 08:11 
Не в сети

Зарегистрирован: 2013-июн-30 10:26
Сообщения: 117
andrey.s писал(а):
ksluk писал(а):

отладочный набор 1986ВЕ91Т и ОЗУ к ней.

Ну если Вы про то что там адрес начинается с A2 ( то есть формально с цифры 4 ) то я вижу то же самое:
Я пишу по адресу 0x60000004 значение 0xA0A0, в отладчике (KEIL) вижу -> 0x60000004 0000A0A0
Дальше пишу по адресу 0x60000008 значение 0x0505, в отладчике (KEIL) вижу -> 0x60000008 00000505

или так например

Я пишу по адресу 0x60000004 значение 0xA0A0, в отладчике (KEIL) вижу -> 0x60000004 0000A0A0
Дальше пишу по адресу 0x60000006 значение 0x0505, в отладчике (KEIL) вижу -> 0x60000008 00000000
Проверьте подключение выводов у микросхемы ОЗУ (могут быть перепутаны):
14 /BHE Вход сигнала разрешения выборки старших разрядов данных4
48 /BLE Вход сигнала разрешения выборки младших разрядов данных.

Код инициализации портов и внешней шины в студию.
входы 14 и 48 в документации на отладочную плату и на ОЗУ по-разному обозначены.
а так разобрался, были ошибки в программе.
Вопрос только такой:
если мне надо использовать стороннюю ОЗУ емкостью 16 бит.
адресовать я должен с шагом 2?
к примеру:
*( (volatile unsigned long *) 0x60000000 ) = 0xXXXX;
*( (volatile unsigned long *) 0x60000002 ) = 0xXXXX;
*( (volatile unsigned long *) 0x60000004 ) = 0xXXXX;
и так далее?


Вернуться к началу
СообщениеДобавлено: 2014-фев-06 10:08 
Не в сети
Аватара пользователя

Зарегистрирован: 2012-авг-07 09:58
Сообщения: 132
Может все-таки разрядностью 16 бит?
Нет, адресация будет словная, но использоваться будут только младшие 16-бит.
В МК 1986ВЕ94 доработан контроллер внешней системной шины, что позволяет 32-ух разрядными словами обращаться в 16-ти битной памяти.


Вернуться к началу
СообщениеДобавлено: 2014-фев-06 11:25 
Не в сети

Зарегистрирован: 2013-июн-30 10:26
Сообщения: 117
andrey.s писал(а):
Может все-таки разрядностью 16 бит?
Ну да, Вы правы.

andrey.s писал(а):
Нет, адресация будет словная, но использоваться будут только младшие 16-бит.
то есть во так надо:
*( (volatile unsigned SHORT *) 0x60000000 ) = 0xXXXX;
*( (volatile unsigned SHORT *) 0x60000002 ) = 0xXXXX;
*( (volatile unsigned SHORT *) 0x60000004 ) = 0xXXXX;
???
andrey.s писал(а):
В МК 1986ВЕ94 доработан контроллер внешней системной шины, что позволяет 32-ух разрядными словами обращаться в 16-ти битной памяти.
К сожалению по характеристикам ( а точнее по кол-ву ножек подходит пока только МК 1986ВЕ91 ).


Вернуться к началу
СообщениеДобавлено: 2014-фев-06 12:04 
Не в сети
Аватара пользователя

Зарегистрирован: 2012-авг-07 09:58
Сообщения: 132
МК 1986ВЕ94Т это тот же 1986ВЕ91Т, только с доработанной системной шиной.

Скорее так:
*( (volatile unsigned long *) 0x60000000 ) = 0xXXXX1234;
*( (volatile unsigned long *) 0x60000004 ) = 0xXXXX5678;
*( (volatile unsigned long *) 0x60000008 ) = 0xXXXX9ABC;


Вернуться к началу
СообщениеДобавлено: 2014-фев-11 10:00 
Не в сети

Зарегистрирован: 2013-июн-30 10:26
Сообщения: 117
andrey.s писал(а):
МК 1986ВЕ94Т это тот же 1986ВЕ91Т, только с доработанной системной шиной.

Скорее так:
*( (volatile unsigned long *) 0x60000000 ) = 0xXXXX1234;
*( (volatile unsigned long *) 0x60000004 ) = 0xXXXX5678;
*( (volatile unsigned long *) 0x60000008 ) = 0xXXXX9ABC;
Спасибо. Вроде понятно теперь.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 9 сообщений ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти: 

Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB