Свежие обсуждения
Микроконтроллеры

PIC16F877

1 3 4

IDiod: JDM для вас не подойдет!
Ну зачем так категорично? Прекрасно подойдет. Соединять "земли" нельзя только на время программирования, а потом - отключили разъем ICSP от устройства и работаем дальше. Если программируемое устройство связано с компьютером (к примеру, через СОМ-порт), то на время программирования просто временно разъединяем. Это плата за простоту. А в рабочем-то режиме PIC с компьютером не через JDM общается, а через МАХ232 (к примеру).
Человек ведь тоже не способен дышать и глотать одновременно, ну и что же - поочередно ничуть не хуже.

 

А почему нельзя соединять земли (если можно поподрпобнее).
JDM - программа или протокол? Если программа - то она сама по себе исп. другие протоколы.
А то в том программаторе, который я ваяю - земля программатора соединяется с корпусом разъема DB25F, а не с выводами. Этот корпус гальванически соединен с землей на выводах (по-моему 18-25 выводы)?

 

Дорогой тов. Sergeant, Ваш НИК очень созвучен с тов. « Сержант», а по всей вероятности не знаете, что COM порт разрабатывался на протоколе RS 232 специально для буквопечатающих аппаратов, применяющихся у военных связистов. (Кстати до сих пор кое-где применяется. Это говорит вам связист запаса.) А аппараты эти требовали разнополярной посылки. Поэтому, соединив землю COM порта с землёй вашего устройства, вы рискуете получить на выходе не ту полярность. Picmaniac прав. За простоту надо платить.
С JDM программатором я бы советовал быть осторожнее. А если он вам по нраву, тогда развяжите гальванически. Хотя бы через оптроны. Поэтому я использую ProPic, который работает через LPT порт. Но вот он отказывается работать из под Windows XP. Думаю подыскать что-нибудь. Может есть какие мысли? Пока работаю из под 98-го.

 

Sergeant: JDM - программа или протокол?
JDM - это "железка", т.е. платка с деталями. Программа - IC-Prog.
Почему нельзя соединять "земли" - смотрите внимательно схему JDM. Там 12 Вольт для программирования хитро получаются. И "земля" компьютера соединена с выводом питания PIC.
_
Кстати, VitVas, перед работой с EEPROM следует обнулять бит EEPGD в регистре EECON1.
И еще. Те регистры пользователя, к которым необходимо часто обращаться из разных частей программы, удобно располагать по адресам 70h-7Fh. Тогда они доступны из любого банка. Я обычно располагаю там как раз регистры для врЕменного хранения данных.
Сказанное относится к PIC16F873,874,876,877.

 

Теперь понятно...

 

Бит EEPGD обнуляется перед командой разрешения записи. А вот ваши макросы мне понравились. Так почему же не пишется EEPROM?

 

Люди, кто-нибудь может кинуть рабочую ссылку на рабочий компилятор Си для МК PIC16ХХХХ.
Скачал с сайта www.hitech.com PICC lite - он работает только под mplab 6.5
Скачал демо версию PICC 18 - при компиляции виндовс выдает тотальную ошибку с закрытием программы
Сейчас был на microchip.ru там на IAR C и еще какой-то ссылки не рабочие (отсутствует ссылка на файл).
На microchip.com только MPLAB C18 и MPLAB C30 - с помощью них можно запрограммировать PIC16ХХХХ ???

 

VitVas, маловато информации. Сколько экземпляров PIC Вы пробовали запрограммировать? Чем считывали информацию из EEPROM после попытки записи? Программатором? Каков результат? Другим программатором пробовали? И в самой программе, как я понял, тоже пытались записывать (считывать) данные в EEPROM?
Сначала хорошо бы добиться, чтоб всё нормально записывалось и считывалось программатором. А потом уже разбираться, как это организуется в программе.
Вот насчёт компилятора С я ничего не могу сказать. Сам бы не прочь освоить. Пока не возникало необходимости, только на ассемблере пишу. Может быть на форуме kazus.ru посоветуют?

 

VitVas, только что я специально попробовал запрограммировать и считать EEPROM PIC16F876 при помощи JDM. Всё прошло без проблем. Попробуйте прошить hex-файл (присоединен в архиве). Должно получиться как на картинке (в том же архиве). Затем попробуйте прочитать. Вдруг получится

Что-то не присоединяется... Ладно, сделаем иначе:
http://www.pic16.nm.ru/testEE876.zip

 

Ура!!! Все получилось. Я переменные, которые участвуют в чтении-записи EEPROMa, определил в адреса, начиная с h’70’, а сами процедуры чтения-записи восстановил точно, как в учебнике и ВСЁ получилось. Ну а с программатора не писалось, потому что я не на тот адрес их отправлял.
Кстати, picmaniac, вы, случайно не в Екатеринбурге? А то пиво с меня за добрые и ценные советы!
Спасибо.