Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Проблем с PIC18F4520
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=5115
Страница 1 от 1

Автор:  Koleto [ Чет Ное 22, 2007 12:26 pm ]
Заглавие:  Проблем с PIC18F4520

Здравейте,

имам един доста странен проблем с този пикльо... Подхванах го да си играя с него и от самото начало само ядове... По карпизно животно не бях хващал... Първоначално с много зор го накарах да му тръгва осцилатора (10MHz кварц в режим 4х PLL, така тръгна, макар че го пробвах от 4MHz без PLL нагоре). В момента в който пипнех масата на схемата със сондата на осцилоскопа (или с ръка) и осцилатора спираше. То не бяха филтрови кондензатори то не бе чудо... Вярно е, че работя на универсална платка и всичко е на жици отдолу но чак пък толкова... Общо взето заработи като навързах краката на PORTB към маса... ОБАЧЕ... сложих му един ротационен енкодер на портБ (да ползвам прекъсването при промяна на състоянието на входовете) и започнаха проблемите отново... Най-странното в цялата работа е, че като дам хардуерно MCLR на маса и осцилатора тръгва 8O В мига в който махна масата от MCLR и умира... По някога при включване на захранването тръгва (много рядко), но както се досещате не изпълнява и ред от написания код... Захранването е от 12V през 7805 с накичени кондензатори както си трябва... Пробвах и от акумулатор да избегна евентуални смущения от мрежата ама ефект никакъв... В момента съм махнал всичко от него има закачено само едно LCD 2х16 на PortD. И няма подкарване и това е.. Прикачвам С и Н файловете да видите конфигурацийте.... Ако някой има идея от какво може да е това ще съм благодарен да помогне... Предварително благодаря...

Прикачени файлове:
LCD_QUAD_ENC.h [1.64 KiB]
145 пъти
LCD_QUAD_ENC.c [667 Байта]
148 пъти

Автор:  bobyper [ Чет Ное 22, 2007 1:43 pm ]
Заглавие:  Re: Проблем с PIC18F4520

Дали да не промениш това

#FUSES LVP

на

#FUSES NOLVP

Автор:  /dev/null [ Чет Ное 22, 2007 2:14 pm ]
Заглавие: 

М да.
#FUSES не са ти особено добре.

При 4 Mhz #FUSES HS -> #FUSES XT
#FUSES XINST -> #FUSES NOXINST
#FUSES LVP -> #FUSES NOLVP

Автор:  sv_shady [ Чет Ное 22, 2007 2:32 pm ]
Заглавие: 

Това са FUSEs, които ползвам за 18Ф4431, нямам време да пиша кое за какво е, а и то си го пише :) Главните FUSEs трябва да са еднакви с 18Ф4520. Конкретно този код работи на конотролер с 10MHz кварц с 4xPLL и дебъгера си го разпознава, че е всъщност на 40MHz без никакви проблеми, а и контролера се държи идеално.
Код:
#include <18F4431.h>
//#device ICD=TRUE
#device adc=10

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
#FUSES H4                       //High speed osc with HW enabled 4X PLL
#FUSES NOPROTECT                //Code not protected from reading
#FUSES IESO                     //Internal External Switch Over mode enabled
#FUSES BROWNOUT                 //Reset when brownout detected
#FUSES BORV27                   //Brownout reset at 2.7V
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOCPD                    //No EE protection
#FUSES STVREN                   //Stack full/underflow will cause reset
#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 NOFCMEN                  //Fail-safe clock monitor disabled
#FUSES NOWINEN                  //WDT Timer Window Disabled
#FUSES T1LOWPOWER               //Timer1 low power operation when in sleep
#FUSES HPOL_HIGH                //High-Side Transistors Polarity is Active-High (PWM 1,3,5 and 7)
#FUSES NOWRTC                   //configuration not registers write protected
#FUSES NOWRTB                   //Boot block not write protected
#FUSES NOEBTR                   //Memory not protected from table reads
#FUSES NOEBTRB                  //Boot block not protected from table reads
#FUSES NOCPB                    //No Boot Block code protection
#FUSES LPOL_HIGH                //Low-Side Transistors Polarity is Active-High (PWM 0,2,4 and 6)
#FUSES PWMPIN                   //PWM outputs disabled upon Reset
#FUSES MCLR                     //Master Clear pin enabled
#FUSES FLTAC1                   //FLTA input is multiplexed with RC1
#FUSES SSP_RC                   //SCK/SCL=RC5, SDA/SDI=RC4, SDO=RC7


#use delay(clock=40000000)

Автор:  Koleto [ Чет Ное 22, 2007 2:40 pm ]
Заглавие: 

Мале...

БЛАГОДАРЯ ВИ НА ВСИЧКИ... проблемния фюз се оказа LVP ->NOLVP .... Не съм и предполагал, че това може да съсипе работата на целия контролер... :oops: Дори и не съм му обърнал внимание че е там... Нацъках "магьосника" на CCS-а и съм го пропуснал някъде в калабалъка... Още веднъж хиляди благодарности! Имате по бира от мене !

Автор:  rumen65 [ Чет Ное 22, 2007 2:42 pm ]
Заглавие: 

При всички случай с:
#FUSES LVP
ще имаш проблем, защото от нивото RB5 зависи дали ще си в режим на програмиране или работа, а в режим на програмиране осцилатора май не работи.
EDIT:
Писали сме едновременно.

Автор:  Koleto [ Чет Ное 22, 2007 2:49 pm ]
Заглавие: 

Да rumen65, сега вече като го видях ми стана ясно... Докато RB5 e бил на маса, някък си осцилатора е тръгвал... Защото преди да му закача енкодера дисплея си работеше... и чак като го закачих нещата се скапаха... защото ми притрябва RB5, на който съм вързал бутончето дето цъка при натискане на остта на енкодера... Та така.... Благодаря още веднъж...

ЕДИТ: Оттеглям си думите за "пикльото" и "капризното животно". Както в 99% в такива случай, проблема си се оказва задклавиатурното устройство... :oops:

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