Чипы dsPIC работают со скоростью, составляющей долю нормальной

У меня две печатные платы. У одного dsPIC30F6012a, у другого dsPIC30F6015. Оба программируются из отдельных автономных проектов HEX в MPLAB X с использованием PICkit 3. Обе прошивки без труда применялись к десяткам устройств до этого момента. В настоящее время прошивка работает корректно при программировании со всех ПК, кроме одного. На этом одном ПК, начиная со вчерашнего дня , обе прошивки программируются без явных ошибок, но выполняются примерно на 1/20 нормальной скорости. До вчерашнего дня этот ПК также без проблем программировал эти платы.

Заставка занимает две минуты вместо пяти секунд, лампочки мигают очень медленно, а кроме этого все работает корректно. Это похоже на то, как если бы биты конфигурации генератора были изменены, но я не знаю нигде в MPLAB X, что можно было бы сделать с автономным проектом.

Итак, две разные прошивки, на двух разных чипах, на нескольких экземплярах одной и той же конструкции печатной платы, работающие с разной скоростью в зависимости только от ПК, используемого для их программирования. Перепрограммирование медленной платы на «хорошем» ПК решает проблему; перепрограммирование той же самой платы на «плохом» ПК возвращает ее обратно. Все, что я могу предположить, это то, что на этом ПК кто-то нажал кнопку «заставить работать медленнее», но я не могу найти ничего с такой пометкой. (Наши специалисты, однако, довольно изобретательны.) В настоящее время я удаляю MPLAB X, стираю пользовательские настройки и переустанавливаю более новую версию. (Переход с 1.3 на 1.6.) Но даже если это исправит ситуацию, я все равно не доволен тем, что не знаю, что происходит. Есть ли у кого-нибудь понимание этой проблемы?

Выполняет ли ПК проверку после программирования? Вы можете проверить биты конфигурации с этим, потому что похоже, что это проблема.
Проверка запущена, да. Ошибок не возникало, поэтому я предположил, что включены биты конфигурации, но я не проверял их вручную. Вероятно, следовало бы, просто для получения дополнительных данных, но мне не хватило времени, и я сразу выбрал решение для удаления/переустановки. Ждем информации о том, сработало это или нет!
Будет ли плата, запрограммированная на медленном ПК, проверяться на «хорошем» ПК?
К сожалению (ха!) переустановка устранила проблему, поэтому я не могу собрать больше данных... затрудняет получение окончательного ответа!
Этот вопрос читается как что-то из технической тематики The Onion .

Ответы (1)

В MPLAB X биты конфигурации не могут быть установлены отдельно от кода (как это позволяла делать MPLAB 8). Единственный способ, которым биты конфигурации могут быть «неправильными», - это если кто-то изменил код. Поскольку вы используете отдельный проект HEX-файла, это маловероятно.

Вы не сказали, действительно ли перепрограммирование одной из «плохих» плат на «работающем» ПК решит проблему. Попробуйте.

Еще одна вещь, которую вы можете сделать (если вы не используете защиту кода), — это прочитать HEX-файл из «рабочей» установки и записать его на одну из неисправных плат. Это должно устранить изменение кода как одну из неопределенностей.

Другой (маловероятный) сценарий заключается в том, что ваш запас dsPIC охватывает несколько ревизий, и пошаговое изменение каким-то образом сделало ваш код недействительным. Убедитесь, что номера деталей ИС указаны правильно, и когда PICkit3 подключится, вы должны увидеть код версии, который вы можете сопоставить с версией кремния.

РЕДАКТИРОВАТЬ: Пришло время убедиться, что различные установки MPLAB X совпадают на всех ПК — они одной и той же версии? Они последней ревизии?

Всякий раз, когда появляется новая версия MPLAB X, прошивка PICkit3 имеет тенденцию обновляться - может быть ошибка или несовместимость со старой прошивкой PICkit3 и вашим HEX-файлом.

Недавно у меня была аналогичная ситуация (теперь, когда меня только что осенило - ага), когда HEX-файл, который я сгенерировал на своей машине с MPLAB X и XC16, правильно программировался на моей машине, но не на другой машине, использующей MPLAB 8 v8. 50 - код стал работать медленнее (светодиоды инициализации казались вялыми). Когда этот компьютер был обновлен с помощью MPLAB 8 v8.88 с использованием того же программатора и того же HEX-файла, все снова заработало. Странный.

Я перепрограммировал одну и ту же плату на «хорошем» и «плохом» ПК, и проблема возникала и исчезала после того, как ПК был использован для программирования платы. Я отредактировал вопрос, чтобы отразить это.