Миландр
http://forum.milandr.ru/

1986ВЕ1Т не работает внешняя системная шина!!
http://forum.milandr.ru/viewtopic.php?f=34&t=3789
Страница 1 из 1

Автор:  AndreyS [ 2017-ноя-16 10:08 ]
Заголовок сообщения:  1986ВЕ1Т не работает внешняя системная шина!!

Здравствуйте, пытаюсь наладить взаимодействие флэшки K1636РР2У с контроллером 1986ВЕ1Т. Контроллер переведен в 8-ми битный режим. При взаимодействии с флэшкой на внешней шине, контроллер считывает информцию с шины данных только с адресов кратных 4, по остальным адрессам читает 0x00, хотя на шине данные есть. В чем может быть дело? Спасибо.


Пример:
*( (volatile unsigned char*) (0xA0000000) ) = (0xAA)
val =*( (volatile unsigned char*) (0xA0000000) )
Получим val = 0xAA


*( (volatile unsigned char*) (0xA0000001) ) = (0xBB)
val =*( (volatile unsigned char*) (0xA0000001) )
Получим val = 0x00

Автор:  Vasiliy [ 2017-ноя-20 12:22 ]
Заголовок сообщения:  Re: 1986ВЕ1Т не работает внешняя системная шина!!

1. Как произведено включение линий адреса?
МК: MEM:
А0 - A0
А1 - A1
.....

2. ВЕ[] не подключены?

3. EXT_BUS_CONTROL: LOW8 = 1, LOW16 = 0 ?

Автор:  AndreyS [ 2017-ноя-20 14:16 ]
Заголовок сообщения:  Re: 1986ВЕ1Т не работает внешняя системная шина!!

Vasiliy писал(а):
1. Как произведено включение линий адреса?
МК: MEM:
А0 - A0
А1 - A1
.....

2. ВЕ[] не подключены?

3. EXT_BUS_CONTROL: LOW8 = 1, LOW16 = 0 ?


1.
МК: МЕМ:
A0 - A0
A1 - A1
........
AN - AN

2. BE не подключены.

3. Да LOW8 =1, LOW16 = 0.
EBC_InitStruct.EBC_DataAlignment = EBC_EBC_DATA_ALIGNMENT_8;

П.С. Кстати, запись по не кратным 4-м адресм, проходит нормально. Данные на шине выставляются правильные, проблема наблюдается именно при чтении шины данных.

Автор:  AndreyS [ 2017-ноя-24 12:40 ]
Заголовок сообщения:  Re: 1986ВЕ1Т не работает внешняя системная шина!!

Господа-товарищи, есть какие-нибудь идеи и предложения?

Автор:  Vasiliy [ 2017-ноя-27 11:24 ]
Заголовок сообщения:  Re: 1986ВЕ1Т не работает внешняя системная шина!!

Проверил работу шины на плате расширения с 4-мя 1636РР1У. Это отдельная плата которая вставляется в мезонинный разъем на демо-плате 1986ВЕ1Т.
В архиве лежат схемотехнические файлы, чтобы сверить включение микросхем, и проект который записывает 4-ре тестовых 32-разрядных значения.
Эти значения считываются различными способами, в том числе проверяется побайтовое считывание с одной из микросхем.

Данный модуль памяти подключается МК.А2 к мем.А0, поэтому адреса в МК инкрементируются по +4, что для внешней памяти дает байтовый доступ +1.
Вариант с включением МК.А0 к мем.А0, пока проверить не на чем.

Но выставляя при считывании адрес нечетным в TestBus_D8() возвращаются те-же значения байтов, т.е. не кратные 4 адреса не возвращают нули:
arr[i] = *( (volatile uint8_t*) (EXTBUS_ADDR + i * 4 + 1) );
возвращает тоже, что и
arr[i] = *( (volatile uint8_t*) (EXTBUS_ADDR + i * 4) );

То-есть, на мой взгляд, вариант с МК.А0 к мем.А0 тоже будет работать. О чем есть утверждения на форуме.

Надеюсь прилагаемая информация как-то поможет.

Вложения:
Комментарий к файлу: Тест внешней шины
ExtBusD8_Test.zip [205.64 КБ]
Скачиваний: 45

Автор:  AndreyS [ 2017-дек-05 11:42 ]
Заголовок сообщения:  Re: 1986ВЕ1Т не работает внешняя системная шина!!

Спасибо, за ответы. Причина обнаружена. Оказалось просто не срабатывает такое определение выравнивания:
EBC_InitStruct.EBC_DataAlignment = EBC_EBC_DATA_ALIGNMENT_8;
МК стал работать в нормальном 8-ми битном режиме, если инициировать режим так:
EBC_InitStruct.EBC_Mode = EBC_MODE_RAM | EBC_EBC_DATA_ALIGNMENT_8;

Автор:  Vasiliy [ 2017-дек-07 18:05 ]
Заголовок сообщения:  Re: 1986ВЕ1Т не работает внешняя системная шина!!

Странно, поле EBC_InitStruct->EBC_DataAlignment внутри EBC_Init() как раз примешивается к другим флагам, вместе с EBC_InitStruct->EBC_Mode. Все это уходит в регистр MDR_EBC->CONTROL.

Но должно быть выставлено определение USE_MDR1986VE1T, которое в паке выставляется автоматически с выбором микроконтроллера. Иначе его необходимо указать в опциях проекта в закладке C++ в поле Define.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/