Easyelectronics.ru

Электроника для всех
Текущее время: 07 апр 2020, 22:34

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Blink на PIC16F886
СообщениеДобавлено: 19 фев 2020, 00:02 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 02 мар 2014, 18:01
Сообщения: 149
Есть в наличии некоторое устройство, в котором надо использовать только железо, путём прошивки установленного на нём PIC16F886 задать самый простой ногодрыг одной единственной ножкой. На аналогичной плате нашёл все ножки-дорожки, отследил выход с PIC на "умный ключ" BTS452R. Плата 100% рабочая, с родной прошивкой эта нога и этот BTS вполне корректно управляют нагрузкой.
С ПИКами дела никогда не имел, но решил быро изучить вопрос и накидать прошивку, опираясь на некоторые познания в AVR и STM.
Прошивку накидал в MPLabX, проверил в Протеусе, всё работает. Залил в плату-не работает. Два дня плясал с бубном, ничего не добился. Купил чистый пик и сделал для него макетку, только вывел ножки, питание, разъём программирования.
Заливаю прошивку-борода, светодиод горит и всё. Если поднести палец на расстояние 1-2 см, можно управлять горением светодиода. Лучше всего реагирует на махание пальцем в районе первой ноги.
Прицепил на 1 ногу (MCLR) резистор 10К к питанию. Ноль эмоций. Отключил ресет програмно, та же фигня. Переключался на встроенные цепочки тактирования, на внешние, ставил кварц-до лампочки. С выведением ног тактирования и без. Все варианты испробовал.
Шью PIKKit3, рабочий точно, потому что успешно прошиваю им такие же платы, обновляю прошивки.
Куда копнуть я больше не знаю.
Диод на 11 ноге, RC0
Код:
Код:

// PIC16F886 Configuration Bit Settings

// 'C' source line config statements

// CONFIG1
#pragma config FOSC = INTRC_NOCLKOUT// Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled and can be enabled by SWDTEN bit of the WDTCON register)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = ON       // RE3/MCLR pin function select bit (RE3/MCLR pin function is MCLR)
#pragma config CP = OFF         // Code Protection bit (Program memory code protection is disabled)
#pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)
#pragma config BOREN = ON       // Brown Out Reset Selection bits (BOR enabled)
#pragma config IESO = ON        // Internal External Switchover bit (Internal/External Switchover mode is enabled)
#pragma config FCMEN = ON       // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is enabled)
#pragma config LVP = ON         // Low Voltage Programming Enable bit (RB3/PGM pin has PGM function, low voltage programming enabled)

// CONFIG2
#pragma config BOR4V = BOR40V   // Brown-out Reset Selection bit (Brown-out Reset set to 4.0V)
#pragma config WRT = OFF        // Flash Program Memory Self Write Enable bits (Write protection off)

// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.

#include <xc.h>

#define _XTAL_FREQ 8000000

void main(void) {
  TRISC &= ~(1<<RC0);
  PORTC &= ~(1<<RC0);

    while (1)
  {
    PORTCbits.RC0 = 1;
    __delay_ms(1000);
    PORTCbits.RC0 = 0;
    __delay_ms(1000);
   }
   
}



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Blink на PIC16F886
СообщениеДобавлено: 19 фев 2020, 03:24 
Заглядывает иногда

Зарегистрирован: 26 фев 2018, 03:06
Сообщения: 122
Редиска писал(а):
Код:
  TRISC &= ~(1<<RC0);
  PORTC &= ~(1<<RC0);

КМК так делать не надо RC0 это не дефайн, а один из элементов структуры
Код:
// bitfield definitions
typedef union {
    struct {
        unsigned RC0                    :1;
        unsigned RC1                    :1;
        unsigned RC2                    :1;
        unsigned RC3                    :1;
        unsigned RC4                    :1;
        unsigned RC5                    :1;
        unsigned RC6                    :1;
        unsigned RC7                    :1;
    };
} PORTCbits_t;
extern volatile PORTCbits_t PORTCbits @ 0x007;


последовательность инициализации
Код:
void init (void)
{
           INTCON=0x00;
           PIE1=0x00;
           PIR1=0x00;
           OSCCON=0b01100000;
           nRBPU=0;
           WPUB=0xFF;
           PORTA=0;
           PORTB=0;
           PORTC=0;
//           PORTD=0;
           ADCON1=0x06; // цифровые выводы.
           ANSEL=0x00;
           ANSELH=0x00;
           TRISA=0;
           PORTA=0;
           TRISB=0xFF;
           PORTB=0;
           TRISC=0;
           PORTC=0;
//           TRISD=0;}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Blink на PIC16F886
СообщениеДобавлено: 19 фев 2020, 03:44 
Заглядывает иногда

Зарегистрирован: 26 фев 2018, 03:06
Сообщения: 122
и еще или в конфиге выключите низковольтное программирование или RB3 притяните на массу


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Blink на PIC16F886
СообщениеДобавлено: 19 фев 2020, 15:03 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 02 мар 2014, 18:01
Сообщения: 149
DmitriyVDN писал(а):
и еще или в конфиге выключите низковольтное программирование или RB3 притяните на массу


Дмитрий
Дорогой ты мой человечище
Человечище, с большой буквы
Тут собака и порылась, LVP
Притянул ногу к массе-всё поехало
Отключил в прошивке конфигбит, всё работает
Как я могу выразить свою благодарность?

Самое интересное, я же посматривал на этот бит, но побоялся что отключу возможность программирования ПикКитом, как это бывает когда на AVR выкатишь RSTDSBL


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Blink на PIC16F886
СообщениеДобавлено: 19 фев 2020, 22:06 
Заглядывает иногда

Зарегистрирован: 26 фев 2018, 03:06
Сообщения: 122
благодарить за детские грабли это лишние. отписались о причине уже хорошо.

зря боялись , пиккит для пиков , то же самое что фьюзе-доктор для авр, если камень живой пофиг какие биты выставлены, он до него достучится, особенно если включите режим Use Vpp First Program Entry


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Blink на PIC16F886
СообщениеДобавлено: 19 фев 2020, 22:14 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 02 мар 2014, 18:01
Сообщения: 149
Прошивка, кстати, перестала работать в протеусе. Видимо, какая то связь с этим битом есть, поменял только его, переписав в секции конфигурации ON на OFF. Да и в рот ему кампот, результат в железе достигнут


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Blink на PIC16F886
СообщениеДобавлено: 19 фев 2020, 22:19 
Заглядывает иногда

Зарегистрирован: 26 фев 2018, 03:06
Сообщения: 122
Редиска писал(а):
Прошивка, кстати, перестала работать в протеусе.
там ручками в свойствах МК нужно выставить конфиг соответствующий прошивке , протез его часто не подтягивает.
Show


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB