Pages: [1]   Go Down
Print
Author Topic: PIC18F4620 ไม่ทำงานครับ  (Read 10277 times)
0 Members and 1 Guest are viewing this topic.
Unknown
มาใหม่
*
Offline Offline

Posts: 3


« on: September 27, 2011, 12:53:55 PM »

ผมใช้บอร์ด อัด code โปรแกรม
Code:
#include <18F4620.h>
#device adc=8

#FUSES NOWDT                  //No Watch Dog Timer
#FUSES WDT128                //Watch Dog Timer uses 1:128 Postscale
#FUSES HS                    //High speed Osc (> 4mhz)
#FUSES NOPROTECT              //Code not protected from reading
#FUSES IESO                  //Internal External Switch Over mode enabled
#FUSES BROWNOUT              //Reset when brownout detected
#FUSES BORV21                //Brownout reset at 2.1V
#FUSES NOPUT                  //No Power Up Timer
#FUSES NOCPD                  //No EE protection
#FUSES STVREN                //Stack full/underflow will cause reset
#FUSES NODEBUG                //No Debug mode for ICD
#FUSES LVP                    //Low Voltage Programming on B3(PIC16) or B5(PIC18)
#FUSES NOWRT                  //Program memory not write protected
#FUSES NOWRTD                //Data EEPROM not write protected
#FUSES NOEBTR                //Memory not protected from table reads
#FUSES NOCPB                  //No Boot Block code protection
#FUSES NOEBTRB                //Boot block not protected from table reads
#FUSES NOWRTC                //configuration not registers write protected
#FUSES NOWRTB                //Boot block not write protected
#FUSES FCMEN                  //Fail-safe clock monitor enabled
#FUSES XINST                  //Extended set extension and Indexed Addressing mode enabled
#FUSES PBADEN                //PORTB pins are configured as analog input channels on RESET
#FUSES LPT1OSC                //Timer1 configured for low-power operation
#FUSES MCLR                  //Master Clear pin enabled

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

สามารถทำงานได้ครับ แต่ผมถอด IC PIC มาต่อวงจรเอง โดยใช้ Crystal 10MHz วงจรไม่สามารถทำงานได้ครับ
ต่อ Schematic ตามนี้



code เป็น
Code:
void main()
{
set_tris_d(0);
   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF|ADC_TAD_MUL_0);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
while(TRUE){
output_d(0xFF);
}
}

ต่อ LED ธรรมดา ผมทำอะไรผิดหรือเปล่า หรือ ไม่ได้ set อะไรตรงไหน ช่วยแนะนำด้วยครับ
จริงๆแล้วไม่เคยเอามาต่อวงจรจริงๆเลย เล่นแต่บนบอร์ด
Logged
gundam
Global Moderator
Hero Member
*****
Offline Offline

Posts: 292



« Reply #1 on: September 27, 2011, 10:46:41 PM »

จากโค๊ดคุณให้ LED ที่ Port D ติดสว่างใช่ไหมครับ
คุณหมายถึงโค๊ดเดียวกันนี้เมื่อต่อกับบอร์ดสำเร็จรูป สามารถทำงานได้ใช่ไหมครับ = แสดงว่าโค๊ด OK
แล้วเมื่อคุณนำมาต่อเอง (บนโปรโตบอร์ดหรือครับ) แล้วไม่ทำงาน = แสดงว่าคุณทำผิดอะไรสักอย่าง

จริงๆแค่ใช้ LED ติดคุณไม่ต้องเขียนอะไรมากมายขนาดนั้น
ดูจากตัวอย่าง
http://www.thaimicrotron.com/CCS-628/EXAM/PORTA.htm

แล้วคุณแก้ที่
   
#include <18F4620.h>
#use delay(clock=10000000)
#fuses HS,PUT,BROWNOUT,MCLR,NOWDT,NOPROTECT,NOLVP

แล้วคุณนำ LED 1ดวง มาต่อที่พอร์ต A0 แทน


