Например TDA7294

Форум РадиоКот :: Просмотр темы - PIC16F84A - Proteus vs Реальность
Форум РадиоКот
https://radiokot.ru/forum/

PIC16F84A - Proteus vs Реальность
https://radiokot.ru/forum/viewtopic.php?f=58&t=197557
Страница 1 из 2

Автор:  Denis-1307 [ Сб апр 12, 2025 16:41:57 ]
Заголовок сообщения:  PIC16F84A - Proteus vs Реальность

Всем доброго времени суток.
Решил я тут начать изучать программирование микроконтроллеров PIC и вот с какой проблемой столкнулся.
Написал простейшую мигалку светодиодом для PIC16F84A (есть небольшой опыт в программировании AVR). В протеусе все прекрасно работает, а вот на реальном железе либо не работает вообще, либо светодиод моргает раз в несколько секунд.
Помогите разобраться, что я делаю не так.

Вот код программы. Среда разработки - MPLAB X IDE, компилятор - XC8, программатор - PicKit 3
Код:
/* PIC16F84A
 * Config bits: 3FF1
 * File:   main.c
 * Author: Denis
 * Project: Blink
 * Created on 12.04.2025 */
#include <xc.h>

#define _XTAL_FREQ 4000000

#pragma config FOSC = XT        // Oscillator Selection bits (XT oscillator)
#pragma config WDTE = OFF       // Watchdog Timer (WDT disabled)
#pragma config PWRTE = ON       // Power-up Timer Enable bit (Power-up Timer is enabled)
#pragma config CP = OFF         // Code Protection bit (Code protection disabled)

void main(void)
{
    TRISB &= ~(1<<2); //пин RB2 режим работы - выход
    PORTB &= ~(1<<2); //0 В на пине RB2
    while(1)
    {
        __delay_ms(500); //ждем 0,5 сек
        PORTB ^= (1<<2); //инвертируем значение на пине RB2
    }
    return;
}


Всем спасибо за оказанную помощь.

Автор:  Zikon [ Сб апр 12, 2025 17:46:43 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

1. А где задан чип в исходнике (#define) ? // ой, да там при компиляции подставляется
2. Лучше бы взял pic16f628a или pic16f690, и то это только для тренировки.

Автор:  Denis-1307 [ Сб апр 12, 2025 17:53:16 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

1. А где задан чип в исходнике (#define) ?

А разве MPLAB IDE этого не делает когда создаешь проект? Там ведь указывается тип контроллера для которого пишется прошивка.
Если MPLAB этого не делает, то тогда это записывается так?
#define <16F84A.h>
Если не прав, поправьте.

Автор:  Уош [ Сб апр 12, 2025 17:53:40 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

Покажите схему реального железа.

Автор:  Denis-1307 [ Сб апр 12, 2025 17:56:10 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

Покажите схему реального железа.

Сейчас не могу, все на работе осталось. В понедельник покажу :))

Автор:  OKF [ Сб апр 12, 2025 20:09:23 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

Да, есть такая проблемка с Протеусом. Не всё на 100% эмулирует.(
А зачем return? Это к делу не относится.)

Автор:  valentinovich [ Сб апр 12, 2025 21:20:30 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

Denis-1307, вот -
https://микроник.рус/pic16f84a-migaem-svetodiodom/
Да и вообще - данный сайт молча ответит на множество подобных (как у ТС и не только) вопросов. Изображение

Автор:  Asmodey [ Сб апр 12, 2025 22:34:33 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

Denis-1307, данные в порты записывайте через регистры-защелки latch, а не напрямую в порт.

Время выполнения кода смотрите в между точками останова в MPLAB, а не в Протеусе.

Автор:  КРАМ [ Сб апр 12, 2025 22:43:25 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

В понедельник покажу :))

Вы кварц с керамикой на МК, надеюсь, повесили? :)
Изображение

Автор:  Уош [ Сб апр 12, 2025 23:03:39 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

Asmodey, а у этого пика нет регистра-защёлки (я тоже сначала об этом подумал)

Автор:  КРАМ [ Сб апр 12, 2025 23:07:38 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

я тоже сначала об этом подумал

Он пишет в единственный пин. Поэтому предупреждение неактуально. Проблемы RMW для единственного пина не существует. Проблема возникает при перекрестной побитной модификации.

Автор:  Уош [ Сб апр 12, 2025 23:13:40 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

Да, уже забываю об этом, спасибо!

Автор:  Asmodey [ Вс апр 13, 2025 02:06:08 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

Asmodey, а у этого пика нет регистра-защёлки
Тем хуже для него. Придется искать причину в какойнить метафизической области. Положим, в отсутствующих блокирующих конденсаторах по питанию.

Автор:  Уош [ Вс апр 13, 2025 02:38:16 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

Вот потому я и предложил показать схему. Я грешил на плавающий сброс, КРАМ на кварц, и вот теперь конденсаторы питания... Три мнения об обвязке. Вероятность повышается.

Автор:  Zikon [ Вс апр 13, 2025 07:55:05 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

А если не читать с порта а хранить в переменной текущее записанное значение? Что-то изменится?

Автор:  КРАМ [ Вс апр 13, 2025 10:14:51 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

Замените xor на прямой вывод в порт, а xor делайте с переменной в ОЗУ и значение этой переменной выводите в порт.
Но если пин порта у вас не нагружен, то вероятность бага связанного с RMW будет стремится к нулю.
ЗЫ. Есть смутное подозрение, что светодиод у вас висит на пине без балласта... и в этом вся проблема. Тогда RMW в полный рост.
:facepalm:

Автор:  Asmodey [ Вс апр 13, 2025 12:21:28 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

Я грешил на плавающий сброс, КРАМ на кварц, и вот теперь конденсаторы питания...
К слову, без конденсаторов по питанию может и по цепям сброса рандомно помеха пробегать. Два в одном.

Автор:  Denis-1307 [ Вс апр 13, 2025 13:29:32 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

В понедельник покажу :))

Вы кварц с керамикой на МК, надеюсь, повесили? :)
Изображение

Да, кварц с керамикой на 22 пФ.
Единственное что не делал, так это конденсаторы по питанию. Возможно в них проблема, но проверить смогу только завтра.
Как проверю отпишусь.
Спасибо за советы.

Добавлено after 3 minutes 16 seconds:
Замените xor на прямой вывод в порт, а xor делайте с переменной в ОЗУ и значение этой переменной выводите в порт.
Но если пин порта у вас не нагружен, то вероятность бага связанного с RMW будет стремится к нулю.
ЗЫ. Есть смутное подозрение, что светодиод у вас висит на пине без балласта... и в этом вся проблема. Тогда RMW в полный рост.
:facepalm:

Светодиод подключён через резистор 220 Ом

Автор:  Denis-1307 [ Пн апр 14, 2025 10:31:38 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

Покажите схему реального железа.


Схема вообще не подает признаков жизни.

Вложения:
IMG_7980_1.jpg [196.88 KiB]
Скачиваний: 25

Автор:  veso74 [ Пн апр 14, 2025 11:03:25 ]
Заголовок сообщения:  Re: PIC16F84A - Proteus vs Реальность

Какая надпись на конденсаторах к кварцу? Какая надпись на кварцевом резонаторе? Установите хотя бы один фильтрующий конденсатор. Подключите подтягивающий резистор MCLR к VDD.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/