PDA

View Full Version : Chú ý khi sử dụng bộ dao động nội của dsPIC


namqn
05-03-2006, 08:10 PM
Khi thử nghiệm dsPIC với Tiny Bootloader, tôi nhận ra có một số dsPIC có tần số trung tâm (center frequency) của bộ dao động nội (internal oscillator) không đúng với datasheet của hãng sản xuất. Điều này cũng đã được một số người dùng xác nhận trên diễn đàn của Microchip. Chẳng hạn, các chip sau đây đã được tôi đo tần số dao động nội bằng dao động ký:

dsPIC30F2010 7.53 MHz (datasheet: 8 MHz)
dsPIC30F3010 7.34 MHz (datasheet: 8 MHz)
dsPIC30F3011 7.34 MHz (datasheet: 8 MHz)
dsPIC30F3014 7.41 MHz (datasheet: 8 MHz)
dsPIC30F4011 7.72 MHz (datasheet: 8 MHz)
dsPIC30F4013 7.41 MHz (datasheet: 8 MHz)

Do đó, nếu bạn có ý định sử dụng bộ dao động của dsPIC thì nên kiểm tra tần số của nó trước.

Thân,

phamthaihoa
21-03-2006, 06:37 PM
Khi thử nghiệm dsPIC với Tiny Bootloader, tôi nhận ra có một số dsPIC có tần số trung tâm (center frequency) của bộ dao động nội (internal oscillator) không đúng với datasheet của hãng sản xuất. Điều này cũng đã được một số người dùng xác nhận trên diễn đàn của Microchip. Chẳng hạn, các chip sau đây đã được tôi đo tần số dao động nội bằng dao động ký:

dsPIC30F2010 7.53 MHz (datasheet: 8 MHz)
dsPIC30F3010 7.34 MHz (datasheet: 8 MHz)
dsPIC30F3011 7.34 MHz (datasheet: 8 MHz)
dsPIC30F3014 7.41 MHz (datasheet: 8 MHz)
dsPIC30F4011 7.72 MHz (datasheet: 8 MHz)
dsPIC30F4013 7.41 MHz (datasheet: 8 MHz)

Do đó, nếu bạn có ý định sử dụng bộ dao động của dsPIC thì nên kiểm tra tần số của nó trước.

Thân,

Bác nói hoàn toàn chính xác, chính điều này khiến bootloader một số trường hợp không làm việc.Trong bộ tiny bootloader có file hex cho dspic6014 là 7.3MHz. A` bác có bootloader cho 4013 không ?

namqn
21-03-2006, 06:54 PM
Bác nói hoàn toàn chính xác, chính điều này khiến bootloader một số trường hợp không làm việc.Trong bộ tiny bootloader có file hex cho dspic6014 là 7.3MHz. A` bác có bootloader cho 4013 không ?
Tôi có Tiny Bootloader cho tất cả dsPIC từ 201x đến 401x. Tôi đã dịch sẵn một số cấu hình tôi cho là hiệu quả với từng chip. Nếu bạn cần thì cho tôi biết cấu hình mà bạn muốn dùng.

Thân,

phamthaihoa
21-03-2006, 07:07 PM
Bác cho em xin một bản với. Hiện em vẫn dùng ICSP để nạp cho 4013. Có bootloader thì tốt quá. Cảm ơn anh ! phamthaihoa@gmail.com
Bác namqn quả đúng là cao thủ PIC. Em thử config lại nhưng không ăn thua. Em đang làm dspic. Có gì khó sẽ hỏi bác.

namqn
21-03-2006, 07:13 PM
Bác cho em xin một bản với. Hiện em vẫn dùng ICSP để nạp cho 4013. Có bootloader thì tốt quá. Cảm ơn anh ! phamthaihoa@gmail.com
Bác namqn quả đúng là cao thủ PIC. Em thử config lại nhưng không ăn thua. Em đang làm dspic. Có gì khó sẽ hỏi bác.
Vậy bạn muốn dùng cấu hình như thế nào?
Thông thường, tốt hơn thì ta nên dùng cấu hình cho bootloader giống như cấu hình của chương trình ứng dụng, vì hiện thời thì bootloader chưa hỗ trợ cấu hình lại các config. word.

