1887ВЕ3Т

Модераторы: ea, Alis, pip, gurzzza, _sva_

Denis
Сообщения: 32
Зарегистрирован: 16 май 2013, 22:01

Re: 1887ВЕ3Т

Сообщение Denis »

YRK писал(а): Я тоже наверное стал старый :D
У меня так тоже не заработало, хотя делал по совету Шеховцова. Ну, по крайней мере, сходу не заработало... А времени ковыряться нет. К тому же
Да, я все больше склоняюсь к тому что это была шутка со стороны разработчиков, сейчас я пошел таким путем:

1. XADRS1=0x0E83; XBCON1=0x14BF;
2. Осуществляем настройку CAN
3. XADRS1=0x0EC2;
4. XADRS4=0x0E80 XBCON4=0x14BF;

После вышеописанных манипуляций к CAPCOM6 можно обращаться без хитростей, а из регистров CAN доступны ТОЛЬКО регистры областей сообщений. Но, поскольку CAN уже настроен как следует, все работает и совместная работа реально осуществляется. Так что, те кому большего не надо могут быть счастливы.
Но, к сожалению, для меня лично приключения на этом не закончились: мне нужны ПЕК-пересылки в CAPCOM6, а эксперимент показал, что если ПЕК-пересылка в регистр CAPCOM6 прерывает обращение к регистру области сообщений CAN то все рушится. Придется думать дальше. Хотелось бы, конечно, чтобы разработчики сказали: чем ПЕК-пересылки в CAPCOM6 помешали CANу?
Sanek
Сообщения: 56
Зарегистрирован: 29 окт 2013, 23:38
Предприятие: НИИЭТ
Откуда: Воронеж

Re: 1887ВЕ3Т

Сообщение Sanek »

При настройке шины XBUS, если мы хотим использовать и CAN и CC6, то при инициализации регистров XADRS1 и XADRS4 не избежать взаимного пересечения диапазонов памяти. Поэтому можно поступить так:
MOV R1, #0009H
EXTR #1H
MOV XPERCON, R1
NOP
NOP
MOV R1, #0E93H
EXTR #1H
MOV XADRS1, R1
NOP
NOP
MOV R1, #14BFH ;16-bit demux
EXTR #1H
MOV XBCON1, R1
NOP
NOP
MOV R1, #06E80H ; вот здесь как раз и действуем через шестой сегмент
EXTR #1H
MOV XADRS4, R1
NOP
NOP
MOV R1, #04BFH
EXTR #1H
MOV XBCON4, R1
NOP
NOP
EINIT

Это рабочий пример включения двух блоков, дальше просто работаем с регистрами двух блоков, обращаемся к ним по обычным адресам, ничего "передефайнивать" не надо.
Denis
Сообщения: 32
Зарегистрирован: 16 май 2013, 22:01

Re: 1887ВЕ3Т

Сообщение Denis »

Sanek писал(а):При настройке шины XBUS, если мы хотим использовать и CAN и CC6, то при инициализации регистров XADRS1 и XADRS4 не избежать взаимного пересечения диапазонов памяти. Поэтому можно поступить так:
MOV R1, #0009H
EXTR #1H
MOV XPERCON, R1

NOP
NOP
EINIT

Это рабочий пример включения двух блоков, дальше просто работаем с регистрами двух блоков, обращаемся к ним по обычным адресам, ничего "передефайнивать" не надо.
Я, как вы знаете, выкладывал здесь проект для генерации синуса. В стартапе есть процедура BUSCON_Init. Если вас не затруднит - настройте обращение к CAPCOM6 по вашему методу, посмотрите что есть сигнал на выходе и выложите проект на форум. Я же говорю - стал старый и никак у меня не получается.
Denis
Сообщения: 32
Зарегистрирован: 16 май 2013, 22:01

Re: 1887ВЕ3Т

Сообщение Denis »

В дополнение к предыдущему сообщению: только надо удалить настройку X-BUS вначале функции sinus_example.
yrk
Сообщения: 12
Зарегистрирован: 05 май 2014, 13:47

Re: 1887ВЕ3Т

Сообщение yrk »

Sanek писал(а): ....................................
EINIT

Это рабочий пример включения двух блоков, дальше просто работаем с регистрами двух блоков, обращаемся к ним по обычным адресам, ничего "передефайнивать" не надо.
По обычным адресам - это значит, что работаем с CCU6 через 0-ой сегмент, несмотря на настройку окна на 6-ой?
Denis
Сообщения: 32
Зарегистрирован: 16 май 2013, 22:01

CAPCOM6 + CAN

Сообщение Denis »

Вроде заработал CAN с CAPCOM6. По крайней мере несколько десятков минут проработали при частоте ядра 40/2=20 МГц. Рецепт, как я уже писал, такой:

1. XADRS1=0x0E83; XBCON1=0x14BF;
2. Осуществляем настройку CAN
3. XADRS1=0x0EC2;
4. XADRS4=0x0E80 XBCON4=0x4BE;

