Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
Đối vs 16f877, cho đỡ phí chân (40 chân lận mà), đừng dùng những cái 74hc595 nối tiếp (chân 9 trước mắc vào chân 14 con sau), tốt hơn là mỗi chân 14 mắc vào mỗi chân trên pic, chung port càng tốt, tối ưu khi số 595 nhỏ hơn hay bằng 8 (đúng 1 port). Khi đó sẽ tiết kiệm được số lệnh.
Computer Science major - Vietnamese-German University
Sponsored by
Bạn nói thế nào ấy chứ
Mình dùng theo kiểu 9 con trước nối với 14 con sau. Mất tổng cộng 5 chân PIC.
Để đưa được dữ liệu ra đến tận chân 595 mất tầm 5 lệnh ( trong đó lệnh xuất data là 1 lệnh còn các lệnh khác là enable,reset,lat....) .
Khi kết nối theo kiểu 9 trước-14 sau dùng 200 con 595 đi nữa thì vẫn chỉ mất 5 chân và 5 lệnh để xuất 200 byte dữleieeujra 200 con 595. Vậy có cách kết nối nào ít lệnh và ít chân hơn ko nhỉ ?
Hơn nữa khi kết nối kiểu ấy tốc độ xuất data được đưa lên tốc đổ khủng nhất (tầm trên 200KB/s )
Số lệnh tức tổng số chu kỳ lệnh cần dùng chứ ko phải tổng số chức năng.
Tôi ví dụ: Với 40 LED tương đương 5 74hc595, theo bạn cần làm như sau:
Xác lập chân DATA (1 chu kỳ lệnh)
Xác lập chân CLK (2 chu kỳ lệnh - tương ứng High sau đó Low)
2 thao tác đó cần lặp lại với 40 lần (vì mỗi lần chỉ xuất ra được 1 LED) tương đương 120 chu kỳ lệnh.
Theo tôi, 5 chân 14 của 595 mắc vào cùng 1 port
Các lập các chân DATA (1 chu kỳ lệnh: do cùng 1 port)
Xác lập chân CLK (2 chu kỳ lệnh)
2 thao tác đó cần lặp lại chỉ 8 lần (vì mỗi lần xuất tới 5 LED) tương đương 24 chu kỳ lệnh.
Tuy cách tôi khá tốn chân nhưng nhanh hơn cách bạn đến 5 lần (vs 5 74HC595).
Còn dùng giao tiếp SPI thì 200kB/s thì đúng rồi, bạn thử truyền tải bình thường ko cần giao tiếp xem, vài MB/s là chuyện bình thường. Nhưng tốc độ tới MB/s hay 200kB/s cũng ko quá quan trọng lắm nhỉ, vì thời gian quét cũng khá nhiều so với tốc độ này.
Computer Science major - Vietnamese-German University
Sponsored by
Số lệnh tức tổng số chu kỳ lệnh cần dùng chứ ko phải tổng số chức năng.
Tôi ví dụ: Với 40 LED tương đương 5 74hc595, theo bạn cần làm như sau:
Xác lập chân DATA (1 chu kỳ lệnh)
Xác lập chân CLK (2 chu kỳ lệnh - tương ứng High sau đó Low)
2 thao tác đó cần lặp lại với 40 lần (vì mỗi lần chỉ xuất ra được 1 LED) tương đương 120 chu kỳ lệnh.
Theo tôi, 5 chân 14 của 595 mắc vào cùng 1 port
Các lập các chân DATA (1 chu kỳ lệnh: do cùng 1 port)
Xác lập chân CLK (2 chu kỳ lệnh)
2 thao tác đó cần lặp lại chỉ 8 lần (vì mỗi lần xuất tới 5 LED) tương đương 24 chu kỳ lệnh.
Tuy cách tôi khá tốn chân nhưng nhanh hơn cách bạn đến 5 lần (vs 5 74HC595).
Còn dùng giao tiếp SPI thì 200kB/s thì đúng rồi, bạn thử truyền tải bình thường ko cần giao tiếp xem, vài MB/s là chuyện bình thường. Nhưng tốc độ tới MB/s hay 200kB/s cũng ko quá quan trọng lắm nhỉ, vì thời gian quét cũng khá nhiều so với tốc độ này.
Tôi thấy bạn tính có chỗ sai.
Bạn tính sao ra 5 lần vậy. Để mình tính lại xem nào. Xuất 5 byte. (Ở đây cứ coi rằng các lệnh mất số chu kì máy như nhau là 1).
Để xuất đủ 5 byte :
Clock 8 lần mất 16 chu kỳ.(High-Low).
Lấy giá trị 5 bit đầu của 5 byte mất 5 chu kì ( thực tế cái này mất nhiều hơn).
Xuất giá trị 5 bit này ra PORT mất 5.
Dịch 5 byte sang trái chờ lấy bit thứ 2 - 8 chu kì.
Chốt data - 2 chu kì.
Tổng cộng : 16+5+5+8+2 = 36 chu kì.
Còn một số giải thuật khác tốn ít hơn 1 chút nhưng ko quá nhiều.
Để biết chính xác có thể lấy máy hiện sóng ra đo khi cho xuất liên tục. Sẽ thấy số chu kì nó cao chót vót chứ ko ít vậy đâu.
Còn của mình :
Xuất 5 byte ra SPI : cần 5 lần xuất giá trị - 5 chu kì + chốt 1 nhát 2 chu kì nữa = 7. Việc xuất ra PORT do SPI đảm nhận, lúc này CPU rảnh rỗi.
___ Thời gian thực hiện.
Mình đã test với kiểu nối tiếp dùng SPI. Cho xuất hết 5 byte mất 16us. Bạn nói là nhanh hơn mình 5 lần tức là 3.2us tức là 16 chu kì máy để xuất hết 5 byte ? Mình xin bái phục
Mình đã test với cách của bạn với tốc độ nhanh nhất mất 13us cho xuất 5 bit => mất 104us cho xuất 5 byte.
Cứ cho là mình là 1 con gà đi thì không thể tối ưu dc từ 104us xuống 16us được đâu bạn ạ.
Sao có thể nhanh hơn mình 5 lần dc ?
Đã ghép nối 2 con 74HC595 như hình vẽ nhưng IC thứ 2 không chạy, chỉ dùm e với.vẫn có tín hiệu vào nhưng không có tín hiệu ra
Đây là mô phỏng với 595 cho bạn tham khảo.
Kết nối 5 con 595 kiểu nối tiếp dùng SPI để xuất 5 giá trị từ 1 đến 5 ra 595 ( U6 giá trị 1, U2 giá trị 5).
Xuất hết 5 byte mất 17us. 74HC595-SPI.zip
các huynh oi! đệ là lính mới mong các huynh chỉ bảo đệ với!
đệ đang nguyên cứu về 16f877a
các huynh ai có mạch nguyên lý 16f877a với led ma trận hoặc có tai liệu gi liên quan thi gửi mail cho đệ với.
mail của đệ là: catbuibk@gmail.com
cám ơn các huynh nhiều nhiều nhiều!
Mình đồng ý với hướng build AM5 bằng 7500F, nhưng nếu có thể cố thêm ngân sách thì nên lên RX 7600 ngay từ đầu. 4GB VRAM của RX 6500 XT bắt đầu khá chật với nhiều game mới, còn RX 7600 sẽ dùng thoải mái hơn trong vài năm tới.
Trong thời buổi vật giá leo thang, việc sắm một bộ máy tính chơi game đáp ứng đủ tiêu chí "ngon, bổ, rẻ" là ưu tiên hàng đầu của nhiều bạn trẻ. Lúc này, combo sử dụng vi xử lý AMD Ryzen 5 7500F kết hợp cùng card màn hình Radeon...
AMD Ryzen 9 9950X3D không chỉ là một bộ vi xử lý đơn thuần; nó là lời khẳng định về sức mạnh của kiến trúc Zen 5 kết hợp cùng công nghệ 3D V-Cache đột phá. Trong bối cảnh thị trường linh kiện PC cạnh tranh khốc liệt, đây được xem...
Bộ đôi Ryzen 9 9950X3D2 và Radeon RX 9070 XT 16GB là sự kết hợp phần cứng cao cấp nhất của AMD hiện nay. Đây không chỉ là một dàn máy tính để giải trí thông thường, mà là công cụ làm việc mạnh mẽ dành cho những ai có nhu cầu xử lý cường...
Khi ráp một bộ máy tính cấu hình cao, việc cân đối ngân sách cho từng linh kiện là rất quan trọng. Sự kết hợp giữa vi xử lý AMD Ryzen thế hệ mới có công nghệ 3D V-Cache và card đồ họa Radeon RX 9070 XT đang là lựa chọn rất đáng tiền....
Comment