Logged
Unknown
มาใหม่
*
Offline Offline

Posts: 3


« Reply #2 on: September 27, 2011, 11:12:40 PM »

ขอบคุณครับ สำหรับคำแนะนำ

ที่ code แรกมันเยอะเป็นตอนสร้าง project ของ PIC C Compiler นะครับ

ผมเข้าใจว่าบนบอร์ด แสดงผลได้มี output ออก

แต่เอามาต่อเองบน Breadboard ไม่เกิดอะไรเลย ต่อตาม รูปวงจรที่มากับตัวบอร์ด ไม่ได้ต่อส่วน ดาวโหลด กับ rs232 เท่านั้นเอง

ผมลองเปลี่ยน #use delay(clock=10000000) และ #fuses HS เป็น 4MHz และ XT ใส่ Crystal 4MHz และ ค่า C ตามดาต้าชีท ก็ไม่แสดงผลครับ

แต่เมื่อเปลี่ยนเป็น 4MHz บนบอร์ดไม่แสดงผล เพราะคิดว่า Crystal คนละความถี่กัน
Logged
MicroX
Global Moderator
Full Member
*****
Offline Offline

Posts: 103


Senior


Email
« Reply #3 on: September 28, 2011, 03:38:35 PM »

จุดเริ่มต้นสำคัญครับ คุณต้องอ่านให้เข้าใจพื้นฐานก่อน ที่จริงแล้วการทำให้ LED กระพริบแทบไม่มีอะไรเลยครับ
ลองหาให้ได้ครับว่าผิดตรงไหน
- ต่อไฟ 2 เส้นเข้า PIC
- ต่อ XTAL และ C ทั้ง 2 ตัว และ set fuse ใช้ตรง  <=4MHz ใช้ XT , >4MHz ใช้ HS
- ต่อ R pullup สัก 10 K ที่ขา MCLR หากต่อตัวตัวโปรแกรมก็เพิ่มอุปกรณือีกเล็กน้อย
- ต่อ LED+R 470 โอมห์ ที่ขาเอาต์พุต

http://www.thaimicrotron.com/PROPIC/USB1/DEV_DEMO28.htm





แล้วโปรแกรมจากตัวอย่างของเว็บก็ได้ เซ็ทเบอร์ให้ตรง
อ้ออีกอย่างนึงมือใหม่ๆ นี่น่าจะใช้พวก 18 pin ทดลองก่อน นับขาก็ง่าย อย่างเช่น PIC16F88 ,PIC16F819 พลาดพลั้งเสียไปจะได้ไม่เสียดายครับ
18F4620 หากยากราคาก็สูง หายากอีก
ลองดูอีกทีนะครับ


« Last Edit: September 28, 2011, 04:05:43 PM by Microx » Logged
s_engine
Sr. Member
****
Offline Offline

Posts: 187


« Reply #4 on: September 29, 2011, 09:54:42 AM »

รอติดตาม ครับ ถ้าได้แล้วมาเล่าสู่กันฟังบ้างนะ

ว่าแต่ พี่ๆเพื่อนๆน้องๆ ในนี้ อยากเห็นทั้งสองบอร์ดที่ว่ามา มากถึงมากที่สุดเลย

เผื่อ พี่ๆน้องๆเพื่อนๆ ในนี้จะมองเห็นอะไรบางอย่าง

ดังสุภาษิต
สิบโค้ดว่า ไม่เท่าตาเห็น
 Grin Grin Grin Grin Grin Grin Grin
Logged
Unknown
มาใหม่
*
Offline Offline

Posts: 3


« Reply #5 on: September 29, 2011, 09:12:06 PM »

ขอบคุณครับ

จะลองเริ่มต้นใหม่ดู กับตัวเล็กๆก่อน

เพราะตอนนี้ผมมีแต่ 18F4620 ที่เป็นบอร์ดสำเร็จมา

ได้หรือไม่ได้ ยังไงจะมา บอกต่อครับ
Logged
Pages: [1]   Go Up
Print
 
Jump to: