Миландр

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

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
СообщениеДобавлено: 2017-окт-23 13:14 
Не в сети

Зарегистрирован: 2017-окт-23 09:47
Сообщения: 1
Процессор 1986ВЕ1Т.
Проблема с побайтовым чтением из 16-и битного внешнего ОЗУ.
В регистре EXT_BUS_CONTROL, установлен бит LOW16.
Неправильно работает чтение байта, всегда считывается старший байт.
Также контроллер не устанвливает выводы BE0, BE1.
Делаем следующее:
1. Записываем 16-и битное слово 0x5678
2. Отладчиком контролируем: 0:0x78 1:0x56
3. Читаем слово по адресу 0, читается 0x5678
4. Читаем один байт по адресу 0, читается 0x56
5. Читаем один байт по адресу 1, читается 0x56
6. Пишем один байт 0xAA по адресу 0.
7. Отладчиком контролируем: 0:0xAA 1:0x00

volatile uint16_t *ptr16 = (volatile uint16_t*)SRAM_START_ADDR;
volatile uint8_t *ptr8 = (volatile uint8_t*)SRAM_START_ADDR;
uint16_t tst16;
uint8_t tst0, tst1;
*ptr16 = 0x5678;

tst0 = ptr8[0];
tst1 = ptr8[1];
tst16 = ptr16[0];
printf("%04x %02x %02x\n", tst16, tst0, tst1);
Выводит 5678 56 56

После того как переделали шину в 8-и разрядный режим и установили бит EBC_CONTROL_LOW8, перестало работать чтение 16-и разрядного слова:
volatile uint32_t *ptr32 = (volatile uint32_t*)SRAM_START_ADDR;
volatile uint16_t *ptr16 = (volatile uint16_t*)SRAM_START_ADDR;
volatile uint8_t *ptr8 = (volatile uint8_t*)SRAM_START_ADDR;
uint32_t tst32;
uint16_t tst16;
uint8_t tst0, tst1;

tst0 = ptr8[0];
tst1 = ptr8[1];
tst16 = ptr16[0];
tst32 = ptr32[0];
printf("%08x %04x %02x %02x\n",tst32 , tst16, tst0, tst1);
Выводит 12345678 0000 75 56
:


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2017-окт-27 18:34 
Не в сети

Зарегистрирован: 2017-июл-24 10:16
Сообщения: 55
какая микросхема памяти и как ее прицепили к контроллеру?
у меня с 1986ве3, имел проблеммы с внешней памятью - разобрался
для 32 битного режима она подключается A0 памяти на A2 контроллера
отдельные байты выбираются с помощью BE0...BE3


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

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB