![]() |
Chú ý khi sử dụng bộ dao động nội của dsPIC
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, |
Trích:
|
Trích:
Thân, |
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. |
Trích:
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, |
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 |
1 Attachment(s)
Trích:
Chip sẽ dùng cấu hình sau: Code:
config __FOSC, CSW_FSCM_OFF & XT_PLL4 Code:
mov #0x8000, W0 ;bit15=UARTEN bit10=ALTIO, use Main IO Thân, |
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
|
1 Attachment(s)
Chip sử dụng cấu hình dưới đây:
Code:
CONFIG OSC = HS, OSCS = OFF Thân, |
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! |
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. |
1 Attachment(s)
Trích:
http://ww1.microchip.com/downloads/e...Doc/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, |
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é. |
Trích:
Bạn có thể post tập tin .hex mà bạn đang dùng để thử lên đây được không? Thân, |
Đấ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). |
Trích:
Thân, |
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. |
1 Attachment(s)
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, |
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].
|
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, |
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.
|
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. |
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, |
Để đỡ 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. |
Trích:
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 ạ? |
Trích:
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, |
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.
|
1 Attachment(s)
Tôi dùng main I/O cho UART1, cấu hình như bạn yêu cầu.
Thân, |
Thanks bác Namqn nhiều lắm.
|
Trích:
Con 18F458 nếu muốn dùng 40Mhz --> 10MIPS chỉ cần cắm con thạch anh 10Mhz rồi config là: Trích:
Trích:
|
Ừ, 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, |
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 |
Trích:
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, |
Trích:
" _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 !. |
Trích:
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, |
ko dịch được chương trình bootloader cho ds30f4013
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 |
Múi giờ GMT. Hiện tại là 09:49 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam