Gửi bởi
Ga con
Đọc enc bằng mode ngắt e không khoái. Mà đây là cách mà những bộ đọc xung tích hợp trên mấy vxl đời mới. Mấy kiểu này cần phải có bộ lọc LPF, lọc logic số...mới chạy được ngon. Mà làm mấy cái này còn cực hơn làm soft.
@cụ Gà: ngắt chạy không ngon chắc cụ đang xài ngắt đơn, 1 chiều cạnh sườn xung. Kiểu này motor không cần chạy, để trên bàn gõ gõ xung nó cũng lên ào ào. Muốn xài được phải ngắt pin change 2 kênh, cộng với giải thuật.
@ cụ Nhatson: cứ tính cho motor tiêu chuẩn cnc nhé, enc 2.500ppr (Fanuc hay có loại 3.000ppr, dc mấy hãng châu Âu còn hay có loại 5.000ppr, nhưng thôi tính loại tiêu chuẩn hay gặp, cả Fanuc, Pana, Toshiba, Okuma, Mitsu, Sanyo, SEM...đều hay xài), rate 2.000rpm, max 3.000rpm (50 vòng/s) tương đương 2.500*4*50= ~500khz, bộ đọc xung ít nhất đảm bảo 2-2.5 lần tốc độ này mới chịu được.
Mấy cái driver của e không xài ngắt mà xài vòng lặp, mỗi chu kỳ tối đa 2-2.4us, tính ra tần số đọc được chừng max 400-500khz, chưa kể gặp noise nó phải lặp lại giải thuật dò kiểm tra (giống mấy cụ làm truyền thông thôi, có nhiễu phải chạy giải thuật chống nhiễu, mã crc không đúng còn đòi phải truyền lại, tốc độ giảm đi nhiều lắm). Do cách làm đó e phải quan tâm đến từng chu kỳ máy, từng nhịp clock để đảm bảo nó chạy tạm ổn. Với các chip đời mới, tốc độ cao các cụ lập trình basic hay C không quan tâm nó làm việc chi tiết ra sao, nó dư sức làm được nhưng e vẫn có cảm giác không ổn, không thích do mình không kiểm soát được chính xác chu trình hoạt động của nó (dù có thể dịch ra lại asm để đọc, dò nếu muốn). Đặc biệt là các chip có điện áp hoạt động rất thấp (3.3V còn ok, mấy chip xuống đến 1.8v và thậm chí đời mới core chạy 1.2v nữa) thì e rất ớn vụ nhiễu.
Thanks.