Снова PIC16F874

Поклонники продукции Microchip Technology Inc тусуются тут.
dfcbkbq
Открыл глаза
Сообщения: 43
Зарегистрирован: Чт ноя 29, 2012 18:42:28

Снова PIC16F874

Сообщение dfcbkbq »

как расчитать RC-цепочку, которая подключена к ШИМу микроконтроллера, и которая должна идти на полевик, который должен выдавать порядка 20А тока?
Реклама
Аватара пользователя
Bkmz
Нашел транзистор. Понюхал.
Сообщения: 164
Зарегистрирован: Пт сен 02, 2011 09:14:44

Re: Снова PIC16F874

Сообщение Bkmz »

Не буду новую тему создавать, потому что есть проблема с таким контроллером. В общем такая фигня. Порт А весь на выход. Порт С тоже. Так вот выставляю на RA4=1, затем обнуляю весь Порт С и у меня RA4 устанавливается в 0. Почему так? Все делаю в MPLAB+Протеус.
Реклама
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: Снова PIC16F874

Сообщение otest »

Может пому что всё делаеш в в MPLAB+Протеус. Попробуй один МПлаб.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Снова PIC16F874

Сообщение Аlex »

Читаем долго, упорно и оооочень внимательно - http://ww1.microchip.com/downloads/en/D ... 30292D.pdf , если быть точнее - раздел I/O Ports, а ещё точнее - PORTA. После прочтения, Ваш вопрос отпадёт моментально. Если, конечно, читать будете внимательно.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Снова PIC16F874

Сообщение dosikus »

Bkmz, не забываем что RA4 - open drain. Классические грабли...
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Снова PIC16F874

Сообщение Аlex »

Ну вот, dosikus не вытерпел :)) А я хотел чтоб человек сам дочитался до истины :)
Реклама
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Снова PIC16F874

Сообщение dosikus »

Аlex писал(а):Ну вот, dosikus не вытерпел :))
Не говори-ка... :)))
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Снова PIC16F874

Сообщение Аlex »

Мне кажется, нужно уже создавать тему с названием "RA4" и поднимать её в самый верх.
Совсем народ не желает пользоваться документацией. Обленился .... :(
Аватара пользователя
Dmitry Dubrovenko
Поставщик валерьянки для Кота
Сообщения: 2360
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград
Контактная информация:

Re: Снова PIC16F874

Сообщение Dmitry Dubrovenko »

RA4 - open drain
Я, конечно, дико извиняюсь, но какое отношение "открытый сток" имеет к установке порта в "0"?
Полагаю, надо сперва на схему ТС взглянуть.
P.S.: Кстати, в Протеусе, насколько помню, надо ставить пулл-апом "аналоговый" резистор. "Цифровой" не канает.
ICQ нет, и, в ближайшее время, не будет.
Аватара пользователя
Dmitry Dubrovenko
Поставщик валерьянки для Кота
Сообщения: 2360
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград
Контактная информация:

Re: Снова PIC16F874

Сообщение Dmitry Dubrovenko »

otest писал(а):Может пому что всё делаеш в в MPLAB+Протеус. Попробуй один МПлаб.
А ведь всего неделю назад кое-кто поносил меня последними словами за совет не заниматься ДжиДэЭмом. :facepalm:

Нарушение
2.2 Запрещается создание нескольких сообщений подряд в одной теме. Если вы хотите что-то добавить к своему, уже написанному сообщению, воспользуйтесь кнопкой "Правка".
Последний раз редактировалось AlekseyEnergo Пн сен 09, 2013 09:41:52, всего редактировалось 1 раз.
Причина: .
ICQ нет, и, в ближайшее время, не будет.
Аватара пользователя
Bkmz
Нашел транзистор. Понюхал.
Сообщения: 164
Зарегистрирован: Пт сен 02, 2011 09:14:44

Re: Снова PIC16F874

Сообщение Bkmz »

Про открытый сток я прекрасно знаю. Дело в том что самом регистре PORTA он устанавливается в 0. Мне по идее открытый сток и нужен, потому как там светик весит катодом на этот порт. В общем проблему пока решил переносом на свободный RA5. Но все же хотелось бы выяснить на будущее почему так происходит?
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Снова PIC16F874

Сообщение dosikus »

Bkmz писал(а): Но все же хотелось бы выяснить на будущее почему так происходит?
Предлагаете вместе погадать? :)))
Схему и код выложите ...
Аватара пользователя
Bkmz
Нашел транзистор. Понюхал.
Сообщения: 164
Зарегистрирован: Пт сен 02, 2011 09:14:44

Re: Снова PIC16F874

Сообщение Bkmz »

Там где брекпоинт есть комменты, думаю разберетесь. Заодно сразу еще вопрос, как мне преобразовать код набранный в двоично-десятичной системе и преобразовать его в шестнадцатиричную. Считываю я его через регистры по 4 бита, соответственно число в десятичном виде четырехразрядное, так вот как его перевести в шестнадцатиричный вид?
Вложения
Encoder_test.rar
(100.41 КБ) 224 скачивания
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Снова PIC16F874

Сообщение Soir »

Bkmz писал(а):...Дело в том что самом регистре PORTA он устанавливается в 0...
Посмотрите выполняемый код в ассемблере. И прочтите даташит, в частности "Чтение регистра PORTA возвращает состояние на выводах порта, а запись производится в защелку PORTA. Все операции записи в порт выполняются по принципу «чтение – модификация - запись», т.е. сначала производится чтение состояния выводов порта, затем изменение и запись в защелку." Это с другого PIC, но принцип тот же.
Если подтянуть RA4 к питанию, то все будет нормально.
Аватара пользователя
Bkmz
Нашел транзистор. Понюхал.
Сообщения: 164
Зарегистрирован: Пт сен 02, 2011 09:14:44

Re: Снова PIC16F874

Сообщение Bkmz »

Soir писал(а):
Bkmz писал(а):...Дело в том что самом регистре PORTA он устанавливается в 0...
Посмотрите выполняемый код в ассемблере. И прочтите даташит, в частности "Чтение регистра PORTA возвращает состояние на выводах порта, а запись производится в защелку PORTA. Все операции записи в порт выполняются по принципу «чтение – модификация - запись», т.е. сначала производится чтение состояния выводов порта, затем изменение и запись в защелку." Это с другого PIC, но принцип тот же.
Если подтянуть RA4 к питанию, то все будет нормально.
Тьфу, черт. А ведь все верно. Надо ж как ступил. Спасибо Вам огромное :beer: т.е. получается если какой-то один порт меняю, то обновляются все сразу что ли?
Тогда почему у меня в программе после обнуления PORTC ставлю команду RA4=1 и он так и остается в 0? Блин. Это если без подтягивающего резистора .
А по второму вопросу подскажет кто-нибудь?

2.7 Запрещается полное цитирование предыдущего сообщения. Допускается цитирование только части сообщения, необходимой для смысловой связи с предыдущим сообщением.

Предусматриваются следующие виды наказаний за нарушение пунктов данных Правил: за нарушение: п 2.7 - Предупреждение. При повторном нарушении - бан на усмотрение модератора.
Последний раз редактировалось AlekseyEnergo Пн сен 09, 2013 09:42:45, всего редактировалось 1 раз.
Причина: .
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Снова PIC16F874

Сообщение Аlex »

Dmitry Dubrovenko писал(а):
RA4 - open drain
какое отношение "открытый сток" имеет к установке порта в "0"?
Дмитрий, мне порой кажется, что Вы - одинокий пожилой мужчина, к которому никто не ходит в гости и игнорируют соседи на лавочках. Вам поговорить чтоли нескем и неочем ?
Открытый сток на выходе может давать только лог "0" (не считая Z-состояния), т.к. ключ только один - на землю !
ставлю команду RA4=1 и он так и остается в 0?
Вы сами ответили на свой вопрос :
Это если без подтягивающего резистора
:)
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Снова PIC16F874

Сообщение dosikus »

Bkmz писал(а):Про открытый сток я прекрасно знаю.
Bkmz писал(а):Это если без подтягивающего резистора .
Цирк...
Аватара пользователя
Bkmz
Нашел транзистор. Понюхал.
Сообщения: 164
Зарегистрирован: Пт сен 02, 2011 09:14:44

Re: Снова PIC16F874

Сообщение Bkmz »

Ну да ))) в общем сам себя запутал. Мне не совсем понятна операция "чтение-модификация-запись". Т.е. прочитали, изменили и выдали обратно. У меня получается так: RA4=0 зажгли светик, далее RA4=1, тем самым вывод к воздуху подвесили (открытый сток), потому как через светик 1 пролетала. Далее сбрасываю PORTC. И тут со всеми портами происходит чтение-модификация запись, потому как и RA4 меняет состояние. Но почему тогда PORTC уже успел модифицироваться и выдал нули, а PORTA это делает позже, потому как через светик уже не летит 1, и со входа RA4 читается 0, модификации не происходит и выдается обратно 0. Надо полагать, что сброс порта происходит без чтения-модификация-запись, а сразу же. Далее. Ну пусть он сбросился этот RA4. Но почему тогда я подаю после этого команду RA4=1 но модификации не происходит. Ведь пофиг что мы прочитали там с него, модификация то должна же происходить? Или чего я не понимаю?
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Снова PIC16F874

Сообщение Аlex »

Или чего я не понимаю?
Скорее, не понимаем мы :)
Приложите кусок кода и по нему объясняйте пошагово что у Вас происходит.
Аватара пользователя
Bkmz
Нашел транзистор. Понюхал.
Сообщения: 164
Зарегистрирован: Пт сен 02, 2011 09:14:44

Re: Снова PIC16F874

Сообщение Bkmz »

Проект целиком чуть выше. Ну да ладно, вот этот кусок:

Код: Выделить всё

		RA4=0;                               //на порт повесили 0
		__delay_ms(DT);                         //
		RA4=1;		                          //порт отпустили (Z)

		if (d1==0) PORTC=0;                   //при обнулении PORTC происходит прижимание к 0 RA4
			else PORTC = number[d1];   //

		RA4=1;                                     //пытаюсь отпустить (состояние Z) RA4, но увы, ничего не меняется
Ответить

Вернуться в «PIC»