วันพฤหัสบดีที่ 30 เมษายน พ.ศ. 2558

การทดลองที่ 5 ออกเเบบวงจรดิจิทัลสำหรับส่งตัวอักษร 'a' ผ่าน UART ไปยังคอมพิวเตอร์


โจทย์ปฎิบัติ
         สร้างวงจรดิจิทัลเพื่อส่งตัวอักษร 'a' ผ่าน UART ไปยังคอมพิวเตอร์ เมื่อกดปุ่มแล้วปล่อยในแต่ละครั้ง โดยใช้ค่า baudrate เท่ากับ 9600 (เน้นส่งข้อมูลไบต์จาก FPGA ไปยังคอมพิวเตอร์เท่านั้น ยังไม่ต้องรับข้อมูล)


อุปกรณ์
1. บอร์ด Altera FPGA (WARRIOR CYCLONE3 DEV) ชิปหมายเลข EP3C10E144C8   1 บอร์ด
2. สายดาวน์โหลด ByteBlaster II Cable หรือ สายดาวน์โหลดUSB Blaster Cab              1 ชุด
3. เครื่องคอมพิวเตอร์                                                                                            2 ชุด
4. ออสซิลโลสโคป                                                                                               1 เครื่อง
5. USB to TLL                                                                                                    1 ชุด



ซอฟท์แวร์ที่ใช้
1. Altera Quartus II 13.1 (32-bit) Web Edition- ModelSim 
2. Altera 10.1d (Quartus II 13.1)
3. PuTTY


เเนวความคิด





กำหนดให้ baudrate = 1/9600 s และหารด้วยคาบของ CLK = 1/50MHz
จะได้ baudrate ประมาณ  5200 ซึ่งเป็นช่วงในการส่งข้อมูล 1 bit
ในการส่งข้อมูลจะเรึ่มส่งจาก start bit  ซึ่งเท่ากับ logic 0 ตามด้วย ตัวอักษร a (10000110 ตามลาดับ) แล้วส่ง stop bit ซึ่งเท่ากับ logic 1


Code VHDL 




Code VHDL Test branch






ผลการจำลองการทำงานด้วย Modelsim





รูปที่ 1
จากรูปที่ 1 
เมื่อกดปุ่มกดเเล้วปล่อยปุ่มกดจะเเสดง 0(start bit)1000110(ตัวอักษร a เเบบ)1(stop bit) ตามลำดับ



ผลการสังเคราห์วงจร



Pin Planer


ขา I/O ของวงจรมีดังนี้
clk           ต่อกับขา หมายเลข 22  เป็น input clock
PB           ต่อกับขา หมายเลข 88  เป็น input ของ ปุ่มกด
TX            ต่อกับขา หมายเลข 67  เป็น output ของข้อมูลทั้งหมดที่ส่งผ่าน uart


ขั้นตอนการทดลองและผลการทำงาน  
รูปภาพการทดลอง


วัด output ของข้อมูลทั้งหมดที่ส่งผ่าน uart





การต่อ USB to TLL  กับ Notebook 



รูปคลื่นสัญญาณ

ความต่างศักย์ไฟฟ้า เท่ากับ 3.8 v,คาบ เท่ากับ 524 us




Video การทดลอง





จะเห็นตัวอักษร a ชัดเจนมากขึ้น 

เมื่อกดปุ่มการตั้งค่า เเล้วไปที่ช่องคุณภาพ เลือก 1080pHD

วันเสาร์ที่ 4 เมษายน พ.ศ. 2558

การทดลองที่ 4 ออกแบบวงจรดิจิทัลสำหรับ 4x4 Keypad

อุปกรณ์
1. บอร์ด Altera FPGA (WARRIOR CYCLONE3 DEV) ชิปหมายเลข EP3C10E144C8   1 บอร์ด
2. สายดาวน์โหลด ByteBlaster II Cable หรือ สายดาวน์โหลดUSB Blaster Cab               1 ชุด
3. เครื่องคอมพิวเตอร์                                                                                             1 ชุด
4. ออสซิลโลสโคป                                                                                                1 เครื่อง
5. 4x4 keypad                                                                                                     1 ชุด
6. ตัวต้านทาน  330 Ω                                                                                            3 ตัว
7. ตัวต้านทาน  1.5 KΩ                                                                                           3 ตัว



ซอฟท์แวร์ที่ใช้
1. Altera Quartus II 13.1 (32-bit) Web Edition- ModelSim 
2. Altera 10.1d (Quartus II 13.1)



เเนวความคิด




มีการตรวจสอบเเต่ละเเถว(row)ของ 4x4 Keypad  ตามตัวนับ(count)ที่ตั้งไว้ ถ้ากดปุ่มใดปุ่มหนึ่งของ 4x4 Keypad  จะรู้ว่าอยู่ในหลัก(colum)ใด  เมื่อรู้หลักเเละเเถวเเล้วจะรู้ว่าปุ่มที่กดเป็นตัวเลขหรือสัญลักษณ์อะไร



Code VHDL





Code VHDL Test branch






ผลการสังเคราห์วงจร






ผลการจำลองการทำงานด้วย Modelsim



รูปที่ 1
จากรูปที่ 1 
เมื่อกดหมายเลข  1(row 1),4(row 2),7(row 3) เเละสัญลักษณ์  *(row 4) จาก colum[3] (1000) ตามลำดับ
led จะเเสดง  00000001,00001000,01000000,10000001 ตามลำดับ





รูปที่ 2
จากรูปที่ 2
เมื่อกดหมายเลข  2(row 1),5(row 2),8(row 3) เเละ  0(row 4) จาก colum[2] (0100) ตามลำดับ
led จะเเสดง  00000010,00010000,10000000,00000000 ตามลำดับ




รูปที่ 3
จากรูปที่ 3
เมื่อกดหมายเลข  3(row 1),6(row 2),9(row 3) เเละสัญลักษณ์  #(row 4) จาก colum[1] (0010) ตามลำดับ
led จะเเสดง  00000100,00100000,11111111,00011000 ตามลำดับ




รูปที่ 4
จากรูปที่ 4
เมื่อกดสัญลักษณ์  A(row 1),B(row 2),C(row 3) ,  D(row 4) จาก colum[0] (0001) ตามลำดับ
led จะเเสดง  00000011,00001100,00110000,11000000 ตามลำดับ




Pin Planer



ขา I/O ของวงจรมีดังนี้
Buzzer    ต่อกับขา หมายเลข 34  เป็น output เสียง Buzzer 
clk           ต่อกับขา หมายเลข 22  เป็น input clock
colum[3]   ต่อกับขา หมายเลข 99  เป็น input ของ 4x4 Keypad หมายเลข  1,4,7 เเละสัญลักษณ์  *
colum[2]   ต่อกับขา หมายเลข 86  เป็น input ของ 4x4 Keypad หมายเลข  2,5,8,0
colum[1]   ต่อกับขา หมายเลข 84  เป็น input ของ 4x4 Keypad หมายเลข  3,6,9 เเละสัญลักษณ์  #
colum[0]   ต่อกับขา หมายเลข 80  เป็น input ของ 4x4 Keypad สัญลักษณ์  A,B,C,D
led[7]       ต่อกับขา หมายเลข 50  เป็น output ของ led fpga ดวงเเรกจากซ้ายสุด
led[6]       ต่อกับขา หมายเลข 49  เป็น output ของ led fpga ดวงที่สองจากซ้ายสุด
led[5]       ต่อกับขา หมายเลข 46  เป็น output ของ led fpga ดวงที่สามจากซ้ายสุด
led[4]       ต่อกับขา หมายเลข 44  เป็น output ของ led fpga ดวงที่สี่จากซ้ายสุด
led[3]       ต่อกับขา หมายเลข 43  เป็น output ของ led fpga ดวงที่ห้าจากซ้ายสุด
led[2]       ต่อกับขา หมายเลข 42  เป็น output ของ led fpga ดวงที่หกจากซ้ายสุด
led[1]       ต่อกับขา หมายเลข 39  เป็น output ของ led fpga ดวงที่เจ็ดจากซ้ายสุด
led[0]       ต่อกับขา หมายเลข 38  เป็น output ของ led fpga ดวงสุดท้ายจากซ้ายสุด
row[3]      ต่อกับขา หมายเลข 143  เป็น output ของ row1 หมายเลข  1,2,3 เเละสัญลักษณ์  A
row[2]      ต่อกับขา หมายเลข 141  เป็น output ของ row2 หมายเลข  4,5,6 เเละสัญลักษณ์  B
row[1]      ต่อกับขา หมายเลข 137  เป็น output ของ row3 หมายเลข  7,8,9 เเละสัญลักษณ์  C
row[0]      ต่อกับขา หมายเลข 135  เป็น output ของ row4 สัญลักษณ์   *,หมายเลข  0,สัญลักษณ์ #, D
ground    ต่อกับขา หมายเลข 54  เป็น output ground ของ led fpga 


 ขั้นตอนการทดลองและผลการทำงาน    
 รูปภาพการทดลอง

ภาพรวมของวงจรของ4x4 Keypad 





Video การทดลอง