Микроконтроллеры | Калибровочная константа |
|
---|---|---|
Проблема в следующем. Использую PIC с внутренним генератором. Когда прошивал сам, об этой калибровочной константе и знать ничего не знал. Потом потребовалось большое количество прошитых контроллеров, и я заказал прошивку в фирме, которая занимается их продажей, благо это стоит копейки. Переслал им hex, они прошили, приехал, купил. Решил проверить на всякий случай. Обнаружил отличия в самой последней ячейке. В моей прошивке там ничего нет, т. е. FFh, а в той, что сделали они, записано какое-то число. Позвонил им, сказали, что это калибровочная константа внутреннего генератора, которая закладывается еще на заводе. |
|
|
По-моему эта константа должна располагаться в специальной области, не доступной, для памяти программ. |
|
|
Я тоже так думал, что все это автоматом должно работать, а что же тогда записано в этой самой последней ячейке, о чем я написал выше? Причем в каждом прошитом МК эти цифры разные. |
|
|
Укажите конкретно тип МК. |
|
|
picmaniac: Укажите конкретно тип МК. |
|
|
п.2.2.2.7, п.9.2.5 даташита |
|
|
Спасибо, прочитал. Правда не совсем понял. bsf STATUS, RP0 ;Bank 1 Куда эти строчки вставлять? В инициализацию, или еще куда? А потом, я же ничего такого не писал, я в фирму давал только hex, asm не давал. Как же они смогли прошить тогда эту константу? И зачем?! Я ж не просил и по незнанию не ведал ничего о ней. Erasing the device will also erase the preprogrammed internal calibration value for the internal oscillator. The calibration value must be saved prior to erasing part as specified in the PIC16F630/676 Programming specification. Я так понял, что если я затер константу, то ее не восстановить? И ее надо предварительно сохранить? А где ее прочесть? И что за Programming specification? Это что, отдельный документ такой? На микрочипе искать? Поищу, почитаю. |
|
|
call 3ffh - вызов подпрограммы по адресу 3ffh. Там калибровочная константа, вернее инструкция RETLW калибровочная константа. Их прошивают на заводе. Вставлять в инициализацию. |
|
|
На заводе в последнюю ячейку памяти программ (адрес 3FFh) записывается команда: Zandy: Выходит дело при самостоятельной прошивке я затираю эту константу и мой генератор выдает частоту не с той точностью, которую можно было бы иметь? И однажды затерев ее, я теряю ее навсегда? АНТОХА меня опередил. |
|
|
Спасибо, понял и Programming specification прочитал. bsf STATUS, RP0 ;Bank 1 Ассемблирую, загружаю hex в icprog. Получаю калиброванный генератор (константа в OSCCAL прописывается?) или нет? Что будет при вторичной перепрошивке? Видимо уже потеряется, так? picmaniac: Поэтому следует сперва произвести чтение и сохранить где-либо прочитанное число. bsf STATUS, RP0 Так? |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |