Автор Тема: Проблем с PIC18F6620  (Прочетена 33787 пъти)

IbT

  • Зомбиран Роботостроител
  • *****
  • Публикации: 156
    • Профил
Проблем с PIC18F6620
« -: Април 27, 2010, 09:44:27 pm »
Колеги, надявам се някой да може да помогне. Не мога да подкарам генератора на този PIC. С 20MHz кристал е, кондензаторите са 22р, но пробвах и с 15р. Като тип съм го задал HS. Ползвам CCS, пробвах и в MPLAB-a на асемблер, но не ще да тръгне и това е. Захранването ми е малко импровизирано, но е само за пробата. Състои се от един диод само изправителен, 7805 и два електролитни кондензатора (един на входа и един на изхода) по 1000uF. Възможно ли да е толкова капризен към него или е някакъв друг проблема?

CarBeta5

  • Вече знае какво е робот!
  • *****
  • Публикации: 81
    • Профил
Проблем с PIC18F6620
« Отговор #1 -: Април 28, 2010, 12:43:11 pm »
Дай повече инфо. Как проверяваш дали работи?

Ако си сигурен, че всичко ти е наред и не иска да работи провери конфигурационните битове. Също така 7 крак трябва да го изтеглиш през резистор към VDD (напр. 10к)

bateAz

  • Зомбиран Роботостроител
  • *****
  • Публикации: 187
    • Профил
Проблем с PIC18F6620
« Отговор #2 -: Април 28, 2010, 06:58:54 pm »
Имаш ли керамичен кондензатор 100nF - 1uF непосредствено на захранващите пиниве на процесора? Трябва му. Също така трябват и на входа, и на изхода на 7805. Провери дали процесорът на стои в RESET.
Не може да не може

Венцислав Караджов, 61 год.

emil74

  • Зомбиран Роботостроител
  • *****
  • Публикации: 227
    • Профил
    • http://www.maystorio.com
Проблем с PIC18F6620
« Отговор #3 -: Април 28, 2010, 09:51:21 pm »
СЛЕД 78ХХ се слагат кондензатори с малки стойности. С този 1000uF мога да си представя какво ще видиш на изхода, ако сложиш осцилоскоп... слагай 1-10uF и 10-100nF там. Това за захранването.

IbT

  • Зомбиран Роботостроител
  • *****
  • Публикации: 156
    • Профил
Проблем с PIC18F6620
« Отговор #4 -: Април 28, 2010, 11:09:59 pm »
Наистина са големи тези 1000uF, но такива имах под ръка. Утре ще взема по-малки и ще ги сменя. 7 извод е изтеглен както си трябва. Но нямам кондензатори между захранващите пинове. Ще сложа и на тях и ще пиша какво се е получило.

Иначе проверявам дали работи с осцилоскоп. В момента на изводите на генератори има постоянно ниво от порядъка на 70-80mV.

Vexorian

  • Заклет Роботостроител
  • *****
  • Публикации: 305
    • Профил
Проблем с PIC18F6620
« Отговор #5 -: Април 28, 2010, 11:52:05 pm »
Не вярвам проблема да е в кондензаторите. Вероятно не си задал правилно бит-овете в кода.
Викторио Семир Ел Хаким, София 20г.
Аналогова/Цифрова електроника, програмиране
I\'m watching your ass! :D

emil74

  • Зомбиран Роботостроител
  • *****
  • Публикации: 227
    • Профил
    • http://www.maystorio.com
Проблем с PIC18F6620
« Отговор #6 -: Април 29, 2010, 12:39:27 am »
Първо да се направи захранването както трябва, а после ще видим. Преди години бях правил захранване за един датчик по сходен начин, След втория изгорен датчик, производителят ме накара да занеса захранването. Убеждавах го, че всичко е наред, защото мултицетът показваше 5V. Но като го закачи на осцилоскопа и ми стана много глупаво... беше всичко друго, но не и стабилно напрежение.

IbT

  • Зомбиран Роботостроител
  • *****
  • Публикации: 156
    • Профил
Проблем с PIC18F6620
« Отговор #7 -: Април 29, 2010, 08:32:00 pm »
Първо, кондензаторите се оказа, че са 3300u, а не 1000 както съм писал отначало. Второ - сложих по-малки 47u, но картинката беше много зле - почти правоъгълни импулси. Върнах 3300u кондензаторите и се изглади чудесно. Пробвах също и с външен такт, но и това не проработи. Явно контролерът е нещо дефектен или нещо му има, незнам и аз. Но си купих друг 18F2580 с подобни параметри и ще действам с него. Благодаря за отговорите все пак.

bateAz

  • Зомбиран Роботостроител
  • *****
  • Публикации: 187
    • Профил
Проблем с PIC18F6620
« Отговор #8 -: Април 29, 2010, 11:30:15 pm »
Цитат на: "bateAz"
Имаш ли керамичен кондензатор 100nF - 1uF непосредствено на захранващите пиниве на процесора? Трябва му. Също така трябват и на входа, и на изхода на 7805. Провери дали процесорът на стои в RESET.
Не може да не може

Венцислав Караджов, 61 год.

Vexorian

  • Заклет Роботостроител
  • *****
  • Публикации: 305
    • Профил
Проблем с PIC18F6620
« Отговор #9 -: Април 30, 2010, 12:23:41 am »
Проблема не е в кондензаторите... И на мен ми се е случвало, и то най-често като преди това съм програмирал контролера в "Debug" режим. Друг случай е когато съм пргорамирал нещо случайно в "FOSC". И най-често съм обърквал конфигуриращите битове. В краен случай сигурно има дефект. Въпреки това малко повече инфо като схема и код щеше да е много полезно за анализиране на проблема.
Викторио Семир Ел Хаким, София 20г.
Аналогова/Цифрова електроника, програмиране
I\'m watching your ass! :D

IbT

  • Зомбиран Роботостроител
  • *****
  • Публикации: 156
    • Профил
Проблем с PIC18F6620
« Отговор #10 -: Април 30, 2010, 08:06:33 am »
Ами схемата мисля, че няма нужда да я поствам. Има захранване, Pull-Up към +5 на MCLR и на RG3 има резистор със светодиод. Това е цялата схема. Ето и кода:
main.h

#include <18F6620.h>
#device adc=8

#FUSES NOWDT
#FUSES WDT1                     //Watch Dog Timer uses 1:1 Postscale
#FUSES HS                       //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOOSCSEN                 //Oscillator switching is disabled, main oscillator is source
#FUSES NOBROWNOUT               //No brownout reset
#FUSES BORV25                   //Brownout reset at 2.5V
#FUSES PUT                      //Power Up Timer
#FUSES NOCPD                    //No EE protection
#FUSES STVREN                   //Stack full/underflow will cause reset
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOWRT                    //Program memory not write protected
#FUSES NOWRTD                   //Data EEPROM not write protected
#FUSES NOCPB                    //No Boot Block code protection
#FUSES NOEBTRB                  //Boot block not protected from table reads
#FUSES NOEBTR                   //Memory not protected from table reads
#FUSES NOWRTC                   //configuration not registers write protected
#FUSES NOWRTB                   //Boot block not write protected

#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)


main.c


#include "C:\Users\NRJ\Desktop\test\main.h"


void main()
{

   output_high(PIN_G3);
   while(1);
}


Компилаторът е CCS.

CarBeta5

  • Вече знае какво е робот!
  • *****
  • Публикации: 81
    • Профил
Проблем с PIC18F6620
« Отговор #11 -: Април 30, 2010, 11:48:13 am »
Към описанието на схемата не си споменал кварцов резонатор. Предполагам, че си го пропуснал само в поста а в схемата си го има.

Всички портове при POR са изходи. В твоя случай трябва да конфигурираш TRISG. Трябва да има и някаква първоначална инициализация на другите регистри които ще ползваш. Ето ти примерна инициализация на PORTG:

CLRF     PORTG
CLRF     LATG
CLRF     TRISG  ; RG0:RG4 --> изходи

IbT

  • Зомбиран Роботостроител
  • *****
  • Публикации: 156
    • Профил
Проблем с PIC18F6620
« Отговор #12 -: Април 30, 2010, 12:11:56 pm »
Да, пропуснал съм го, но го има. 20MHz кварц с 22p кондензатори. TRISG не съм я конфигурирал, защото CCS го прави автоматично. Въпреки това го пробвах и с ръчна конфигурация.

bateAz

  • Зомбиран Роботостроител
  • *****
  • Публикации: 187
    • Профил
Проблем с PIC18F6620
« Отговор #13 -: Април 30, 2010, 01:41:09 pm »
Добре де! Хайде тогава да вземем да го подкараме най-накрая. Предлагам ти да постъпим так: аз ще питам, ти ще отговаряш, докато най-накрая се получи.
1. Какви са напреженията (спрямо маса) на двата извода на кварца? Измери го с електронен волтметър, не с осцилоскоп.
Не може да не може

Венцислав Караджов, 61 год.

IbT

  • Зомбиран Роботостроител
  • *****
  • Публикации: 156
    • Профил
Проблем с PIC18F6620
« Отговор #14 -: Април 30, 2010, 04:01:54 pm »
Напреженията са приблизително 0.7V