![]() |
|
Tài trợ cho PIC Vietnam |
dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Nhập môn đệ tử
Tham gia ngày: Dec 2008
Bài gửi: 3
: |
Flash(ROM) và EEPROM
Em thấy một số chip pic24x,và dsp30,dsp33 không có EEPROM.Như thế khi đòi hỏi lưu lại thông số (ví dụ các hệ số tính toán được Kp,Ki..) thì chắc phải lưu lại vào flash (rom).Nhưng tư tưởng thực hiện như thế nào thì em chưa thông .Mong các anh chỉ giúp
|
![]() |
![]() |
![]() |
#2 | |
Trưởng lão PIC bang
|
Trích:
http://www.microchip.com/stellent/id...pnote=en530593 Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#3 | |
Đệ tử 1 túi
Tham gia ngày: Dec 2008
Bài gửi: 13
: |
Trích:
1.Dùng dspic+ROM ngoài 2.Dùng dspic có Flash Rom đủ lớn (ví dụ dsp30F6015 Flash 144k) và lúc đó cũng sử dụng nó để giả lập EEPROM ---Hai phương án này phương án nào ưu thế hơn,phương án nào dễ làm hơn. ---Nếu ở phương án 2 :thì lượng flash Rom có thể sử dụng như EEProm là bao nhiêu( chỗ này mong anh Nam nói kĩ giúp),em cũng đọc app anh Nam gửi trên nhưng tiếng anh không khá nên có nhiều chỗ lờ mờ .Anh Nam có thể nói kĩ giúp về việc sử dụng Flash vai trò EEprom này không. --Em thấy trong file emulation đi kèm có file included chỉ thấy họ viết cho dsp33,p24 thôi liêu em sử dụng file này luôn thì có thể viết đọc ghi trực tiếp cho những dòng này không.Và nếu thế dòng dsp30 có thể làm như thế này không. |
|
![]() |
![]() |
![]() |
#4 | |
Trưởng lão PIC bang
|
Trích:
- Nếu dùng dsPIC và EEPROM ngoài, sẽ tốn thêm một ít tiền và vài chân I/O của dsPIC (giá bán lẻ là 3.82 USD cho một chip 24AA1025 dung lượng 1 Mbit, hay 3.14 USD cho một chip 25AA1024 dung lượng 1 Mbit). - Nếu dùng dsPIC và giả lập EEPROM thì CPU sẽ bị stall (đứng) trong khoảng thời gian thực hiện thao tác ghi ô nhớ thực sự. Về độ khó, theo tôi cả hai phương án đều không khó, vì Microchip đã cung cấp các app. note với các code mẫu. Dung lượng EEPROM có thể được giả lập chỉ phụ thuộc vào số trang (khối nhớ được xóa độc lập bằng một lệnh xóa trang) bộ nhớ flash còn trống của chương trình ứng dụng. Các dsPIC33F hay PIC24 đều có cùng kích thước trang, do đó bạn có thể dùng code mẫu cho bất kỳ dsPIC33F hay PIC24 nào. Các dsPIC30F cần giả lập EEPROM thì lại có kích thước trang (khối nhớ có thể xóa độc lập) khác với các dsPIC33F/PIC24, đồng thời dsPIC30F cũng không thể ghi vào từng từ lệnh riêng biệt được. Do đó, cần sửa lại code cho các dsPIC30F. Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#5 |
Đệ tử 6 túi
|
Viec ghi du lieu vao Flash la mot giai phap rat hay(vua khong mat du lieu khi mat dien, vua có the luu nhieu du lieu(bo nho Flash thong thuong se lon hon bo nho eeprom nhieu)). Vi du nhu có 1 ung dung nao dó, can luu khoang do 3-4 bo font...hoac nhu các ban lam ve quang bao, có khoang 100 hieu ung chang han, cac ban muon khi mat dien sau do co dien lai 100 hieu ung nay tiep tuc chạy, thì cách ghi vao Flash la mot giai pháp tot nhat.
Neu viet chuong trinh bang CCS, cac ban co the su dung 2 lenh nay de ghi và doc du lieu trong Flash: 1 write_program_memory( address, dataptr, count ); 2 READ_PROGRAM_MEMORY (address, dataptr, count ); |
![]() |
![]() |
![]() |
#6 |
Đệ tử 5 túi
Tham gia ngày: Oct 2008
Bài gửi: 95
: |
bạn gì đó ơi bạn có thể giúp mình xem code của file lcd.rar mình post ở đề tài "cứu tôi với"
Cảm ơn bạn |
![]() |
![]() |
![]() |
#7 |
Đệ tử 4 túi
Tham gia ngày: Aug 2008
Bài gửi: 89
: |
Nói chung có thể thực hiện việc lưu vào Flash của PIC thay cho EEPROM, tuy nhiên cần chú ý phải xác định vùng địa chỉ trống trên Flash cần dùng cho hợp lý để tránh trùng lặp với các vùng chương trình và dữ liệu khác.
__________________
Quang báo RG/RGB 6/8/12/16 bits màu Phone No: 0905.034.086 Email: lmquyen@gmail.com |
![]() |
![]() |
![]() |
#8 |
Nhập môn đệ tử
Tham gia ngày: Oct 2008
Bài gửi: 6
: |
bạn cskiller cho mình hỏi, làm sao để biết chổ nào trong Flash còn trống để lưu dữ liệu tránh ghi đè lên code chương trình hoặc dữ liệu khác
|
![]() |
![]() |
![]() |
#9 |
Nhập môn đệ tử
Tham gia ngày: May 2009
Bài gửi: 4
: |
Có anh nào có thể hướng dẫn cụ thể về vấn đề ghi và đọc từ bộ nhớ flash được không ạh.
Em đang rất vướng và cần sự giúp đỡ. Mong các cao thủ chỉ giáo. Em cảm ơn rất nhiều! |
![]() |
![]() |
![]() |
#10 |
Đệ tử 1 túi
Tham gia ngày: Jul 2007
Bài gửi: 17
: |
em tìm trên mạng chỉ được code = asm thôi. có bác nào viết đc code = C không cho em xin.
write_program_memory( address, dataptr, count ); READ_PROGRAM_MEMORY (address, dataptr, count ); làm được 2 chương trình này là ok rồi thanks |
![]() |
![]() |
![]() |
#11 |
Đệ tử 3 túi
Tham gia ngày: Oct 2006
Bài gửi: 46
: |
Mình dùng MikroC thấy có các hàm hỗ trợ việc ghi vào flash.
Code:
Flash_Read Flash_Read_N_Bytes Flash_Write Flash_Write_8 Flash_Write_16 Flash_Write_32 Flash_Write_64 Flash_Erase Flash_Erase_64 Flash_Erase_1024 Flash_Erase_Write Flash_Erase_Write_64 Flash_Erase_Write-1024
__________________
http://www.hieunghia.info Lướt web thoải mái với USB3G của Viettel http://www.hieunghia.info/tin-cong-n...3g-vietel.html ----------------------------------------------------------------------------------- Một chút giận,hai chút tham,lận đận cả đời ri cũng khổ. Trăm điều lành,ngàn điều nhịn,thong dong tấc dạ rứa mà vui |
![]() |
![]() |
![]() |
#12 | |
Đệ tử 1 túi
Tham gia ngày: Jul 2007
Bài gửi: 17
: |
![]() Trích:
bác nào nói cho em cách ghi vào với . bình thường nếu ta dùng 1 chip nhớ thì ta chỉ thao tác với thanh ghi 8bit thôi.nhưng ở đây chúng ta dùng trực tiếp bộ nhớ flash của chương trình thay cho eeprom nên 1 thanh ghi của nó là 24bit.vậy ta phải giải quết thế nào . |
|
![]() |
![]() |
![]() |
#13 |
Nhập môn đệ tử
Tham gia ngày: Oct 2009
Bài gửi: 5
: |
![]() Bài Đồ Án của e la: Khóa Số sử dụng Pic6f877a giao tiếp với Lcd, viết bằng ASM. sao e viết no chạy ko được.
thay đổi nội dung bởi: zzKhungDiLaczz, 24-12-2009 lúc 06:33 PM. Lý do: e chua post code |
![]() |
![]() |
![]() |
#14 |
Đệ tử 3 túi
Tham gia ngày: Oct 2006
Bài gửi: 46
: |
Trong datasheet cũng có các đoạn code mẫu bằng asm ghi vào EEPROM :
Mình trích trong datasheet con 77a: DATA EEPROM WRITE Code:
BSF STATUS,RP1 ; BSF STATUS,RP0 BTFSC EECON1,WR ;Wait for write GOTO $-1 ;to complete BCF STATUS, RP0 ;Bank 2 MOVF DATA_EE_ADDR,W ;Data Memory MOVWF EEADR ;Address to write MOVF DATA_EE_DATA,W ;Data Memory Value MOVWF EEDATA ;to write BSF STATUS,RP0 ;Bank 3 BCF EECON1,EEPGD ;Point to DATA ;memory BSF EECON1,WREN ;Enable writes BCF INTCON,GIE ;Disable INTs. MOVLW 55h ; MOVWF EECON2 ;Write 55h MOVLW AAh ; MOVWF EECON2 ;Write AAh BSF EECON1,WR ;Set WR bit to ;begin write BSF INTCON,GIE ;Enable INTs. BCF EECON1,WREN ;Disable writes Code:
BSF STATUS,RP1 ; BCF STATUS,RP0 ; Bank 2 MOVF DATA_EE_ADDR,W ; Data Memory MOVWF EEADR ; Address to read BSF STATUS,RP0 ; Bank 3 BCF EECON1,EEPGD ; Point to Data ; memory BSF EECON1,RD ; EE Read BCF STATUS,RP0 ; Bank 2 MOVF EEDATA,W ; W = EEDATA
__________________
http://www.hieunghia.info Lướt web thoải mái với USB3G của Viettel http://www.hieunghia.info/tin-cong-n...3g-vietel.html ----------------------------------------------------------------------------------- Một chút giận,hai chút tham,lận đận cả đời ri cũng khổ. Trăm điều lành,ngàn điều nhịn,thong dong tấc dạ rứa mà vui thay đổi nội dung bởi: nghia_tdh21, 26-12-2009 lúc 09:06 PM. |
![]() |
![]() |
![]() |
|
|