เอามาฝาก อ่านทำความเข้าใจเอานะ อย่าถามผมเยอะ เพราะผมก็มึนตึ๊บ ถ้าเอาแบบบ้านๆง่ายๆ ถ้าเครื่อง cnc ตั้งค่า baud rate ได้สุดเท่าไหร่ก็ให้จัดเต็ม Max เลย set ทั้งสองฝั่งให้ตรงกันจบข่าว ยิ่งเยอะการรับส่งยิ่งราบรื่น แต่ controller ก็ต้องอ่านล่วงหน้าได้เยอะๆจะดี รู้สึกเขาจะเรียก
Read ahead function ไม่รูีพูดถูกใหม 555
BAUDRATE คืออะไร?
เวลาเราทำการเขียนอุปกรณ์ส่งข้อมูลแบบ UART จะเห็นว่าเราจะมีการกำหนดค่า เป็น 9600 หรือ 115200 เป็นต้น ซึ่งค่าที่กำหนดมานี้จะเป็นตัวกำหนดว่าใน 1 วินาที นั้นจะทำการส่งข้อมูลได้เร็วเท่าไร
ยกตัวอย่าง เช่น BAUDRATE 9600 นั้น หมายความว่าในการส่งข้อมูลใน 1 วินาทีนั้น จะมีการส่งข้อมูล ขนาด 9600 bits เช่น ถ้า Clock มีค่าความถี่ 50 Mhz หมายความว่าในหนึ่งวินาที นั้น จะมีคลื่น PWM ทั้งหมด 50 ล้านลูก ซึ่งเมื่อนำ 50,000,000 หารด้วย 9600 จะได้ ประมาณ 5208 ซึ่งหมายความว่าใน 1 bit ของ BAUDRATE นั้น จะมีคลื่น PWM 5208 ลูก สำหรับในการส่งข้อมูล 1 บิต หรือ อีกนัยหนึ่ง คือในการส่งข้อมูล หนึ่ง บิตใช่เวลา 104 us แต่ถ้า BAUDRATE เป็น 115200 จะใช่เวลาเพียง 8.6 us ซึ่งได้มาจาก 50 M / 115200 แล้วนำค่าที่ได้ คูณกับ 20 ns ซึ่งคือ คาบของความถี่ 50Mhz