PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp USB, CAN, I2C, SPI, USART...

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 14-12-2009, 12:13 PM   #16
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Trích:
Nguyên văn bởi tahi View Post
Em đã đọc được single block, nhưng em chưa hiểu lắm. Khi format thẻ với định dạng khác nhau thì đọc MBR có giống nhau không ? (theo em là có nhưng thực tế là đọc lần nào cũng như lần nào)
Định dạng Partition thay đổi thì boot record của partition đó thay đổi chứ Master Boot Record thì không có gì khác. Nếu thay đổi partition (kích thước, số lượng, active) thì MBR mới thay đổi.
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-12-2009, 10:59 AM   #17
tahi
Đệ tử 4 túi
 
Tham gia ngày: Mar 2009
Bài gửi: 64
:
Sau khi đọc được MBR, em thấy trong 512 byte của nó có dòng "Invalid partition table , error loading operating system missing operating system" Dòng này bắt đầu từ địa chỉ 139 (hay 0x8B)
Đọc MBR chính là đọc sector 0 có phải không ạ ? Còn boot sector là của từng thằng partition ? Ý em muốn hỏi về 3 khái niệm MBR, boot sector và sector 0 của thằng SD card, hàm đọc sector em gán địa chỉ là 0 thì đọc đuợc cái gì trong 3 thằng đó
Do cái em đọc được nó không có những thông tin dưới đây, nên nó ko nhảy vào được cái if này, mặc dù đã format thẻ là FAT16
Code:
#ifdef USE_16BIT
     	if (ReadByte( dsk->buffer, BSI_FSTYPE ) == 'F' && \
            ReadByte( dsk->buffer, BSI_FSTYPE + 1 ) == 'A' && \
            ReadByte( dsk->buffer, BSI_FSTYPE + 2 ) == 'T' && \
            ReadByte( dsk->buffer, BSI_FSTYPE + 3 ) == '1' && \
            ReadByte( dsk->buffer, BSI_BOOTSIG) == 0x29)	
#else
        if (BSec->FAT.FAT_16.BootSec_FSType[0] == 'F' && \
            BSec->FAT.FAT_16.BootSec_FSType[1] == 'A' && \
            BSec->FAT.FAT_16.BootSec_FSType[2] == 'T' && \
            BSec->FAT.FAT_16.BootSec_FSType[3] == '1' && \
            BSec->FAT.FAT_16.BootSec_BootSig == 0x29)
#endif
        {
            	dsk->firsts = 0;
            	dsk->type = FAT16;
        }
tahi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-12-2009, 11:25 AM   #18
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Trích:
Nguyên văn bởi tahi View Post
Sau khi đọc được MBR, em thấy trong 512 byte của nó có dòng "Invalid partition table , error loading operating system missing operating system" Dòng này bắt đầu từ địa chỉ 139 (hay 0x8B)
Đọc MBR chính là đọc sector 0 có phải không ạ ? Còn boot sector là của từng thằng partition ? Ý em muốn hỏi về 3 khái niệm MBR, boot sector và sector 0 của thằng SD card, hàm đọc sector em gán địa chỉ là 0 thì đọc đuợc cái gì trong 3 thằng đó
Do cái em đọc được nó không có những thông tin dưới đây, nên nó ko nhảy vào được cái if này, mặc dù đã format thẻ là FAT16
Code:
#ifdef USE_16BIT
     	if (ReadByte( dsk->buffer, BSI_FSTYPE ) == 'F' && \
            ReadByte( dsk->buffer, BSI_FSTYPE + 1 ) == 'A' && \
            ReadByte( dsk->buffer, BSI_FSTYPE + 2 ) == 'T' && \
            ReadByte( dsk->buffer, BSI_FSTYPE + 3 ) == '1' && \
            ReadByte( dsk->buffer, BSI_BOOTSIG) == 0x29)	
#else
        if (BSec->FAT.FAT_16.BootSec_FSType[0] == 'F' && \
            BSec->FAT.FAT_16.BootSec_FSType[1] == 'A' && \
            BSec->FAT.FAT_16.BootSec_FSType[2] == 'T' && \
            BSec->FAT.FAT_16.BootSec_FSType[3] == '1' && \
            BSec->FAT.FAT_16.BootSec_BootSig == 0x29)
#endif
        {
            	dsk->firsts = 0;
            	dsk->type = FAT16;
        }
