Миландр

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

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




Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 2017-авг-01 12:24 
Не в сети

Зарегистрирован: 2017-июл-24 10:16
Сообщения: 57
на работе приобрели плату 1986ВЕ3Т
из прилагаемых примеров сделал только пример с проверкой всей периферии
и у меня назрели такие вопросы:

* какая схематика соответсвует какой ревизии платы, как ее узнать?

* миландр выпускает несколько контроллеров cortex 1986 с различными буквами на конце
на моей плате стоит 1986ВЕ3
но библиотеки, с которыми программа откомпилилась и запустилась называется
MDR32F9Qx_*** то есть предназначена для других контрллеров:
1986ВЕ91 1986ВЕ92 1986ВЕ93 1986ВЕ94
в самих примерах программ включаются то файлы с названием MDR32F9Qx_*
то с названием 1986*, то с названием MDR1986* то с название 1986VE3
нельзяли как то упорядочить билиотеки для разных контролеров
ну или как то разные библиотеки назвать так, чтобы не возникала путаница
предположим
для 1986ВЕ9* оставить MDR1986F9Q*
для 1986ВЕ1 сделать MDR1986VE1
для 1986ВЕ3 сделать MDR1986VE3
и соответсвенно для 1986ВЕ4 сделать MDR1986VE4
я сначала подумал что ВЕ4 этой библиотекой можно пользоватся для ВЕ3
но нет - это разные ядра

* мне на контроллер 1986ВЕ3 нужно повесить ethernet и отдельную RAM
у нас есть дополнтельные платы с памятью 1645РУ4 и отдельным контроллером 5600ВГ1У
будут ли эти дополнительные модули работать с отладочной платой 1986ВЕ3Т?
где можно взять пример для работы RAM: тот пример, который выложен - предназначен для
другой платы и программа просо не компилируется, так как название перферии другое
PORTA вместо MDR_PORTA и прочее
если да, то как обходится ошибка на модуле RAM с перепутаннеми выводами BLE и BHE ?

*где можно взять пример для работы с внешней платой Ethernet с платой 1986ВЕ3Т?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2017-авг-01 13:50 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1187
Откуда: Тула
у 1986ВЕ3Т и так целых ДВА десяти/стомегабитных приёмопередатчика MAC+PHY Ethernet на борту. Их не хватает?

С библиотеками есть некоторый разброд и шатание. По моему мнению лучше использовать библиотеки от сообщества:
сама библиотека https://github.com/eldarkg/emdr1986x-std-per-lib
примеры к ней https://github.com/eldarkg/emdr1986x-std-per-lib-doc
пак для keil и eclipse https://github.com/in4lio/mdr1986x-pack-repo

Модули расширения задумывались как универсальные для ве9х, ве1, ве3 (как минимум), так что если нет ошибок вроде обозначенной - можно пользоваться.

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2017-авг-01 14:08 
Не в сети

Зарегистрирован: 2017-июл-24 10:16
Сообщения: 57
prostoRoman писал(а):
у 1986ВЕ3Т и так целых ДВА десяти/стомегабитных приёмопередатчика MAC+PHY Ethernet на борту. Их не хватает?

не хватает,надо еще 3
поэтому я нарисовал память и хотелось бы иметь примеры чтобы проверить


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2017-авг-01 14:21 
Не в сети

Зарегистрирован: 2016-мар-17 14:12
Сообщения: 52
erik писал(а):
как обходится ошибка на модуле RAM с перепутанными выводами BLE и BHE ?


Если это та плата с двумя 1645РУ4У, что я использовал с отладочной платой для 1986ВЕ94, то ошибка лечится перепайкой платы следующим образом:

BE0 --> nBLE (1645РУ4У 1)
BE1 --> nBHE (1645РУ4У 1)
BE2 --> nBLE (1645РУ4У 2)
BE3 --> nBHE (1645РУ4У 2)

Тут ВЕ0..3 - линии внешней шины микроконтроллера, nBLE & nBHE - выводы микросхем памяти. Ошибка проявляется только при чтении / записи отдельных байтов. Если писать / читать полуслова (16 бит) или слова (32 бит), имеющаяся плата работает без доработки.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2017-авг-01 15:49 
Не в сети

Зарегистрирован: 2017-июл-24 10:16
Сообщения: 57
Alex1979 писал(а):
erik писал(а):
как обходится ошибка на модуле RAM с перепутанными выводами BLE и BHE ?


Если это та плата с двумя 1645РУ4У, что я использовал с отладочной платой для 1986ВЕ94, то ошибка лечится перепайкой платы следующим образом:

BE0 --> nBLE (1645РУ4У 1)
BE1 --> nBHE (1645РУ4У 1)
BE2 --> nBLE (1645РУ4У 2)
BE3 --> nBHE (1645РУ4У 2)

