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

Внешняя шина EBC
https://forum.milandr.ru/viewtopic.php?f=38&t=3739
Страница 1 из 2

Автор:  erik [ 2017-авг-08 15:39 ]
Заголовок сообщения:  Внешняя шина EBC

пытаюсь настроить внешнюю память на плате BE3
которая шла в наборе.
сначала разогнал контроллер до 72 МГц
далее ставлю максимальное количество циклов Wait - 15
по дата sheet: Количество тактов шины AHB, необходимых для стандартного цикла записи/чтения.
то есть для этих микросхем ставлю даже больше чем у них в паспорте
и настраиваю:
  MDR_EBC->CONTROL = 0xf002;// wait state = F +  RAM ON 
далее внешний регион 6000000 из таблицы на стр. 152 :
MDR_EBC->MEM_REGION[2] = 0x1b0f;
USE_READY - НЕ ОПРАШИВАЕТСЯ
WS_HOLD - 3
WS_SETUP - 3
WS_ACTIVE - 7
ENABLE_TUNNING - 1
то есть все в соответсвии с таблицей 131 на стр 150, где указана длительность фаз
пытаюсь писать / читать с адреса 0x60200000 и вверх - смотрю, сигналы выставляются при записи и чтении
но при чтении читаю мусор
в чем может быть проблема?
эту плату памяти вообще запускали на ВЕ3 ?

Автор:  -=Sergei=- [ 2017-авг-08 15:42 ]
Заголовок сообщения:  Re: Внешняя шина EBC

erik писал(а):
пытаюсь настроить внешнюю память на плате BE3
которая шла в наборе.
сначала разогнал контроллер до 72 МГц
далее ставлю максимальное количество циклов Wait - 15
по дата sheet: Количество тактов шины AHB, необходимых для стандартного цикла записи/чтения.
то есть для этих микросхем ставлю даже больше чем у них в паспорте
и настраиваю:
  MDR_EBC->CONTROL = 0xf002;// wait state = F +  RAM ON 
далее внешний регион 6000000 из таблицы на стр. 152 :
MDR_EBC->MEM_REGION[2] = 0x1b0f;
USE_READY - НЕ ОПРАШИВАЕТСЯ
WS_HOLD - 3
WS_SETUP - 3
WS_ACTIVE - 7
ENABLE_TUNNING - 1
то есть все в соответсвии с таблицей 131 на стр 150, где указана длительность фаз
пытаюсь писать / читать с адреса 0x60200000 и вверх - смотрю, сигналы выставляются при записи и чтении
но при чтении читаю мусор
в чем может быть проблема?
эту плату памяти вообще запускали на ВЕ3 ?
У вас есть возможность проверить осциллографом сигналы ?

Автор:  erik [ 2017-авг-08 17:07 ]
Заголовок сообщения:  Re: Внешняя шина EBC

-=Sergei=- писал(а):
erik писал(а):
пытаюсь настроить внешнюю память на плате BE3
которая шла в наборе.
сначала разогнал контроллер до 72 МГц
далее ставлю максимальное количество циклов Wait - 15
по дата sheet: Количество тактов шины AHB, необходимых для стандартного цикла записи/чтения.
то есть для этих микросхем ставлю даже больше чем у них в паспорте
и настраиваю:
  MDR_EBC->CONTROL = 0xf002;// wait state = F +  RAM ON 
далее внешний регион 6000000 из таблицы на стр. 152 :
MDR_EBC->MEM_REGION[2] = 0x1b0f;
USE_READY - НЕ ОПРАШИВАЕТСЯ
WS_HOLD - 3
WS_SETUP - 3
WS_ACTIVE - 7
ENABLE_TUNNING - 1
то есть все в соответсвии с таблицей 131 на стр 150, где указана длительность фаз
пытаюсь писать / читать с адреса 0x60200000 и вверх - смотрю, сигналы выставляются при записи и чтении
но при чтении читаю мусор
в чем может быть проблема?
эту плату памяти вообще запускали на ВЕ3 ?
У вас есть возможность проверить осциллографом сигналы ?
~WR и ~RD нормальные - как и заложено
BE0...BE3 в нуле
сразу несколько не могу - рук не хватает

Автор:  erik [ 2017-авг-08 17:57 ]
Заголовок сообщения:  Re: Внешняя шина EBC

