ID บทความ: 000085649 ประเภทข้อมูล: การแก้ไขปัญหา การตรวจสอบครั้งล่าสุด: 21/08/2012

เมื่อใช้ UART (พอร์ตซีเรียล RS-232) ทําไมอัตรารับส่งข้อมูลของฉันจึงไม่ถูกต้อง

สิ่งแวดล้อม

  • Intel® Quartus® II Subscription Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    คำอธิบาย

    คุณอาจประสบปัญหานี้เมื่อใช้ส่วนประกอบ UART (RS-232 Serial Port) ในการออกแบบ Qsys ด้วยซอฟต์แวร์ Quartus® II เวอร์ชั่น 11.0   ซึ่งอาจส่งผลให้ UART ไม่ซิงโครไนซ์หรือสื่อสารกับอีกด้านหนึ่ง

    ในการหลีกเลี่ยงปัญหานี้ ให้คํานวณdivisor_constantที่ถูกต้องโดยการแบ่งความถี่สัญญาณนาฬิกาอินพุต UART ที่มอบหมายให้กับ UART ตามอัตรา Baud(bps) ที่กําหนด จากนั้นตรวจสอบการกําหนดค่านี้กับการจําลองdivor_constantซึ่งพบได้ในไฟล์ Qsys ที่สร้างขึ้น_uart_0  หากจําเป็น ให้เปลี่ยนค่าที่กําหนดให้ตรงกับการคํานวณของคุณ

    ตัวอย่างเช่น สัญญาณนาฬิกาอินพุตไปยัง Qsys UART คือ 83MHz  อัตรา Baud(bps) ที่กําหนด = 115200  ตัวหารควรเป็น 83,000,000 / 115200 = 720  เมื่อตรวจสอบค่านี้ในไฟล์ _uart_0 คุณจะพบบรรทัดรหัสต่อไปนี้:

    การสังเคราะห์translate_on
    เปิดread_comments_as_HDLสังเคราะห์
    กําหนดdivisor_constant = 434;
    ปิดread_comments_as_HDLสังเคราะห์

    เปลี่ยนdivor_constant = 720 ตามที่แสดงด้านล่าง

    มอบหมายdivisor_constant = 720;

    ปัญหานี้ได้รับการแก้ไขในซอฟต์แวร์ Quartus II เวอร์ชั่น 11.0 SP1

    ผลิตภัณฑ์ที่เกี่ยวข้อง

    บทความนี้จะนำไปใช้กับ 1 ผลิตภัณฑ์

    อุปกรณ์ที่ตั้งโปรแกรมได้ Intel®

    เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้