Тут ВЕ0..3 - линии внешней шины микроконтроллера, nBLE & nBHE - выводы микросхем памяти. Ошибка проявляется только при чтении / записи отдельных байтов. Если писать / читать полуслова (16 бит) или слова (32 бит), имеющаяся плата работает без доработки.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2017-авг-01 15:55 
Не в сети

Зарегистрирован: 2016-мар-17 14:12
Сообщения: 52
erik писал(а):
поясните мне одну вещь, я никогда не работал с внешней памятью
там первые 2 адреса смещены чтобы читать можно было только по 4 байта за раз
так ли это?


Не уверен, что понял ваш вопрос. На плате с RAM просто тупо перепутали линии выбора старших и младших байтов. Никакого глубокого философского смысла в этом нет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2017-авг-01 16:31 
Не в сети

Зарегистрирован: 2017-июл-24 10:16
Сообщения: 57
Alex1979 писал(а):
erik писал(а):
поясните мне одну вещь, я никогда не работал с внешней памятью
там первые 2 адреса смещены чтобы читать можно было только по 4 байта за раз
так ли это?


Не уверен, что понял ваш вопрос. На плате с RAM просто тупо перепутали линии выбора старших и младших байтов. Никакого глубокого философского смысла в этом нет.

я имею ввиду что линия адреса микросхемы A0 подключается к линии адреса A2
со смещением то есть


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2017-авг-01 17:13 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1187
Откуда: Тула
erik писал(а):
erik писал(а):
поясните мне одну вещь, я никогда не работал с внешней памятью
там первые 2 адреса смещены чтобы читать можно было только по 4 байта за раз
так ли это?

я имею ввиду что линия адреса микросхемы A0 подключается к линии адреса A2
со смещением то есть

Шина адреса выдаёт адрес полностью, но поскольку м/с памяти набраны до 32-х разрядного слова, то используют такое подключение со сдвигом на два бита адреса, а байты выбирают сигналами БЕх. (аналогично было бы с памятью разрядностью 16 бит -- один бит "сдвига" и пара сигналов БЕх, и с 64-х битной памятью - три бита "сдвига" и 8 БЕх)

по поводу пяти портов Ethernet'a: Оцените скорость доступа к трём 5600ВГ1 плюс к ОЗУ, сидящих на одной шине. И сравните с "прямым" доступом к периферии МК (сами контроллеры канала довольно-таки одинаковые на первый взгляд). Думаю производительность такой системы будет не высока, с сложность построения шины и подавно.
Я бы рассмотрел вариант присоединить к одному из портов Ethernet концентратор 5600ВВ3Т, это даст 4 порта с PHY, плюс один свободный у 1986ВЕ3Т, итого пять. Все работают на 10 и 100 мбит, всё настраивается. А может и более предпочтительным окажется вариант 1986ВЕ1Т + два концентратора -- ВЕ1 имеет более высокую тактовую частоту, что важно для разбора информационных потоков.

Вот, кстати, стоит добавить, что контроллер памяти в 1986ВЕ94 более "продвинутый", чем в остальных (более ранних МК)(хотя обещали во все ВЕ9х корпусировать кристалл ВЕ94, но без гарантий)

_________________
сочувствующий…


Последний раз редактировалось prostoRoman 2017-авг-02 08:56, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2017-авг-01 17:37 
Не в сети

Зарегистрирован: 2016-мар-17 14:12
Сообщения: 52
erik писал(а):
я имею ввиду что линия адреса микросхемы A0 подключается к линии адреса A2
со смещением то есть


Так и должно быть.

Микросхем RAM две и у каждой есть два вывода nBLE и nBHE. А у контроллера есть четыре линии BE0, BE1, BE2 и BE3. Плата с памятью устроена таким образом, что когда вы читаете 32-битное слово, то одна его половинка читается из одной микросхемы, другая из другой. Скажем, хотите вы прочитать слово по адресу 0х00000004. При этом на шине адреса окажется именно это значение - А2 = 1, все остальное по нулям. Кроме того линии ВЕ0..3 окажутся в активном состоянии. При этом обе микросхемы памяти выложат на шину данных свои первые полуслова (считаем, что память начинается с нулевого полуслова). Одна микросхема обеспечит старшее полуслово, другая младшее.
Если же вы хотите считать байт по адресу 0х00000004, то на адресной шине окажется тоже что и в предыдущем случае, но активный уровень будет лишь на ВЕ0. ВЕ1..3 будут не активны. При этом одна из микросхем памяти выложит на шину данных только младший байт своего первого полуслова (это если линия ВЕ0 заходит на ее вход nBLE, что как раз и не выполняется на имеющемся железе), а вторая не выложит ничего.
Если захотите считать байт по адресу 0х00000005, получите активную линию ВЕ1 и не активные ВЕ0, ВЕ2 и ВЕ3. ВЕ1 должна заходить на вход nBHE памяти, чтобы она при этом выдала старший байт своего первого полуслова.

В общем, линии адреса А0 и А1 не используются потому, что они не нужны, когда используется 32-битный режим работы внешней шины. Их функции выполняют линии Byte-Enable (BE0..3) внешней шины контроллера. Вот если вам захочется использовать 8-битный режим работы внешней шины, тогда понадобятся все адресные линии начиная от А0. Впрочем я с таким режимом шины в 1986ВЕ94 дела не имел, а про ваш контроллер я вообще ничего не знаю. Может там такого и нет.


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

Зарегистрирован: 2017-июл-24 10:16
Сообщения: 57
Alex1979 писал(а):
erik писал(а):
я имею ввиду что линия адреса микросхемы A0 подключается к линии адреса A2
со смещением то есть


Так и должно быть.

Микросхем RAM две и у каждой есть два вывода nBLE и nBHE. А у контроллера есть четыре линии BE0, BE1, BE2 и BE3. Плата с памятью устроена таким образом, что когда вы читаете 32-битное слово, то одна его половинка читается из одной микросхемы, другая из другой. Скажем, хотите вы прочитать слово по адресу 0х00000004. При этом на шине адреса окажется именно это значение - А2 = 1, все остальное по нулям. Кроме того линии ВЕ0..3 окажутся в активном состоянии. При этом обе микросхемы памяти выложат на шину данных свои первые полуслова (считаем, что память начинается с нулевого полуслова). Одна микросхема обеспечит старшее полуслово, другая младшее.
Если же вы хотите считать байт по адресу 0х00000004, то на адресной шине окажется тоже что и в предыдущем случае, но активный уровень будет лишь на ВЕ0. ВЕ1..3 будут не активны. При этом одна из микросхем памяти выложит на шину данных только младший байт своего первого полуслова (это если линия ВЕ0 заходит на ее вход nBLE, что как раз и не выполняется на имеющемся железе), а вторая не выложит ничего.
Если захотите считать байт по адресу 0х00000005, получите активную линию ВЕ1 и не активные ВЕ0, ВЕ2 и ВЕ3. ВЕ1 должна заходить на вход nBHE памяти, чтобы она при этом выдала старший байт своего первого полуслова.

В общем, линии адреса А0 и А1 не используются потому, что они не нужны, когда используется 32-битный режим работы внешней шины. Их функции выполняют линии Byte-Enable (BE0..3) внешней шины контроллера. Вот если вам захочется использовать 8-битный режим работы внешней шины, тогда понадобятся все адресные линии начиная от А0. Впрочем я с таким режимом шины в 1986ВЕ94 дела не имел, а про ваш контроллер я вообще ничего не знаю. Может там такого и нет.

с этим более менее понятно
проблема еще вот в чем
на дополнительной плате Ram с микрухами 1645ру4
старшие адреса микросхем идут на землю/корпус
зачем это сделано, я так и не понял
на второй странице даташита на эту микросхему
русским по белому написано:
Цитата:
По каждому адресному коду происходит выборка шестнадцати ячеек памяти (по одной в каждом разряде)

если старшие разряды обеих микросхем в нуле
то объем данных которые можно записать/почитать в 4 раза меньше.
разве не так?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2017-авг-01 22:32 
Не в сети

Зарегистрирован: 2017-июл-24 10:16
Сообщения: 57
походу внешняя плата RAM на 1986ВЕ3 работать не будет
потому что плата следана для контроллеров 1986ВЕ9x
смотрю порты C для обоих контролеров:

для ВЕ3:
Изображение

и для ВЕ9:

Изображение

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2017-авг-02 12:28 
Не в сети

Зарегистрирован: 2016-мар-17 14:12
Сообщения: 52
erik писал(а):
если старшие разряды обеих микросхем в нуле
то объем данных которые можно записать/почитать в 4 раза меньше.
разве не так?


Именно так. Вы платите за 4 Мб, получаете 1 Мб. Что тут такого?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2017-авг-02 12:58 
Не в сети

Зарегистрирован: 2017-июл-24 10:16
Сообщения: 57
Alex1979 писал(а):
erik писал(а):
если старшие разряды обеих микросхем в нуле
то объем данных которые можно записать/почитать в 4 раза меньше.
разве не так?


Именно так. Вы платите за 4 Мб, получаете 1 Мб. Что тут такого?

а в чем прикол?
что, в микрухе какие то проблемы с разрядами?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2017-авг-02 13:32 
Не в сети

Зарегистрирован: 2016-мар-17 14:12
Сообщения: 52
erik писал(а):
а в чем прикол?
что, в микрухе какие то проблемы с разрядами?


Тайна сия велика есмь!
Готов спорить, что никаких проблем с разрядами в микрухе нет. С чего бы им быть?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2017-авг-02 16:40 
Не в сети

Зарегистрирован: 2017-июл-24 10:16
Сообщения: 57
был не прав. плата ram должна подходить
ноги контроллера называются по другому.
ввело в заблуждения названия контактов на гребенке


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

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


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

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


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

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