потыкался осциллографом
на всех адресных линиях меандр
кроме линий ~CE1 CE2 - они всегда в нуле
странно, эти линии должны выбирать старшую двойку в адресе 0x200000

Автор:  -=Sergei=- [ 2017-авг-08 18:00 ]
Заголовок сообщения:  Re: Внешняя шина EBC

erik писал(а):
потыкался осциллографом
на всех адресных линиях меандр
кроме линий ~CE1 CE2 - они всегда в нуле
странно, эти линии должны выбирать старшую двойку в адресе 0x200000
А от каких портов МК идут сигналы BE0,1,2,3 и СЕ1,2 и как они сконфигурированы в МК ?

Автор:  erik [ 2017-авг-08 18:15 ]
Заголовок сообщения:  Re: Внешняя шина EBC

-=Sergei=- писал(а):
erik писал(а):
потыкался осциллографом
на всех адресных линиях меандр
кроме линий ~CE1 CE2 - они всегда в нуле
странно, эти линии должны выбирать старшую двойку в адресе 0x200000
А от каких портов МК идут сигналы BE0,1,2,3 и СЕ1,2 и как они сконфигурированы в МК ?
по схеме для модуля RAM - там неправильные ноги
для платы с ВЕ3
я разорался куда они идут, получается так:
ВЕ0...ВЕ3 на PC9 ... PC12
~CE1 и CE2 на ноги PI4 и PI5
сконфигурированы так:
// управление

    /* PORTC пины 9..12 для управления шиной - альтерн ноги ~BE0...~BE3 */
    port_init_struct.PORT_Pin = (PORT_Pin_9 | PORT_Pin_10 | PORT_Pin_11 | PORT_Pin_12);
    port_init_struct.PORT_MODE = PORT_MODE_DIGITAL;
    port_init_struct.PORT_FUNC = PORT_FUNC_ALTER;
    port_init_struct.PORT_SPEED = PORT_SPEED_FAST;
    PORT_Init(MDR_PORTC, &port_init_struct);

    /* PORTC - основн. ноги PC0 и PC1 -  ~WR и ~RD */
    port_init_struct.PORT_Pin = (PORT_Pin_0 | PORT_Pin_1);
    port_init_struct.PORT_MODE = PORT_MODE_DIGITAL;
    port_init_struct.PORT_FUNC = PORT_FUNC_MAIN;
    port_init_struct.PORT_SPEED = PORT_SPEED_FAST;
    PORT_Init(MDR_PORTC, &port_init_struct);

    /* PORTI пины  PI4,PI5 на адреса, которые формируются A20...A21  */
    port_init_struct.PORT_Pin = (PORT_Pin_4 | PORT_Pin_5);
    port_init_struct.PORT_OE = PORT_OE_OUT;
    port_init_struct.PORT_MODE = PORT_MODE_DIGITAL;
    port_init_struct.PORT_FUNC = PORT_FUNC_OVERRID;	// переопределенная
    port_init_struct.PORT_SPEED = PORT_SPEED_FAST;
    PORT_Init(MDR_PORTI, &port_init_struct);


Автор:  Alex1979 [ 2017-авг-09 13:46 ]
Заголовок сообщения:  Re: Внешняя шина EBC

erik писал(а):
я разорался куда они идут, получается так:
Орать не надо! Сохраняйте спокойствие.

Автор:  erik [ 2017-авг-09 17:00 ]
Заголовок сообщения:  Re: Внешняя шина EBC

Alex1979 писал(а):
erik писал(а):
я разорался куда они идут, получается так:
Орать не надо! Сохраняйте спокойствие.
это в другой ветке

да, теперь новая проблема вылезла
пишу в память бегущую единицу
но пишется восьмерка сразу на 4 адреса подряд
в отладчике это вижу
не совсем понятно почему
    for(i = 0; i < 32; i++) {
          addr = reg + i * 4;
          data = 1 << i;
          HWREG(addr) = data;
    }

    for(i = 0; i < 32; i++) {
         addr = reg + i * 4;
         mem[i] = HWREG(addr);
    } 
[ img ]

Автор:  -=Sergei=- [ 2017-авг-09 17:24 ]
Заголовок сообщения:  Re: Внешняя шина EBC

erik писал(а):

да, теперь новая проблема вылезла
пишу в память бегущую единицу
но пишется восьмерка сразу на 4 адреса подряд
в отладчике это вижу
не совсем понятно почему
Т.е. запись в память и чтение заработали ? проблема с сигналами разрешилась ?

