PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   dsPIC - Bộ điều khiển tín hiệu số 16-bit (http://www.picvietnam.com/forum/forumdisplay.php?f=29)
-   -   Chú ý khi sử dụng bộ dao động nội của dsPIC (http://www.picvietnam.com/forum/showthread.php?t=326)

namqn 03-04-2006 10:17 PM

Trích:

Nguyên văn bởi Grp
(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

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,

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

Trích:

Nguyên văn bởi namqn
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

Trích:

Nguyên văn bởi doannh
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

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,

escapevn 28-04-2006 10:12 AM

Thanks bác Namqn nhiều lắm.

phamthaihoa 14-09-2006 12:52 PM

Trích:

Nguyên văn bởi namqn (Post 2219)
Chip sử dụng cấu hình dưới đây:
Code:

        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à:

Trích:

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

Trích:

__CONFIG _CONFIG1H, _OSCS_OFF_1H & _HSPLL_OSC_1H


Múi giờ GMT. Hiện tại là 10:20 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