Проблема однозначно с кодом, по тому как сбой при одной и той же внешней команде. Смущает то, что в симуляторе все нормально. Или симулятор AVR Studio и реальный камень не тождественны? На счет перехода на нулевой вектор на 100% не уверен, но очень похоже, поскольку начальные значения, которые устанавливаю при старте устанавливаются и при сбое, дальше все как после включения питания но некоторые команды (устройства в целом а не контроллера) реботают уже не адекватно. Повторюсь, что такое же явление наблюдал на другом устройстве с Mega8515, но там оно проявлялось в случайные моменты (или закономерность была не очевидна). Навеска емкостей по питанию и замена камней проблему не снимала, как не снимает и в этом случае (керамика 0,15 на каждом корпусе плюс электролиты 470мкф на каждой плате). Код в ближайшее время выложу, просто при моем любительском стиле написания боюсь, что вежливо пошлют, учитывая, что написано на ASM и почти без коментариев, да и перевалило уже за 3 кб.
Ув. prottoss. По поводу бита совместим с S8515. При прошивке оставлял этот бит с заводской установкой, т.е. 1(незапрограмирован), что по описанию соответствует режиму MEGA. К сожалению устройство сейчас на обкатке в другом городе, а на голом камне поэкспериментировать не смогу. Вопрос: в предложении "Снимите бит совместимости с AT90S8515 - "C8515"" Вы имели в виду сбросить его в ноль, т.е. перейти в режим совместимости с S8515, или "снять" в смысле выключить этот режим? С AT90S8515 не работал, но если не ошибаюсь, она не поддерживает команд умножения, которые у меня используются.
Коротко об устройстве. Простейшее устройство ЧПУ для фрезерного станка. Основнвя часть на одной Mega8515, контроллер привода (следящая часть) на трех Mega48 (по одному на каждую ось станка), которые с Mega8515 общаются через SPI (связь односторонняя). Кроме этого к Mega8515 подцеплено 32к внешнего СОЗУ и на этой же шине сидят контроллер клавиатуры/индикации на i8279 (К580ВГ79) и два регистра К580ИР82 для управления автоматикой станка.
|