Автор:  erik [ 2017-авг-09 17:57 ]
Заголовок сообщения:  Re: Внешняя шина EBC

-=Sergei=- писал(а):
erik писал(а):

да, теперь новая проблема вылезла
пишу в память бегущую единицу
но пишется восьмерка сразу на 4 адреса подряд
в отладчике это вижу
не совсем понятно почему
Т.е. запись в память и чтение заработали ? проблема с сигналами разрешилась ?
да, в соседней ветке я написал
что проблема была в том, что я не затактировал ноги адреса на порту PORTI
но теперь появилась вот такая пробема
может не нужно делать смещение адреса на 2 бита?

Автор:  erik [ 2017-авг-10 12:46 ]
Заголовок сообщения:  Re: Внешняя шина EBC

ну чо, никто не ответить, почему это происходит?
пишу по адресу 0x60200000
даные поторяются по адресам 0x60200004 0x60200008 0x6020000с
пишу на адрес 0x60200004 - повторяются опять по этим же четырем адресам
пишу на 0x6020000с: опять на 0x60200000 0x60200004 0x60200008
записывается одно и тоже.
я что то понять не могу как это получается?

Автор:  azimuth [ 2017-авг-14 23:34 ]
Заголовок сообщения:  Re: Внешняя шина EBC

Ответа не знаю, но может поможет натолкнуть на мысль. Похожее поведение видел на другом процессоре, когда обращался к области памяти где физически ничего не было.

Автор:  -=Sergei=- [ 2017-авг-15 08:41 ]
Заголовок сообщения:  Re: Внешняя шина EBC

erik писал(а):
ну чо, никто не ответить, почему это происходит?
пишу по адресу 0x60200000
даные поторяются по адресам 0x60200004 0x60200008 0x6020000с
пишу на адрес 0x60200004 - повторяются опять по этим же четырем адресам
пишу на 0x6020000с: опять на 0x60200000 0x60200004 0x60200008
записывается одно и тоже.
я что то понять не могу как это получается?
Как память подключена к процессору?
Сколько бит в шине, с как адресные биты процессора соединены с адресными битами микросхем памяти ?

Автор:  erik [ 2017-авг-15 10:26 ]
Заголовок сообщения:  Re: Внешняя шина EBC

-=Sergei=- писал(а):
erik писал(а):
ну чо, никто не ответить, почему это происходит?
пишу по адресу 0x60200000
даные поторяются по адресам 0x60200004 0x60200008 0x6020000с
пишу на адрес 0x60200004 - повторяются опять по этим же четырем адресам
пишу на 0x6020000с: опять на 0x60200000 0x60200004 0x60200008
записывается одно и тоже.
я что то понять не могу как это получается?
Как память подключена к процессору?
Сколько бит в шине, с как адресные биты процессора соединены с адресными битами микросхем памяти ?
2 микросхемы памяти включены паралельно
для младших 2 байт и старших.
старшие линии адреса заземлены
на адрес A0 памяти приходит A2 процессора
[ img ]

Автор:  Alex1979 [ 2017-авг-15 11:44 ]
Заголовок сообщения:  Re: Внешняя шина EBC

Пожалуй поделюсь своей историей про память. Я этот модуль с двумя микросхемами осваивал на отладочной плате для 1986ВЕ94. В принципе больших проблем не возникло, во всяком случае с 32-битным чтением. Главное затактировать все какие нужно порты, настроить выводы на цифровой выход с максимально быстрыми фронтами и правильно запрограммировать регистры контроллера внешней шины (32-битная шина, адекватное количество wait states, RAM).

Проблема возникла когда я свою работающую программу понес показывать в соседнюю лабораторию, где другой человек долго и безрезультатно пытался заставить миландровский пример (работа с памятью) работать на такой же точно отладочной плате, что и у меня. Моя программа там не захотела работать. Потыкавшись осциллографом довольно быстро нашли причину - маленький незадокументированный джампер XP3. На моей плате он изначально был снят, на проблемной плате он стоял. Снятие этого джампера устранило проблему. В общем, осциллограф это совершенно незаменимая вещь.

В вашем случае я бы написал программу с бесконечным циклом, в котором происходит чтение с какого-нибудь адреса, где должна бы по идее быть память, и стал бы разглядывать все подряд сигналы осциллографом на предмет их соответствия документации.

Страница 1 из 2 Часовой пояс: UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/