Re: 1887ВЕ3Т
Добавлено: 03 мар 2015, 18:09
Я собственно это и делаю специальными макросамиDenis писал(а):Если нужно обрабатывать ошибки шины, то можно, наверно, налету XADRS1 перемапить.
Я собственно это и делаю специальными макросамиDenis писал(а):Если нужно обрабатывать ошибки шины, то можно, наверно, налету XADRS1 перемапить.
У меня тоже были проблемы. CAN было дело не запускался, но я связал это с тем, что инициализация проходила после инструкции EINIT - хоть это и непонятно, но на фоне остального несущественно, я просто перенес вызов инициализации и вроде пока проблем не было.YRK писал(а):CAN контроллер на 20МГц работает нестабильно. Снизил до 16 - нормально. Проявляется в том, что на внешних выводах нет сигналов, хотя регистры пишутся и читаются. Причем, если заработало после старта, то уже работает. Если сразу не запустился, то и не включится.
Но более важен другой момент. Есть подозрения на "странное" поведение XBUS. Крайне нежелательно делать запись в регистры по этой шины два раза и более подряд (двумя последовательными инструкциями). Результат может быть странным. Регистры пишутся, но что-то блокируется в конечном автомате CAN что ли? При этом не важно куда именно происходит запись: в CAN или CCU6. Пошаговая отладка "спасает" ситуацию, видимо благодаря вносимым задержкам. Запуск программы в обычном режиме блокирует CAN. Причем пошаговый проход важен только для тех мест, где есть много обращений к регистрам подряд. Когда пишешь на С, это неудобно, поскольку приходится управлять компилятором. Я добился устойчивой работы (ну пока во всяком случае), перейдя на уровень оптимизации ниже 6-го (constant propagation). Так как "распространение констант" ведет к циклам записи в регистры подряд.
В чём может быть проблема?Тест №1:
Инициализация отладочной системы OCDS...
>>>>>Превышено время ожидания стартового бита при команде IO_SUPERVISOR
Ошибка инициализации Supervisor
0xFF12 0000
Для этого потребуется наличие какой-то специальной прошивки (загрузчика) на ВЕ3? А можете FlashWriter для lpt выложить, а то в соседней теме по ссылкам битые архивыSanek писал(а):Можем дать программку(на стадии тестирования) для программирования контроллера через COM-порт.
Но для этого нужно спаять адаптер на ATTINY2313(для него же можно использовать переходник USBtoCOM).
Напишите куда выслать(если интересно).
Да, есть такой способ через среду Keil. И я указывал на него разработчикам. Странно, что они молчат. Мы тогда долго переписывались. Я составил себе целую папку рекомендаций по работе с ВЕ3Т, включая текстовый файл с порядком установки Keil и т.п. Возможно, Вы для себя что-то там найдете. Могу выслать, не жалко. Вот надо было еще себе errata тоже составить, а то уже некоторые тонкости применения ВЕ3Т забываются . Особенно CAPCOM6 "порадовал" в этом смысле: "половинная" генерация deadtime, некорректная теневая пересылка, и запрет на ноль в регистре скважности. Если что, пишите на rubish собака pochta.runoatime писал(а):Я уже писал на форум, но ответа так и не получил, может все-таки кто-нибудь что-то подскажет?
Обнаружилась проблема с МОП для контроллера: при отключенном jtag, контроллер не стартует сразу по включению питания платы, а только после нажатия кнопки reset, более того на части контроллеров происходит повреждение внутренней памяти, после чего программу надо прошивать заново. Могут ли разработчики как-нибудь это прокомментировать?
И существует ли способ прошить чистый контроллер без внешней памяти? А то получается, что в случае сбоя в конечном изделии, единственный вариант восстановить работоспособность - выпаять контроллер, поставить его на плату с внешней флешкой, записать программу и потом запаять обратно.
Только добрался до форума, жаль не увидел сообщение раньше:) пару дней потратил на поиск решения и нашел, интересно такое же или нет.YRK писал(а): Да, есть такой способ через среду Keil. И я указывал на него разработчикам. Странно, что они молчат.
Код: Выделить всё
__asm{
mov R10, #данные
mov R11, #адрес_поля
mov [R11], R10
}