Thân,

ThanhPhuc
30-03-2006, 10:00 PM
Anh có thể gởi cho em 1 bản bootloader dùng dspic 4011 ,dùng thạch anh 7,3728Mhz,PLLx4 (hoặc PLLx16 ).Nếu có thể anh cho đoạn cod khai báo cách dùng UART.Cám ơn anh nhiều.
mail :thuyphuc81@yahoo.com

namqn
31-03-2006, 07:12 PM
Anh có thể gởi cho em 1 bản bootloader dùng dspic 4011 ,dùng thạch anh 7,3728Mhz,PLLx4 (hoặc PLLx16 ).Nếu có thể anh cho đoạn cod khai báo cách dùng UART.Cám ơn anh nhiều.
mail :thuyphuc81@yahoo.com
Tôi post lên đây để nếu có bạn khác cần dùng thì tôi không phải gởi email cho từng người.
Chip sẽ dùng cấu hình sau:
config __FOSC, CSW_FSCM_OFF & XT_PLL4
config __FWDT, WDT_OFF
config __FBORPOR, MCLR_EN & PBOR_OFF
config __FGS, CODE_PROT_OFF

Đoạn mã sau đặt cấu hình cho UART (dùng main I/O của UART1, giống như của bootloader):
mov #0x8000, W0 ;bit15=UARTEN bit10=ALTIO, use Main IO
mov W0, U1MODE
mov #0x0400, W0 ;bit10=UT1EN
mov W0, U1STA
mov #(((7372800*4/115200) / 16) - 1), W0
mov w0, U1BRG

Tập tin .hex cho bootloader được đính kèm phía dưới. Bootloader này dùng với thạch anh ngoài có tần số 7.37 MHz, tốc độ baud là 115200, chip sẽ dùng PLLx4.

Thân,

hanhluckyly
31-03-2006, 07:38 PM
Bac namqn oi bac co chuong trinh file hex nap bootloader cho pic18F458 ma tan so la 40MHz khong neu co share cho minh voi cam on rat nhieu

namqn
31-03-2006, 10:47 PM
Chip sử dụng cấu hình dưới đây:
CONFIG OSC = HS, OSCS = OFF
CONFIG PWRT = ON, BOR = ON, BORV = 27
CONFIG WDT = OFF, WDTPS = 128
CONFIG STVR = ON, LVP = OFF, DEBUG = OFF

Tập tin .hex được đính kèm phía dưới. Bootloader này làm việc với thạch anh ngoài 40 MHz (tôi khuyên không nên dùng thạch anh ở tần số này, vì chip sẽ khá nóng), tốc độ baud là 38400. Bạn thử xem có chạy tốt không nhé, vì tôi không có thạch anh 40 MHz để thử.

Thân,

Grp
01-04-2006, 05:26 PM
Chào bác namqn, em có ý định sửa mã bootloader để dùng cho dspic4013, (theo hướng dẫn của tác giả) tuy nhiên em mò IDDevice không được, bác có thể chỉ giúp em được không?
Nếu không, bác có thể cho em file hex được ko? Em dùng UART1, Xtal 7,3728*PLL16.
Many thanks!

falleaf
01-04-2006, 08:13 PM
Vài ngày nữa, picvietnam sẽ công bố việc chuẩn hoá tiny bootloader và mạch nạp ICSP. Trong báo cáo chi tiết sẽ cung cấp toàn bộ các thông tin kèm theo, và có đầy đủ file đính kèm.

Hiện tại chúng tôi chưa công bố chi tiết vì còn chờ làm các báo cáo cuối cùng và kiểm tra lại.

PIC Việt Nam sau thời gian làm việc khoảng 2 tuần đã đề ra chuẩn nạp của picvietnam và hy vọng sẽ được áp dụng rộng rãi trong cả nước. Chúng tôi sẽ có các báo cáo chi tiết trong tuần sau.

Chúc vui.

namqn
01-04-2006, 08:54 PM
Chào bác namqn, em có ý định sửa mã bootloader để dùng cho dspic4013, (theo hướng dẫn của tác giả) tuy nhiên em mò IDDevice không được, bác có thể chỉ giúp em được không?
Nếu không, bác có thể cho em file hex được ko? Em dùng UART1, Xtal 7,3728*PLL16.
Many thanks!
Device ID của dsPIC30F4013 là 0x0141, bạn có thể tìm thấy các thông tin liên quan cho toàn bộ các chip dsPIC30F trong tài liệu sau:
http://ww1.microchip.com/downloads/en/DeviceDoc/70102F.pdf

Trong trường hợp bạn không thành công thì có thể dùng tập tin .hex dưới đây, dùng với bộ dao động nội của dsPIC (xấp xỉ 7.37 MHz, như tôi đã thông báo ở post đầu tiên), UART1, tốc độ baud 115200, và PLLx16. Các word cấu hình khác tương tự như của Claudiu Chiculita.

Thân,

Grp
02-04-2006, 04:01 PM
Cám ơn bác namqn.

Trước em cũng đã dùng iddevice của 4012 thay cho 4013 nó nhận được chíp nhưng lại không read/write flash được, em cứ nghĩ là tại chưa đưa đúng iddevice. Sau khi chạy chương trình bác cho em mới thấy là không phải.

Connect COM1: ok
Searching for PIC ...
Found:ds4011/4012

Connect COM1: ok
HEX: 5 days old, INHX32,dsPICcode, total=8084 bytes.
Searching for PIC ...
Found:ds4011/4012
Could not write
ERROR!

Nếu có thể bác chỉ cho em chỗ sai với nhé.

namqn
02-04-2006, 06:28 PM
Cám ơn bác namqn.

Trước em cũng đã dùng iddevice của 4012 thay cho 4013 nó nhận được chíp nhưng lại không read/write flash được, em cứ nghĩ là tại chưa đưa đúng iddevice. Sau khi chạy chương trình bác cho em mới thấy là không phải.

Connect COM1: ok
Searching for PIC ...
Found:ds4011/4012

Connect COM1: ok
HEX: 5 days old, INHX32,dsPICcode, total=8084 bytes.
Searching for PIC ...
Found:ds4011/4012
Could not write
ERROR!

Nếu có thể bác chỉ cho em chỗ sai với nhé.

Những thông báo trên là của bootloader do bạn tự viết hay của bootloader tôi đã post lên? Nếu là từ bootloader tôi đã post lên thì có khả năng tập tin .hex của bạn có vấn đề.
Bạn có thể post tập tin .hex mà bạn đang dùng để thử lên đây được không?

Thân,

Grp
03-04-2006, 09:52 AM
Đấy là file em tự viết, còn cái của bác chạy tốt lắm. Em cũng đã xem file hex của bác thấy nó khác của em xa, đây là cái của em.

