1887ВЕ3Т

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

yrk
Сообщения: 12
Зарегистрирован: 05 май 2014, 13:47

Re: 1887ВЕ3Т

Сообщение yrk »

Только добрался до форума, жаль не увидел сообщение раньше:) пару дней потратил на поиск решения и нашел, интересно такое же или нет.
Да. Общая суть та же.
До этого при попытке записать просто средствами языка С получал какие-то чудеса, то сообщение записывалось, то нет.
По моим наблюдениям, проблема еще и в XBUS. Она просто не переваривает большого потока данных, нужны паузы, и использовать С, тоже можно, если добавить _nop_(), например, где надо. Дополнительные MOVы в Вашем примере вносят как раз паузы. А я сначала пытался использовать СoMOV для ускорения процесса, чтоб одной командой с префиксом 4 сразу все 8 байт загнать. Так слова писались через одно: нормально, пропущено, нормально... А в итоге оказалось, что замедлять надо.
noatime
Сообщения: 13
Зарегистрирован: 16 янв 2015, 12:04

Re: 1887ВЕ3Т

Сообщение noatime »

YRK писал(а): По моим наблюдениям, проблема еще и в XBUS. Она просто не переваривает большого потока данных, нужны паузы
Возможно, но странно, что, например, с XRAM я таких проблем не заметил, надо будет попробовать с CoMOV туда данные писать, может тоже проявится, а заодно PEC'ом X шину потестировать
noatime
Сообщения: 13
Зарегистрирован: 16 янв 2015, 12:04

Re: 1887ВЕ3Т

Сообщение noatime »

Да, действительно, с XRAM проблем не обнаружилось, я пытался туда и просто писать без каких-либо задержек и с помощью CoMov, все прошло гладко, только PEC повел себя странно: передачи обрывались где-то после 800 слов и PEC просто переставал обрабатывать прерывания. Судя по всему, проблема все же не в XBUS, а в конкретно самих устройствах на шине.
yrk
Сообщения: 12
Зарегистрирован: 05 май 2014, 13:47

Re: 1887ВЕ3Т

Сообщение yrk »

noatime писал(а):Судя по всему, проблема все же не в XBUS, а в конкретно самих устройствах на шине.
Дело в том, что CCU6 и CAN влияют друг на друга каким-то странным случайным образом. Определенные махинации это устраняют, но сам факт... Единственное, что у них общего - это XBUS. А с XRAM я тоже проблем не замечал. Правда, PEC в XRAM я не проверял. Здесь у кого-то были проблемы с PEC-ом в CCU6.
noatime
Сообщения: 13
Зарегистрирован: 16 янв 2015, 12:04

Re: 1887ВЕ3Т

Сообщение noatime »

Составил небольшой список проблем и их решений, с которыми столкнулся при работе с ВЕ3, может кому пригодится.
Вложения
1887ВЕ3Т ERRATA.docx
(23.22 КБ) 270 скачиваний
Sanek
Сообщения: 56
Зарегистрирован: 29 окт 2013, 23:38
Предприятие: НИИЭТ
Откуда: Воронеж

Re: 1887ВЕ3Т

Сообщение Sanek »

noatime писал(а):Составил небольшой список проблем и их решений, с которыми столкнулся при работе с ВЕ3, может кому пригодится.
Отлично!
Могу добавить по 12 пункту вложения 1887ВЕ3Т ERRATA.docx - на форуме НИИЭТ в теме "Настройки Keil для 1887ВЕ3Т" обновлен архив в первом сообщении
( viewtopic.php?f=8&t=116 ).
В частности, там описано, что при замене директивы MOV2 на директиву EXTMAC в опциях настройки МК,
добавляется корректная поддержка MAC:
- поддерживаются мнемоники типа Repeat #24 times, Repeat MRW times;
- правильно компилируются команды типа CoSHR #data4.
Denis
Сообщения: 32
Зарегистрирован: 16 май 2013, 22:01

Re: 1887ВЕ3Т

Сообщение Denis »

Люди, кто-нибудь использовал CAPCOM1,2 в режиме захвата с ССxIO ? Вроде простая вещь, а не получается. Прикладываю проект: на P6.7 формируется ШИМ 1 КГц, CC6 настраиваю в режиме захвата c CC6IO (P6.6), и замыкаю на плате P6.6 -> P6.7. Должны идти прерывания от CC6 а их нет.


А в еррату можно добавить, что режим ожидания считывания в АЦП не работает как следует. По ощущением прерывание готовности АЦП формируется раньше чем данные можно считывать и все затыкается если считывать значение в начале обработчика. Если нопов наставить, худо-бедно работает.
Вложения
pwm+cap.rar
(15.7 КБ) 203 скачивания
noatime
Сообщения: 13
Зарегистрирован: 16 янв 2015, 12:04

Re: 1887ВЕ3Т

Сообщение noatime »

Denis писал(а):Должны идти прерывания от CC6 а их нет
С capcom 1, 2 работать еще не приходилось, но для описываемой задачи могу порекомендовать быстрые внешние прерывания (регистр EXICON, про настройку есть информация в документации на ВЕ6Т).
А в еррату можно добавить, что режим ожидания считывания в АЦП не работает как следует. По ощущением прерывание готовности АЦП формируется раньше чем данные можно считывать и все затыкается если считывать значение в начале обработчика. Если нопов наставить, худо-бедно работает.
А можно поподробнее, при какой конфигурации АЦП такое возникает? Я хочу проверить это на МОП, а то с АЦП проблем пока не замечал, в режиме неоднократного преобразования фиксированного канала без проблем считываются значения, как при использовании прерываний, так и PEC'a.
Denis
Сообщения: 32
Зарегистрирован: 16 май 2013, 22:01

Re: 1887ВЕ3Т

Сообщение Denis »

noatime писал(а):С capcom 1, 2 работать еще не приходилось, но для описываемой задачи могу порекомендовать быстрые внешние прерывания (регистр EXICON, про настройку есть информация в документации на ВЕ6Т).
Хочу CAPCOM - надо измерять частоту. Работал 1000 раз на других процах архитектуры 16x - проблем не было. Разработчики, откликнитесь пожалуйста.
noatime писал(а):А можно поподробнее, при какой конфигурации АЦП такое возникает? Я хочу проверить это на МОП, а то с АЦП проблем пока не замечал, в режиме неоднократного преобразования фиксированного канала без проблем считываются значения, как при использовании прерываний, так и PEC'a.
В регистре ADC_CON есть 9-й бит, который включает режим ожидания считывания. Этот режим означает, что АЦП будет ждать пока считают результат преобразования (не будет запускать следующее преобразование если результат не считан, точнее сделает максимум два преобразования, поскольку там есть буфер на один результат преобразования). Ну так вот, если в самом начале обработчика готовности АЦП прочитать ADC_DAT, то АЦП останавливается (никаких преобразований более не делается). Сначала я добавил нопов перед считыванием ADC_DAT - вроде заработало, но потом опять вылез косяк (подробностей не помню). В общем от греха подальше я отказался от режима ожидания считывания и режима "сканирование группы" и перебираю каналы вручную путем запуска преобразования в обработчике готовности АЦП. К слову сказать, в ST-шных и Infineon-овских процессорах таких проблем нет.
И учтите такой момент - если обработчик "нехилый" и/или в нем вызываются функции, то вполне может быть, что в начале обработчика KEIL наставит команд "push" для сохранения регистров в стек и вы ничего не заметите. Что нопы, что пуши оттягивают момент считывания преобразования относительно возникновения прерывания. Тем не менее, как я говорил, косяк все равно проявился, но я не помню подробностей.
Denis
Сообщения: 32
Зарегистрирован: 16 май 2013, 22:01

Re: 1887ВЕ3Т

Сообщение Denis »

Товарищи старые большевики, CAPCOM1,2 может работать в режиме захвата в принципе? Через какое примерно время можно ждать ответ?
Ответить

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