AT49F010/HF010 thuộc loại flash song song, nên thường có tốc độ cao hơn các flash nối tiếp. Dù vậy, chỉ khi đọc dữ liệu thì flash song song mới có ưu thế, chứ khi ghi dữ liệu thì thời gian chờ của flash song song cũng không nhỏ hơn bao nhiêu so với flash nối tiếp (ví dụ AT49F010/HF010 có thời gian ghi mỗi byte khoảng 10 us, còn AT25FS010 có thời gian ghi mỗi byte khoảng 30 us).
Flash song song đòi hỏi sử dụng nhiều đường tín hiệu hơn rất nhiều so với flash nối tiếp, với AT49F010/HF010, bạn sẽ cần có 17 đường địa chỉ, và 8 đường dữ liệu, không kể các đường tín hiệu điều khiển như \CE, \OE, và \WE. Nhìn vào sơ đồ khối của dsPIC30F6012A, bạn sẽ thấy chỉ có cổng B khả dĩ dùng được cho bus địa chỉ, và cổng D hay cổng G là có thể dùng được cho bus dữ liệu. Đường địa chỉ cao nhất (A16) vẫn phải do một chân nào đó khác với cổng B đảm nhiệm. Do đó, bạn sẽ phải mất khá nhiều lệnh để thực hiện các thao tác đọc/ghi vào flash, dẫn đến ưu thế về tốc độ của flash này so với flash nối tiếp đã bị giảm đi.
Đó là chưa nói đến một số chân đặc biệt của dsPIC30F6012A có thể bị chiếm dụng để giao tiếp với flash. Tất nhiên bạn có thể nối dây tùy ý, miễn là đảm bảo các đường tín hiệu (tổng cộng là 28 đường), nhưng khi đó việc viết lệnh có thể sẽ phức tạp hơn, tốn nhiều thời gian hơn, và việc truy xuất flash sẽ bị chậm hơn so với tốc độ lẽ ra phải có.
Một giải pháp lai là bạn có thể dùng một cổng như D hay G cho dữ liệu, còn bus địa chỉ thì được hiện thực bằng cách dùng thanh ghi dịch. Một lần nữa, tốc độ đọc/ghi sẽ bị giảm xuống do thời gian cần thiết để dịch các bit địa chỉ ra thanh ghi dịch.
Tóm lại, đọc spec. của chip không nói lên nhiều điều. Bạn nên thử cả giải pháp flash nối tiếp lẫn flash song song (với nhiều cách kết nối phần cứng khác nhau) và đánh giá tốc độ tối đa thực sự có thể đạt được, rồi mới chọn giải pháp thích hợp cho mình.
Thân,
thay đổi nội dung bởi: namqn, 16-01-2008 lúc 01:59 AM.
|