:020000040000fa
:08000000407f04000000000035
:020000040000fa
:10fe8000cf88200080ff20000001880000000000d3
:10fe900000002800601088000040200070108800da
:10fea000f0002000a0108800048020002f00070030
:10feb000114cb1003a003a0052c7b30082108800da
:10fec000b2c4b300821088008006eb0004802000da
:10fed00046002000250007000603e900fdff3a0068
:10fee0000c4080001340800093018800160620001b
:10fef0001e0007000603e900fdff3a000d00e000c8
:10ff000003003200e2c4b30082108800eeff370025
:10ff1000000ebb00100424000060fe000a00070071
:10ff2000448020001f00080003000000345ebb0076
:10ff30003456bb0034cebb000c86e8001000240011
:10ff400001000700deff3700003b8800500520005d
:10ff5000303b8800a00a2000303b880061e7a80001
:10ff60000000000000000000000006001a01200050
:10ff70000b0020000e02ae0004003700911080003c
:10ff8000015a78008dc64000000006000060fe00a7
:10ff90008b05e900f7ff3a000a05e900f4ff3a0093
:08ffa0000c22ef00b2ff370054
:020000040000fa
:0200000401f009
:04000000e7ff000016
:020000040000fa
:0200000401f009
:04000400ff7f00007a
:020000040000fa
:0200000401f009
:040008007fff000076
:020000040000fa
:0200000401f009
:04001400ffff0000ea
:020000040000fa
:10000800dc7f0000dc7f0000dc7f0000dc7f00007c
:10001800dc7f0000dc7f0000dc7f0000dc7f00006c
:10002800dc7f0000dc7f0000dc7f0000dc7f00005c
:10003800dc7f0000dc7f0000dc7f0000dc7f00004c
:10004800dc7f0000dc7f0000dc7f0000dc7f00003c
:10005800dc7f0000dc7f0000dc7f0000dc7f00002c
:10006800dc7f0000dc7f0000dc7f0000dc7f00001c
:10007800dc7f0000dc7f0000dc7f0000dc7f00000c
:10008800dc7f0000dc7f0000dc7f0000dc7f0000fc
:10009800dc7f0000dc7f0000dc7f0000dc7f0000ec
:1000a800dc7f0000dc7f0000dc7f0000dc7f0000dc
:1000b800dc7f0000dc7f0000dc7f0000dc7f0000cc
:1000c800dc7f0000dc7f0000dc7f0000dc7f0000bc
:1000d800dc7f0000dc7f0000dc7f0000dc7f0000ac
:1000e800dc7f0000dc7f0000dc7f0000dc7f00009c
:0800f800dc7f0000dc7f00004a
:020000040000fa
:10010800dc7f0000dc7f0000dc7f0000dc7f00007b
:10011800dc7f0000dc7f0000dc7f0000dc7f00006b
:10012800dc7f0000dc7f0000dc7f0000dc7f00005b
:10013800dc7f0000dc7f0000dc7f0000dc7f00004b
:10014800dc7f0000dc7f0000dc7f0000dc7f00003b
:10015800dc7f0000dc7f0000dc7f0000dc7f00002b
:10016800dc7f0000dc7f0000dc7f0000dc7f00001b
:10017800dc7f0000dc7f0000dc7f0000dc7f00000b
:10018800dc7f0000dc7f0000dc7f0000dc7f0000fb
:10019800dc7f0000dc7f0000dc7f0000dc7f0000eb
:1001a800dc7f0000dc7f0000dc7f0000dc7f0000db
:1001b800dc7f0000dc7f0000dc7f0000dc7f0000cb
:1001c800dc7f0000dc7f0000dc7f0000dc7f0000bb
:1001d800dc7f0000dc7f0000dc7f0000dc7f0000ab
:1001e800dc7f0000dc7f0000dc7f0000dc7f00009b
:0801f800dc7f0000dc7f000049
:020000040000fa
:10ffa800000800008c0000000000000000000000b5
:020000040000fa
:04ffb8000000fe0047
:00000001FF

(Híc híc, thật ra đây là lần đầu tiên em dùng assembler, vì thế em chỉ sửa lại file 4012.s những thông số cho phù hợp với phần cứng của em thôi).

namqn
03-04-2006, 10:17 PM
(Híc híc, thật ra đây là lần đầu tiên em dùng assembler, vì thế em chỉ sửa lại file 4012.s những thông số cho phù hợp với phần cứng của em thôi).
Nếu bạn chưa quen với assembler thì đọc tutorial 1 đi, vài hôm nữa tôi sẽ post tutorial 2. Khi đã quen với assembler rồi thì bạn có thể quay lại cái bootloader này để thử sức.

Thân,

ThanhPhuc
19-04-2006, 05:11 PM
Cám ơn anh Namqn nhiều,em đã thử và sửa được chương trình bootloader cho dsPic rồi,em xin bổ xung thêm :Cần khai báo max_flash tương ứng với dsPic xử dụng.Trường hợp dùng int osc có thể hiệu chỉnh tần số dao động bằng cách thay đổi các bit TUNES của thanh ghi OSC reg.
Anh có dùng C30 để viết chương trình cho dspic không? Em dùng chương trình nầy,nhưng khi xử dụng lệnh : printf thì gặp lỗi : Erro: a heap is required.Mong anh giúp em khắc phục lỗi nầy.

namqn
19-04-2006, 08:26 PM
Nếu bạn có dùng lệnh thư viện vào/ra (input/output) thì trình liên kết yêu cầu bạn mô tả heap, mặc dù nó có thể là một heap trống (không chứa gì cả).
Nếu bạn chỉ dùng lệnh printf để xuất thông tin ra stdout thì chỉ cần chọn lệnh mênu Project->Build Options ... ->Project, sau đó đến thẻ MPLAB LINK30, gõ vào giá trị 0 tại ô mô tả heap size, như hình minh hoạ dưới đây.
Chúc thành công!

Thân,

ThanhPhuc
22-04-2006, 09:42 AM
Anh cho em hỏi thêm việc khai báo kích thước của heap có liên quan đến độ lớn của trường dử liệu cần xuất khi dùng printf ? ví dụ khi xuất buf[100].

namqn
22-04-2006, 08:37 PM
Kích thước của heap chỉ thực sự quan trọng khi bạn sử dụng các hàm cấp phát bộ nhớ động của C, chẳng hạn như malloc(), free(). Khi bạn chỉ sử dụng các hàm vào/ra trong thư viện stdio, trình liên kết yêu cầu có khai báo heap, nhưng các hàm này không hề sử dụng heap, do đó bạn có thể đặt nó bằng 0.

Thân,

ThanhPhuc
23-04-2006, 04:34 PM
Anh mở thêm luồng trao đổi về dsPIC để các bạn có thể học hỏi thêm ,công cụ để thử đã có bootloader ở trên.Chúc anh sức khỏe.

escapevn
24-04-2006, 11:57 AM
Bác Namqn ơi, bác share file bootloader của con 3012 và 3013 cho em được không?
Thanks bác nhìu nhìu.

namqn
24-04-2006, 07:03 PM
Như bình thường, bạn phải cho tôi biết cấu hình của chip mà bạn muốn, cùng với tốc độ baud, cổng USART mà bạn muốn dùng. Khi đó tôi mới có thể dịch ra một cái bootloader phù hợp với nhu cầu sử dụng của bạn.

Thân,

BinhAnh
24-04-2006, 09:13 PM
Để đỡ mất thời gian, các bạn có thể cấu hình config bằng cách sửa ngay trong chương trình nạp luôn. Như thế sẽ nhanh hơn. Tuy nhiên nếu dùng các dao động tần số khác nhau hay cách đặt cổng Uart kết nối khác nhau thi buộc phải edit lại code.
Thạch anh 7.xxx tại Hà Nội có hàng Mai Khanh có bán đó, vậy là thuân lơi rồi.

Mọi người nếu có công việc liên quan tới PIC thì nên tìm hiểu dspic. Nếu đã từng làm PIC rồi thì nói hơi quá nhưng một ngày bạn có thể tiếp cận được với PIC ở mức độ làm chủ phần MCU.

doannh
25-04-2006, 08:23 AM
Trong trường hợp bạn không thành công thì có thể dùng tập tin .hex dưới đây, dùng với bộ dao động nội của dsPIC (xấp xỉ 7.37 MHz, như tôi đã thông báo ở post đầu tiên), UART1, tốc độ baud 115200, và PLLx16. Các word cấu hình khác tương tự như của Claudiu Chiculita.


Cho em hoi: UART1 của dsPic30f4013 có thêm một cặp chân mở rộng là U1ATX, U1ARX vậy file boot của anh sử dụng cặp chân bình thường (U1RX,U1TX) hay cặp chân mở rộng trên ạ?
Em đang sử dụng MPLAB C30 bản Full để viết cho 30f4013 khi select device là 30f4013 thì không chạy(vẫn dịch ra file .hex được) nhưng chọn thiết bị là 30f4011 thì lại Ok. Có phải C30 nó bị lỗi không ạ?

namqn
25-04-2006, 06:03 PM
Cho em hoi: UART1 của dsPic30f4013 có thêm một cặp chân mở rộng là U1ATX, U1ARX vậy file boot của anh sử dụng cặp chân bình thường (U1RX,U1TX) hay cặp chân mở rộng trên ạ?
Em đang sử dụng MPLAB C30 bản Full để viết cho 30f4013 khi select device là 30f4013 thì không chạy(vẫn dịch ra file .hex được) nhưng chọn thiết bị là 30f4011 thì lại Ok. Có phải C30 nó bị lỗi không ạ?
Tôi sử dụng cặp chân bình thường (U1TX và U1RX).
Tôi cho rằng C30 không có lỗi, bạn hỏi rất chung chung như thế thì khó mà trả lời cho chính xác được. Tôi chỉ có thể khuyên bạn một cách rất chung chung là kiểm tra phần cứng, các từ cấu hình, và chương trình của bạn.

Thân,

escapevn
27-04-2006, 12:20 AM
Bác Namqn à, em dùng thạch anh 7.3728, PLLx16 và PLLx8, UART1 thôi. Bác gửi cho em mấy file dùng cho con 3012 nhé. Cảm ơn bác nhiều.

namqn
27-04-2006, 06:07 PM
Tôi dùng main I/O cho UART1, cấu hình như bạn yêu cầu.

Thân,

escapevn
28-04-2006, 10:12 AM
Thanks bác Namqn nhiều lắm.

phamthaihoa
14-09-2006, 12:52 PM
Chip sử dụng cấu hình dưới đây:
CONFIG OSC = HS, OSCS = OFF
CONFIG PWRT = ON, BOR = ON, BORV = 27
CONFIG WDT = OFF, WDTPS = 128
CONFIG STVR = ON, LVP = OFF, DEBUG = OFF

Tập tin .hex được đính kèm phía dưới. Bootloader này làm việc với thạch anh ngoài 40 MHz (tôi khuyên không nên dùng thạch anh ở tần số này, vì chip sẽ khá nóng), tốc độ baud là 38400. Bạn thử xem có chạy tốt không nhé, vì tôi không có thạch anh 40 MHz để thử.

Thân,

Làm sao phải dùng thạch anh 40Mhz hả anh ?

Con 18F458 nếu muốn dùng 40Mhz --> 10MIPS chỉ cần cắm con thạch anh 10Mhz rồi config là:

LIST P=18F458 ; change also: Configure->SelectDevice from Mplab
xtal EQU 40000000 ; you may want to change: _XT_OSC_1H _HS_OSC_1H _HSPLL_OSC_1H
baud EQU 115200 ; standard TinyBld baud rates: 115200 or 19200



và dùng config đầu tiên dùng PLL

__CONFIG _CONFIG1H, _OSCS_OFF_1H & _HSPLL_OSC_1H

namqn
14-09-2006, 06:14 PM
Ừ, dùng cách đấy hay hơn, anh không để ý đến PLLx4 của PIC18F458.

Nhưng dù sao chạy ở 10 MIPS thì vẫn phải để ý đến vấn đề phát nóng của chip.

Thân,

Wpic
13-08-2007, 11:59 AM
Các bác cho e hỏi chút! E đang dùng thử con dspic30F4012 nhưng gặp vấn đề về khởi động cho UART.
+ Khi khởi động chế độ thạch anh nội của nó thì truyền OK nhưng truyền toàn kí tự lạ
+ Còn khi dùng chế độ thạch anh ngoài của nó với bau 19200,PLLx8 thì nó chẳng chạy chương trình j trong nó cả(thử xuất đèn LED cũng k được)
Các bác thử chẩn bệnh của nó hộ với.Cảm ơn các bác trước

namqn
14-08-2007, 02:27 AM
Các bác cho e hỏi chút! E đang dùng thử con dspic30F4012 nhưng gặp vấn đề về khởi động cho UART.
+ Khi khởi động chế độ thạch anh nội của nó thì truyền OK nhưng truyền toàn kí tự lạ
+ Còn khi dùng chế độ thạch anh ngoài của nó với bau 19200,PLLx8 thì nó chẳng chạy chương trình j trong nó cả(thử xuất đèn LED cũng k được)
Các bác thử chẩn bệnh của nó hộ với.Cảm ơn các bác trước
1. Bạn có biết chính xác tần số dao động nội của dsPIC không? Bạn đã thiết lập các thông số phía thu đúng chưa?

2. Bạn có đảm bảo là chip đang chạy thạch anh ngoài hay không? Bạn dùng thạch anh tần số bao nhiêu và thiết lập từ cấu hình thế nào?

Chú ý: PIC/dsPIC thường có các phản ứng bất thường khi bạn viết code mà không xác định đầy đủ các từ cấu hình.

Thân,

conglong
23-03-2009, 06:34 PM
Chú ý: PIC/dsPIC thường có các phản ứng bất thường khi bạn viết code mà không xác định đầy đủ các từ cấu hình.

Thân,

Thấy Nam cho em hỏi là: khi mình viết chương trình cho dsPic/Pic thì phải cấu hình cho nó trước nhưng thực sự e không hiểu rõ hết các từ cấu hình mà thầy dùng trong các TUTO của thầy:

" _FOSC(CSW_FSCM_OFF & XT); //Clock = 10 MHz
_FWDT(WDT_OFF);
_FBORPOR(MCLR_EN & PBOR_OFF & PWMxL_ACT_HI & PWMxH_ACT_HI);
_FGS(CODE_PROT_OFF); "

ở đây CSW_FSCM là gì hả thầy? WDT_OFF là watchdog đang ở chế độ tắt nhưng em chưa hiểu rõ Watchdog ? trong RFM document của dsPic 30 nói mấy thanh ghi này trừu tượng quá đọc mà không hiểu.
Em cảm ơn Thầy nhiều !.
Trân trọng !.

namqn
23-03-2009, 07:50 PM
Thấy Nam cho em hỏi là: khi mình viết chương trình cho dsPic/Pic thì phải cấu hình cho nó trước nhưng thực sự e không hiểu rõ hết các từ cấu hình mà thầy dùng trong các TUTO của thầy:

" _FOSC(CSW_FSCM_OFF & XT); //Clock = 10 MHz
_FWDT(WDT_OFF);
_FBORPOR(MCLR_EN & PBOR_OFF & PWMxL_ACT_HI & PWMxH_ACT_HI);
_FGS(CODE_PROT_OFF); "

ở đây CSW_FSCM là gì hả thầy? WDT_OFF là watchdog đang ở chế độ tắt nhưng em chưa hiểu rõ Watchdog ? trong RFM document của dsPic 30 nói mấy thanh ghi này trừu tượng quá đọc mà không hiểu.
Em cảm ơn Thầy nhiều !.
Trân trọng !.
CSW viết tắt cho Clock Switching, là khả năng chuyển đổi giữa các nguồn xung clock (Primary, Secondary, FRC, và LPRC) khi dsPIC đang vận hành bình thường. Xem thêm mục 7.17 trong "dsPIC30F Family Reference Manual" về cách thực hiện clock switching.

FSCM viết tắt cho Fail-Safe Clock Monitor, là khả năng giám sát hoạt động bộ dao động và tự động chuyển sang nguồn FRC nếu bộ dao động có vấn đề.

Watchdog là một timer chạy tự do (khi được bật), dùng để tự động reset dsPIC khi phần mềm chạy sai, ví dụ quẩn trong một vòng lặp vô tận, và không thể định kỳ xóa thanh ghi timer của watchdog.

Thân,

trinh
25-09-2010, 11:16 PM
Chào anh Nam .
Anh có thể cho em chương trình và files Hẽ của bootloader cho dspic30f4013 với cấu hình như sau :
- dùng Dsoic30f4013
- Thạch anh dùng thạch anh nội với 7,5 MIPS hoặc 7,37
- Cổng truyền thông dùng loại UART2.
- Tốc độ truyền thông là 19200 Baud.
trong đoạn code dspic30f4013.gld như sau.

MEMORY
{
data (a!xr) : ORIGIN = 0x800, LENGTH = 2048
program (xr) : ORIGIN = 0x000, LENGTH = ((16K * 2))
}

Anh vui long cho em files bootloader với .

Cảm ơn anh.

Email của em : cuocsong12@yahoo.com