Tiếp theo
5. Với mạng nhiều hơn 2 vi điều khiển thì có các giao thức dạng bus với multi-master, I2C cũng hỗ trợ multi-master. Bạn có thể dùng các giao thức (protocol) có sẵn, hay tự định nghĩa giao thức nếu không vừa lòng với các giao thức có sẵn.
6. Các chân VDD hay VSS của vi điều khiển được nối với nhau bên trong chip, không có gì khác nhau giữa các chân cùng tên. Lý do kéo nhiều chân cấp nguồn cho 1 chip có thể gồm: chia dòng nguồn mà mỗi chân cần tải, tạo điều kiện thuận lợi hơn cho việc bố trí các tụ lọc nguồn (decoupling hay bypass), ... Tất nhiên là tất cả các chân VDD cần nối vào điểm dương của nguồn, và tất cả các chân VSS đều nối vào điểm âm của nguồn.
7. Có một số sơ đồ mạch reset được đề xuất trong các datasheet của PIC, một số sơ đồ được thiết kế để tương thích với các mạch nạp ICSP. Tôi không khẳng định loại nào ổn định nhất, mà chỉ khuyên dùng các mạch có hỗ trợ chống nảy phím (debouncing), có hạn dòng và chống quá áp, cũng như tương thích với ICSP nếu có dùng mạch nạp ICSP.
Với mạch điều khiển động cơ của bạn, không có mạch công suất thực tế cùng với code của chương trình thì rất khó nhận xét là vì sao. Tất nhiên mạch reset bạn đang dùng có thể bị nảy phím.
8. Dùng cả CCP1 và CCP2 ở PWM mode thì vẫn chỉ dùng timer 2. Bạn được phép dùng timer 0 và timer 1 cho những việc khác.
9. Vấn đề giao tiếp giữa các mạch logic cần thỏa mãn các điều kiện về mức điện áp và khả năng cung cấp/tiêu thụ dòng điện giữa chúng. Do vậy, các mức logic từ ngõ ra của encoder cần thỏa mãn các ngưỡng logic ở ngõ vào của PIC, và các ngõ ra của encoder cần cung cấp đủ mức dòng yêu cầu tại các ngõ vào của PIC. Theo tôi thì bạn không cần dùng các vi mạch đệm, vì ngõ vào của PIC thường tiêu thụ dòng khá nhỏ (chúng đã có các bộ đệm TTL hay Schmitt trigger tại các ngõ vào).
10. Nhất định phải có điện trở treo lên điểm dương của nguồn nếu ngõ ra thuộc loại cực thu/cực máng hở (để xác định trạng thái logic nhất định). Với một số ngõ ra không có khả năng cung cấp đủ dòng thì cũng dùng điện trở treo để hỗ trợ khả năng cấp dòng, nhưng khi đó dòng điện do ngõ ra sink khi ở mức thấp sẽ tăng lên.
Không có câu trả lời cụ thể cho giá trị của điện trở treo, tùy vào tính toán cho bài toán cụ thể mà quyết định giá trị. Với ngõ ra cực thu/cực máng hở, dòng điện cung cấp cho tải ở mức điện áp cao (tức là khi ngõ ra không kéo xuống điểm âm của nguồn) hoàn toàn phụ thuộc vào giá trị điện trở treo. Các ngõ vào thường có điện dung nhất định, cộng với điện dung ký sinh giữa chân linh kiện và điểm âm của nguồn. Do vậy, việc điện áp do ngõ ra cực thu/cực máng hở tăng lên nhanh hay chậm sẽ do giá trị của điện trở treo quyết định (một mạch RC thông thường). Dòng nhỏ thì nạp tụ chậm, dòng lớn sẽ nạp tụ nhanh hơn, dẫn đến nhận định mà bạn đã đọc được ở đâu đó.
Không thể trả lời cho cả họ logic 74 hay CMOS về câu hỏi cần có điện trở treo của bạn, vì tùy kiểu ngõ ra, hay khả năng cấp dòng của mạch, kết hợp với mạch tải của nó thì mới biết có cần dùng điện trở treo hay không.
Thân,
|