MBR bao giờ cũng là sector 0 của ổ đĩa, sau khi hoàn tất POST, Bios sẽ đọc MBR của ổ đĩa được chọn để boot. Đoạn đầu của MBR là đoạn code để thực hiện kiểm tra xem phân vùng nào trong đĩa sẽ dùng để boot. Đoạn cuối của MBR sẽ có 1 struct mô tả trên đĩa có bao nhiêu phân vùng primary, kích thước, có active hay ko....

Nếu tìm thấy phân vùng active, nó sẽ load sector 0 của phân vùng đó, sector này gọi là Boot Sector hoặc Boot Record. Đoạn code trên BR sẽ làm nhiệm vụ load hệ điều hành trên phân vùng đó.

Tùy thuộc vào chương trình dùng để format, thẻ của bạn có thể có hoặc ko có MBR, nhưng luôn luôn có ít nhất 1 BR.

Nếu có MBR thì nó nằm ở sector 0 của thẻ, bạn phải tìm BR của các phân vùng primary dựa vào struct bắt đầu ở offset 446

Nếu ko có MBR thì sector 0 là BR của phân vùng duy nhất trên thẻ.

Mình nghĩ thẻ của bạn có MBR, bạn chỉ mới đọc sector 0 là MBR, còn phải lọc và tìm BR nữa.
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-12-2009, 09:57 AM   #19
tahi
Đệ tử 4 túi
 
Tham gia ngày: Mar 2009
Bài gửi: 64
:
Cám ơn bác, em đã đọc được MBR. Em viết lại cho nó dễ hiểu hơn tý. Các bạn khác có thể tham khảo tài liệu AN1045 của microchip để hiểu sơ qua về MBR và cách dùng thư viện MDD

Với thằng thẻ có MBR, đầu tiên là đọc MBR (sector 0). Trong 512 Bytes của sector 0, thì từ byte thứ 446 là thông tin về partition. Người ta gọi là partition entry(với 512byte/sector thì chỉ có tối đa 4 partition ), mỗi thằng partion entry thì có 16 byte (ví dụ thằng partition entry 1 sẽ từ 446 đến 446 + 16). Trong 16 byte partition entry có thông tin về partition đó có được active ko, sector bắt đầu, sector kết thúc, số sector từ MBR đến địa chỉ bắt đầu của partition đó..=>đọc MBR rồi lọc lấy partition entry rồi nhảy đến boot sector của partition đó. Trong 512 bytes của boot sector sẽ có thông tin để nhảy vào root entry (nơi chưa thông tin về file cần đọc)

@bien_van_khat:
em có 2 cái sd card, 1 cái có MBR, thì init được và đọc được, còn cái không có MBR thì ko init được. Vậy làm thế nào để có MBR, không init được thì mình có đọc dữ liệu từ thẻ không (theo suy luận của em là có, nhưng trong code, có thủ tục khởi tạo, nó không khởi tạo vào mode tranfer thì nó cũng chẳng đọc được cái gì)

thay đổi nội dung bởi: tahi, 16-12-2009 lúc 10:17 AM.
tahi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-12-2009, 10:47 AM   #20
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Trích:
Nguyên văn bởi tahi View Post
em có 2 cái sd card, 1 cái có MBR, thì init được và đọc được, còn cái không có MBR thì ko init được. Vậy làm thế nào để có MBR, không init được thì mình có đọc dữ liệu từ thẻ không (theo suy luận của em là có, nhưng trong code, có thủ tục khởi tạo, nó không khởi tạo vào mode tranfer thì nó cũng chẳng đọc được cái gì)
Khởi tạo thành công thì bạn mới có thông tin về phân vùng, ví dụ vị trí bảng FAT, kích thước FAT, kích thước cluster, ..... Ko có thì sao mà đọc được dữ liệu
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-12-2009, 04:07 PM   #21
tahi
Đệ tử 4 túi
 
Tham gia ngày: Mar 2009
Bài gửi: 64
:
Trích:
Nguyên văn bởi bien_van_khat View Post
Khởi tạo thành công thì bạn mới có thông tin về phân vùng, ví dụ vị trí bảng FAT, kích thước FAT, kích thước cluster, ..... Ko có thì sao mà đọc được dữ liệu
Thế thì những thẻ ko có MBR thì chịu không đọc đuợc à. Hay là ko đọc MBR nữa mà nhảy thẳng vào boot sector của partition...

Hiện tại code em mặc dù đọc file ok, nhưng rất củ chuối:
Quá trình khởi tạo thẻ của em như sau:

- Gửi CMD0 bằng cách điều khiển I/O thông thường..(Viết truyền nhận SPI thủ công, bằng cách dịch bít). Thấy trả về 0x01, thẻ đã đuợc reset.
- Sau đó, khởi tạo SPI, dùng hàm truyền, nhận SPI trong file spi.c. (2 hàm này bọn nó ko kiểm tra các bít SPIRBF, SPITBF, hàm read cũng chẳng có write 0xFF, em cho thêm vào thì chạy ok). Gửi lại 2 lệnh CMD0 để reset (response = 1 ,reset), rồi CMD1 khởi tạo thẻ (response = 0, kết thúc init)
-Sau đó em test lệnh đọc 1 sector(CMD17)
gửi cmd17 (res 0, ko lỗi) sau đó đợi token (đợi 0xFE), có token rồi bắt đầu đọc liên tiếp 512 byte dữ liệu.

Nói tóm lại là em viết phải viết lại hàm SendMMCCmd() và MDD_SDSPI_SectorRead(). Mặc dù về cơ chế của nó cũng chẳng khác gì của mình

Vấn đề là em muốn sửa lại ko dùng điều khiển I/O nữa, nói chung là dùng toàn bộ thư viện.
Hiện tượng hiện tại là: nếu bỏ đoạn dùng I/O, reset vẫn chạy bình thường. Nhưng rút thẻ ra cắm lại, thì đến chỗ gửi cmd0 bằng SPI thì toàn trả về 0....(Nếu có đoạn code kia thì cắm, rút mái thoải, vẫn ok)

Thêm nữa, trong thư viện, đường SS =0 mỗi khi bắt đầu gửi lệnh và =1 mỗi khi gửi xong. Trong giải thuật đọc 1 sector, đến phần đợi data_token, đường SS bị nâng lên 1. VẬy đường SS này có ảnh hưởng thế nào đến việc response của thẻ.
tahi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-12-2009, 09:19 AM   #22
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Trích:
Nguyên văn bởi tahi View Post
Thế thì những thẻ ko có MBR thì chịu không đọc đuợc à. Hay là ko đọc MBR nữa mà nhảy thẳng vào boot sector của partition...
Theo quan điểm của mình, MBR chỉ có tác dụng khi thẻ có nhiều phân vùng. Code của bạn phải có khả năng xác định sector 0 là BR hay MBR
Trích:
Hiện tượng hiện tại là: nếu bỏ đoạn dùng I/O, reset vẫn chạy bình thường. Nhưng rút thẻ ra cắm lại, thì đến chỗ gửi cmd0 bằng SPI thì toàn trả về 0....(Nếu có đoạn code kia thì cắm, rút mái thoải, vẫn ok)
Rút thẻ ra cắm lại, bạn có init ko? hay ko thể init?
Trích:
Thêm nữa, trong thư viện, đường SS =0 mỗi khi bắt đầu gửi lệnh và =1 mỗi khi gửi xong. Trong giải thuật đọc 1 sector, đến phần đợi data_token, đường SS bị nâng lên 1. VẬy đường SS này có ảnh hưởng thế nào đến việc response của thẻ.
CS phải tích cực thì mới truy xuất được thẻ.
Hàm SendMMCCmd:
Code:
// see if we are expecting data or not
    if(!(sdmmc_cmdtable[cmd].moredataexpected))
        SD_CS = 1;
có kiểm tra lệnh được gửi có cần thêm data theo sau hay ko, nếu có thì nó vẫn tích cực chân CS.
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-12-2009, 11:38 PM   #23
tahi
Đệ tử 4 túi
 
Tham gia ngày: Mar 2009
Bài gửi: 64
:
Trích:
Nguyên văn bởi bien_van_khat View Post
Rút thẻ ra cắm lại, bạn có init ko? hay ko thể init?
Mạch của em làm nguồn không ổ định, nên cứ rút thẻ ra, cắm lại là bị reset. Và không thể init lại, có nghĩa là gửi lệnh CMD0 để reset thẻ thì ko thấy response nữa.
Trích:
Nguyên văn bởi bien_van_khat View Post
Code:
// see if we are expecting data or not
    if(!(sdmmc_cmdtable[cmd].moredataexpected))
        SD_CS = 1;
có kiểm tra lệnh được gửi có cần thêm data theo sau hay ko, nếu có thì nó vẫn tích cực chân CS.
Có đoạn này, nhưng em ko hiểu, nên xóa đi mất roài . Thay bằng hàm trong cái code của con dspic304013