После вышеописанных манипуляций к CAPCOM6 можно обращаться без хитростей, а из регистров CAN доступны ТОЛЬКО регистры областей сообщений.
Тут в дело вступает магия Вуду: XBCON4 должен быть равен 0x4BE, иные значения которые я пробовал (0x14BF, 0x4BF, ...) приводят к тому, что ПЕК-пересылки в регистры CAPCOM6 все рушат.
Sanek
Сообщения: 56
Зарегистрирован: 29 окт 2013, 23:38
Предприятие: НИИЭТ
Откуда: Воронеж

Re: 1887ВЕ3Т

Сообщение Sanek »

YRK писал(а):
Sanek писал(а): ....................................
EINIT

Это рабочий пример включения двух блоков, дальше просто работаем с регистрами двух блоков, обращаемся к ним по обычным адресам, ничего "передефайнивать" не надо.
По обычным адресам - это значит, что работаем с CCU6 через 0-ой сегмент, несмотря на настройку окна на 6-ой?
ДА
oleg_martynov
Сообщения: 1
Зарегистрирован: 23 дек 2013, 11:11

Re: 1887ВЕ3Т

Сообщение oleg_martynov »

Denis писал(а):Если вас не затруднит - настройте обращение к CAPCOM6 по вашему методу, посмотрите что есть сигнал на выходе и выложите проект на форум.
Добрый день!
Если Вас не затруднит, не могли бы Вы внести небольшую ясность:
1) сообщить настройку начальной конфигурации для макетной платы.
2) если запускаете свой проект с внутренней памяти микроконтроллера, то не могли бы предоставить проект (желательно) или готовые НЕХ файлы (для случаев вывода синусоиды на СС60 и CCOUT63) для его запуска с внешней памяти. Это бы способствовало более детальному изучению проблемы, так как "подружить" выложенные Вами HEX файлы с подключенной внешней памятью не получилось.
Буду ждать Вашего ответа, желательно на почту martinov@niiet.ru
yrk
Сообщения: 12
Зарегистрирован: 05 май 2014, 13:47

Re: 1887ВЕ3Т

Сообщение yrk »

Sanek писал(а):
YRK писал(а):
Sanek писал(а): ....................................
EINIT

Это рабочий пример включения двух блоков, дальше просто работаем с регистрами двух блоков, обращаемся к ним по обычным адресам, ничего "передефайнивать" не надо.
По обычным адресам - это значит, что работаем с CCU6 через 0-ой сегмент, несмотря на настройку окна на 6-ой?
ДА
Это интересно. И XCS4 нормально сформируется, когда бьем мимо окна? Т.е. старшие адресные линии не принимают участия в дешифрации сигнала? Тогда ничего не изменилось.
Попробуйте при таких настройках прочитать регистр идентификации CAN ID. Должно быть 002BC051. Если не читается, то настройка на 6-ой сегмент ничего не изменила, потому что окно CCU6 итак перекрывает окно CAN на первые 256 байт (проверено экспериментально). А начиная с адреса E900 CAN "вылезает из под" CCU6, т.е. все основные регистры CAN итак доступны. Но мне идея наложения окон не нравится, так как это не документировано (в отличие от окон внешней шины). Лучше уж делать, как говорит Denis: переконфигурировать окно CAN на область объектов после настройки CAN. Другое дело, что это не всем подходит. Например, если надо обрабатывать ошибки шины, то одними объектами не обойтись.
Denis
Сообщения: 32
Зарегистрирован: 16 май 2013, 22:01

Re: 1887ВЕ3Т

Сообщение Denis »

YRK писал(а): Это интересно. И XCS4 нормально сформируется, когда бьем мимо окна? Т.е. старшие адресные линии не принимают участия в дешифрации сигнала? Тогда ничего не изменилось.
Попробуйте при таких настройках прочитать регистр идентификации CAN ID. Должно быть 002BC051. Если не читается, то настройка на 6-ой сегмент ничего не изменила, потому что окно CCU6 итак перекрывает окно CAN на первые 256 байт (проверено экспериментально). А начиная с адреса E900 CAN "вылезает из под" CCU6, т.е. все основные регистры CAN итак доступны. Но мне идея наложения окон не нравится, так как это не документировано (в отличие от окон внешней шины). Лучше уж делать, как говорит Denis: переконфигурировать окно CAN на область объектов после настройки CAN. Другое дело, что это не всем подходит. Например, если надо обрабатывать ошибки шины, то одними объектами не обойтись.
CAN ID, может и прочитается, а вот обращение к CAPCOM6 под вопросом. Когда Sanek пишет в XADRS1 0xE93H - мне это не понятно, если верить документации (таблице 11.2а) три младших разряда при окне 2кБ притянуты к 0, т.е. адрес должен быть кратен 2кБ, т.е. E93 и E83 -это одно и тоже. Мне бы все понравилось бы если бы работало. Если нужно обрабатывать ошибки шины, то можно, наверно, налету XADRS1 перемапить.
Ответить

Вернуться в «16-разрядные RISC микроконтроллеры»