Làm thế nào để đọc được file lớn trong khi buffer là có hạn...?Ý em hỏi về cơ chế đọc file, rồi nhét vào buffer rồi xử lý cái đó như thế nào . ???

thay đổi nội dung bởi: tahi, 21-12-2009 lúc 10:06 AM.
tahi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-12-2009, 10:11 AM   #24
tahi
Đệ tử 4 túi
 
Tham gia ngày: Mar 2009
Bài gửi: 64
:
Giờ em dính vấn đề với lệnh write vào thẻ CMD24. Rõ ràng ko có data response mà vẫn write được vào thẻ. Em dùng win hex để kiểm tra lại .

Lệnh write các sector liên tiếp nhau có hiện tượng, 1 sector có dữ liệu 1 sector lại ko,

Hiện tượng kỳ quái hơn là: đặt delay giữa các lần write vào 1 sector thì:
ko có data_response => ko có response của lệnh CMD24 => ko có data_response =>...
cứ thế.
Nhưng kết quả của việc đặt delay hay ko delay giữa mỗi lần write sector là như nhau. Đó là :1 sector có dữ liệu 1 sector lại ko,

Em dùng hàm của nó
Code:
MDD_SDSPI_SectorWrite
tahi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-12-2009, 12:41 PM   #25
rhinoceros
Đệ tử 1 túi
 
Tham gia ngày: Jul 2007
Bài gửi: 17
:
em đã đọc luồng này từ đầu,và cũng đã tham khảo nhiều luồng viết về vấn đề này.nhưng em thấy các bác cứ nói lan man,lại chẳng biết các bác nói những cái gì .hic mới bắt đầu mong mọi người giúp.
các bác cho em hỏi.giờ em muốn làm 1 chiếc MP3 thì phải làm gì ?
phần cứng có VĐK kết nối với Thẻ nhớ theo chẩn SPI có sẵn trên chip
về phần phát ra âm thanh thì vẫn chưa định hướng được phải dùng cái gì ? DAC hay PWM ?
ưu điểm và nhược điểm của mỗi loại.
nếu dùng dac thì có phải ghép thêm dac ngoài không ?nếu thế em sợ tần số đưa ra không đủ.hoặc nếu có đủ thì chất lượng âm thanh sẽ kém !!!
về phần mềm thì cần phải thao tác những gì ?
thí dụ như giao tiếp với thẻ nhớ cần khởi tạo như thế nào ?
làm thế nào để có thể hiển thị được nội dung của 1 file(tên file,kích thước , độ dài , tần số ... )
bản thân con chip khi đọc được nội dung của 1 file MP3 thì nó không thể tự phát ra nhạc được,giống như trên win vậy,muốn chơi nhạc thì phải có trình chơi nhạc.vậy cần phải làm gì để chạy được file MP3 ra nhạc. em nghĩ mình cần include 1 thư viện chơi nhạc vào thôi :-? không biết có đúng không .nếu như thế thì file để include là thế nào? em cần tìm ở đâu?


_____________________
MR : Nguyễn Thắng
Tel : 0125.432.56.00
add: HaUI.trường đại học công nghiệp HN
Email: NgThang164@Gmail.com
rhinoceros vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-12-2009, 01:38 PM   #26
tahi
Đệ tử 4 túi
 
Tham gia ngày: Mar 2009
Bài gửi: 64
:
Trích:
em đã đọc luồng này từ đầu,và cũng đã tham khảo nhiều luồng viết về vấn đề này.nhưng em thấy các bác cứ nói lan man,lại chẳng biết các bác nói những cái gì .hic mới bắt đầu mong mọi người giúp.
các bác cho em hỏi.giờ em muốn làm 1 chiếc MP3 thì phải làm gì ?
phần cứng có VĐK kết nối với Thẻ nhớ theo chẩn SPI có sẵn trên chip
về phần phát ra âm thanh thì vẫn chưa định hướng được phải dùng cái gì ? DAC hay PWM ?
ưu điểm và nhược điểm của mỗi loại.
nếu dùng dac thì có phải ghép thêm dac ngoài không ?nếu thế em sợ tần số đưa ra không đủ.hoặc nếu có đủ thì chất lượng âm thanh sẽ kém !!!
về phần mềm thì cần phải thao tác những gì ?
thí dụ như giao tiếp với thẻ nhớ cần khởi tạo như thế nào ?
làm thế nào để có thể hiển thị được nội dung của 1 file(tên file,kích thước , độ dài , tần số ... )
bản thân con chip khi đọc được nội dung của 1 file MP3 thì nó không thể tự phát ra nhạc được,giống như trên win vậy,muốn chơi nhạc thì phải có trình chơi nhạc.vậy cần phải làm gì để chạy được file MP3 ra nhạc. em nghĩ mình cần include 1 thư viện chơi nhạc vào thôi :-? không biết có đúng không .nếu như thế thì file để include là thế nào? em cần tìm ở đâu?
Hi, chắc bạn chưa đọc gì rồi. Chả có cái gì ngon và dễ sơi đâu.
Để phát nhạc đơn giản nhất bạn cần làm những việc sau:
SD card ->MCU-> Amplifier
Như vậy để đơn giản nhất, bạn cần 1 con MCU có tích hợp sẵn các module để hỗ trợ giao tiếp với thẻ và để phát tín hiệu âm thanh ra bộ khuếch đại.
-Thẻ SD thì giao tiếp bằng 2 mode , SD và SPI => dùng con MCU nào có SPI là xong
-Phát ra âm thanh thì có 2 cách, dùng DAC hoặc PWM(nếu dùng thằng này phải có bộ lọc bên ngoài để biến tín hiệu PWM thành tín hiệu hình sin...) => chọn MCU có DAC hoặc PWM là xong.

Vậy nguyên tắc sẽ là: MCU đọc thẻ, tìm lấy file nhạc, tách lấy header (bao gồm các thông tin về tần số lấy mẫu, độ dài dữ liệu, số kênh, stereo hay mono..có nén ko ...) Thông tin đó dùng để cấu hình cho DAC (tần số DAC, dùng mấy kênh... hoặc cấu hình duty circle cho thằng PWM). Nếu nhạc format đơn giản WAV thì chỉ cần đọc phần data của file rồi bắn ra bộ đếm của DAC là ok....Đương nhiên nếu bị giật giật hoặc chả nghe thấy cái gì thì còn phải calibrate nhiều .

Vậy cần đọc những gì:
+ Giao tiếp với thẻ SD (bên điện tử việt nam có anh viết khá kỹ).
+ SPI, DAC, PWM, timer của thằng MCU bạn làm
+ Format của file wave (.wav)
tahi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-01-2010, 04:02 PM   #27
rhinoceros
Đệ tử 1 túi
 
Tham gia ngày: Jul 2007
Bài gửi: 17
:
Thumbs down

Trích:
Nguyên văn bởi tahi View Post
Hi, chắc bạn chưa đọc gì rồi. Chả có cái gì ngon và dễ sơi đâu.
Để phát nhạc đơn giản nhất bạn cần làm những việc sau:
SD card ->MCU-> Amplifier
Như vậy để đơn giản nhất, bạn cần 1 con MCU có tích hợp sẵn các module để hỗ trợ giao tiếp với thẻ và để phát tín hiệu âm thanh ra bộ khuếch đại.
-Thẻ SD thì giao tiếp bằng 2 mode , SD và SPI => dùng con MCU nào có SPI là xong
-Phát ra âm thanh thì có 2 cách, dùng DAC hoặc PWM(nếu dùng thằng này phải có bộ lọc bên ngoài để biến tín hiệu PWM thành tín hiệu hình sin...) => chọn MCU có DAC hoặc PWM là xong.

Vậy nguyên tắc sẽ là: MCU đọc thẻ, tìm lấy file nhạc, tách lấy header (bao gồm các thông tin về tần số lấy mẫu, độ dài dữ liệu, số kênh, stereo hay mono..có nén ko ...) Thông tin đó dùng để cấu hình cho DAC (tần số DAC, dùng mấy kênh... hoặc cấu hình duty circle cho thằng PWM). Nếu nhạc format đơn giản WAV thì chỉ cần đọc phần data của file rồi bắn ra bộ đếm của DAC là ok....Đương nhiên nếu bị giật giật hoặc chả nghe thấy cái gì thì còn phải calibrate nhiều .

Vậy cần đọc những gì:
+ Giao tiếp với thẻ SD (bên điện tử việt nam có anh viết khá kỹ).
+ SPI, DAC, PWM, timer của thằng MCU bạn làm
+ Format của file wave (.wav)
không phải em chưa đọc gì mà đọc không hiểu
hic,giao tiếp với thẻ nhớ SD. cái này thì không khó,khó cái quản lý theo FAT32 thế nào thôi.
em đọc mãi mà chẳng hiểu ,tài liệu của nó khó tìm quá. hỏi anh Google thì anh ấy chỉ toàn nói đến cách chuyển FAT với NTFS của máy tính thôi. anh có tài liệu về thằng này ,cho em xin nhé .mà anh cho em xin luôn cả link bên ĐTVN nói về cái này nhé.

SPI ,PWM thì em thấy đa số các chip đều có hỗ trợ ,nhưng hình như dòng dsPIC33 không có thằng DAC thì phải.anh biết dòng nào có chỉ em với .tốc độ chuyển của thằng DAC onchip thường là bao nhiêu vậy. liệu có đáp ứng được với tốc độ âm thanh đưa ra không ?

Fornat wave thì hình như là không cần làm gì, chỉ cần đọc và bắn thẳng ra DAC. nhưng em đọc và tìm hiểu trên mạng thì WAV còn có cả định dạng nén.vậy để tạo ra đc 1 file WAV không nén thì dùng cái gì để tạo thế ?
nếu muốn sử dụng định dạng MP3 thì phải làm những gì nữa. có phải mình sẽ include 1 đoạn mã vào để convert dữ liệu không.
rhinoceros vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-01-2010, 04:50 PM   #28
tahi
Đệ tử 4 túi
 
Tham gia ngày: Mar 2009
Bài gửi: 64
:
Trích:
không phải em chưa đọc gì mà đọc không hiểu
hic,giao tiếp với thẻ nhớ SD. cái này thì không khó,khó cái quản lý theo FAT32 thế nào thôi.
em đọc mãi mà chẳng hiểu ,tài liệu của nó khó tìm quá. hỏi anh Google thì anh ấy chỉ toàn nói đến cách chuyển FAT với NTFS của máy tính thôi. anh có tài liệu về thằng này ,cho em xin nhé .mà anh cho em xin luôn cả link bên ĐTVN nói về cái này nhé.
Link dientuvietnam
http://www.dientuvietnam.net/forums/...ad.php?p=99791
Down bộ Microchip Solution rồi vào C:\Microchip Solutions\Microchip\MDD File System\Documentation
tìm tài liệu AN1045, có nói khá base về FAT....
Trích:
SPI ,PWM thì em thấy đa số các chip đều có hỗ trợ ,nhưng hình như dòng dsPIC33 không có thằng DAC thì phải.anh biết dòng nào có chỉ em với .tốc độ chuyển của thằng DAC onchip thường là bao nhiêu vậy. liệu có đáp ứng được với tốc độ âm thanh đưa ra không ?
dsPIC33 hình như thằng nào cũng có DAC hay sao ý. (toàn DAC 16 bit)
tần số vào max tầm 45 kHz
tốc độ lấy mẫu cỡ 100 KSPS
Đó là thông số của dsPIC33FJ128MCx04
Trích:
Fornat wave thì hình như là không cần làm gì, chỉ cần đọc và bắn thẳng ra DAC. nhưng em đọc và tìm hiểu trên mạng thì WAV còn có cả định dạng nén.vậy để tạo ra đc 1 file WAV không nén thì dùng cái gì để tạo thế ?
Cái này vào ổ C ấn F3 để search, sau đó gõ wav, lầy file bất kỳ search được, vào property rồi summary để xem các thông số. Đa số là các file wav khá chuẩn (hoặc trong mấy trò như halflife, đế chế đều có..)
Trích:
nếu muốn sử dụng định dạng MP3 thì phải làm những gì nữa. có phải mình sẽ include 1 đoạn mã vào để convert dữ liệu không.
Cái này t bất lực, chưa nghiên cứu

thay đổi nội dung bởi: tahi, 29-09-2010 lúc 11:01 AM.
tahi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-02-2010, 03:28 PM   #29
rhinoceros
Đệ tử 1 túi
 
Tham gia ngày: Jul 2007
Bài gửi: 17
:
cảm ơn anh tahi nhé.em đã down được bộ thư viện của Microchip về rồi(>70MB)
cài xong rồi,nhưng mà không biết làm thế nào để làm việc với bộ thư viện đồ sộ đó được
thông thường khi viết code cho chương trình thì người ta #include các thư viện vào.vậy đối với bộ thư viện của anh Microchip thì ta phải làm thế nào vậy ah.
trên thấy anh bảo là dòng dsPIC33 hỗ trợ DAC,em tìm mãi mà không thấy
anh có thể chỉ hộ em được không (em không biết nó là cái nào )


rhinoceros vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-02-2010, 04:14 PM   #30
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Dòng 80x mới có DAC
http://www.microchip.com/wwwproducts...cName=en532298
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 06:31 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam