วันจันทร์ที่ 14 พฤศจิกายน พ.ศ. 2559

LAB 4

แลปนี้ใช้ IC MCP4922 ซึ่งเป็น IC Digital-to-Analog สามารถใช้งานได้โดยการส่ง SPI ในแลปนี้จะใช้ IC MCP4922 เพื่อสร้างสัญญาณตามรูปข้างล่างโดยมีความถี่ 15Hz
 ซึ่งจากการใส่ใช้โค้ดข้างล่างกับ Nucleo f411re ก็สามารถสร้างสัญญาณได้ตามรูป

จะเห็นว่าสัญญาณมีจุดสูงสุดอยู่ที่ ประมาณ 3.3V และีคาบอยู่ที่ 68 ms หรือที่ความถี่ 14.7Hz ซึ่งไกล้เคียงกับที่โจทย์กำหนด


FRA221 LAB5

Lab 5

    เชื่อมต่อ Nucleo กับI2C EEPROM เพื่อเก็บและอ่านข้อมูล โดยให้สามารถทำงานได้2 mode คือ mode เก็บค่าสวิตช์ที่เปิดอยู่และอ่านค่าที่เก็บไว้ในตัว  และแสดงค่าที่เก็บไว้ผ่านทางหลอด LED


























FRA221 LAB3

Lab 3

    การส่งข้อมูลทาง serial port ไปยัง nucleo เพื่อกำหนดรูปแบบการกระพริบของหลอด LED หรือการอ่านค่าของ สวิตช์เป็นเลขฐานสอง จากบอร์ด NX-100
    เริ่มแรกจะแสดงเมนูมีสองตัวเลือกถ้ากด 1 จะเข้าสู่โหมดแสดง LED ถ้ากด a หรือdจะทำให้ได้แพทเทิร์น LED ที่ต่างกันสองแพทเทิร์น เมื่อกด s จะกลับไปสู่เมนูแรก และLEDทั้งหมดจะดับ
         จากเมนูแรกถ้ากด 2 จะเข้าสู่โหมดอ่านค่าสวิตซ์



https://drive.google.com/file/d/0B7SP4Cj58mrfU2RaOXJMMEhKOUE/view?usp=sharing

วันพุธที่ 19 ตุลาคม พ.ศ. 2559

FRA221 LAB2

Lab 2

การทดลองใช้พอร์ต Analog in ของบอร์ด nucleo f411re ในการค่าแรงดันไฟฟ้า และแสดงผลได้สองรูปแบบ



เพื่ออ่านค่า analog ผ่านทาง พอร์ต A1 แรงดันที่ใช้มาจากบอร์ด NX-100 ซึ่งสามารถปรับค่าแรงดันได้ตั้งแต่ 0-3.3 V เมื่ออ่านค่าแรงดันได้ จะแสดงค่าแรงดันได้สองรูปแบบ 1. เป็นเกทแรงดัน ยิ่งแรงดันมีค่ามาก   เกทก็จะยาวขึ้น และสั้นลงเมื่อแรงดันลดลง 2. แสดงค่าแรงดันเป็นทศนิยมผ่านทาง 7segment โดยที่ตัวหน้าเป็นหลักหน่วย และตัวหลังเป็นตัวทศนิยม ( 7segment แสดง 24 หมายถึงแรงดันเป็น 2.4 ) 

จะแสดงค่าแรงดันรูปแบบใดรูปแบบหนึ่งเท่านั้น โดยสามารถเปลี่ยนโหมดการแสดงค่าแรงดัน ได้ด้วยการกดสัญญาณ pulse มุมขวาล่าง


เมื่ออยู่ในโหมดเลขทศนิยม จะสามารถอ่านค่าได้จาก 7segment


เมื่ออยู่ในโหมดเกทแรงดัน จะสามารถอ่านค่าได้จาก แถบ LED 8 ดวงด้านบน



FRA221 LAB1

Lab 1

การทดลองใช้พอร์ต GPIO ของบอร์ด nucleo f411re



ในคลิปใช้พอร์ต GPIO D5 D4 D3 เป็นขา Input และ D6-D13 เป็นขา Output เมื่อกดสวิตซ์ในรูปแบบต่างก็จะทำให้ Pattern ของ Output ต่างกันออกไป โดยจะแสดงให้เห็นผ่านหลอด LED  8 ทางด้านบน          การกดสวิตช์ในรูปแบบต่างๆ จะแสดงผ่าน 7 segment มุมบนขวา เช่น ถ้า D5 = 1, D4 = 0, D3 = 1  7 segment ก็แสดงค่าเป็น 5 ตามเลขฐานสอง (101 = 5) ดังนั้นการที่มี Input สามตัวก็จะทำให้สามารถเปลี่ยนรูปแบบไปได้ทั้งหมด 8 รูปแบบ (0-7 หรือ 000-111) 







วันอังคารที่ 27 กันยายน พ.ศ. 2559

ความรู้ที่ได้รับ (สัปดาห์ที่ 5)

    สัปดาห์ที่ 5 เรียนเรื่อง Sequential Logic และได้ทำความรู้จักกับ Flip-Flop ชนิดต่างด้วยกัน 4 ชนิด

1. SR Flip-flop


2. JK Flip-flop


3. T type Flip-flop


4. D type Flip-flop




และ ได้เรียนเรื่อง Finite state machine ซึ่งเป็นสิ่งที่ทำให้เราสามารถออกแบบวงจรได้ง่ายขึ้นโดยมีขั้นตอนดังนี้ 

1. สร้าง State แต่ละ State ลงเป็นวงกลมไว้ใน State space โดยมี Output ที่ต้องการอยู่ด้านล่าง

2. โยงลูกศรการเปลี่ยน State ซึ่งลูกศรหมายถึง Input ที่ใส่เข้าไป

3. แทนชื่อของแต่ละ State ด้วยเลขฐานสองโดยเรียงจาก State แรกไปยัง State สุด


ท้าย

4. สร้าง Truth table (ตามชนิดของ Flip-flop ที่เราจะใช้)

5. สร้าง Boolean function ของ Flip-flop และ Output ด้วยวิธี K-map หรือ Quine-Mccluskey

6. วาดวงจร





step 1




step 2




step 3




Current state Input    Next state Output1 Output2 Output3 flip-flop D type
A B A B Da Db
0 0 0 1 0 1 0 1 1 0
0 0 1 0 1 1 0 1 0 1
0 1 0 0 1 1 1 0 0 1
0 1 1 0 0 1 0 1 0 0
1 0 0 0 1 0 0 0 0 1
1 0 1 1 1 0 0 0 1 1
1 1 0 1 0 0 1 1 1 0
1 1 1 0 0 0 1 1 0 0





step 4

จาก state space ด้านบน ประกอบด้วย 4 state ได้แก่ start ,forward ,turn left ,turn right ซึ่งเส้นที่โยงระหว่าง state หมายถึง input ที่ใส่เข้ามาจะทำให้วงจรของเราไปอยู่ที่ state ใด เป็น state ต่อไป เช่น เมื่ออยู่ที่ state start จะมี output1 = 1 output2 = 0 output3 = 1 ถ้ามี input เป็น 1 จะทำให้วงจรไปอยู่ที่ state forward  ถ้ามี input เป็น 0 จะไปอยู่ที่ state turn left จาก diagram เราสามารถเขียน ตารางตามด้านล่าง ซึ่งจะบอก state ที่อยู่ตามด้วย input และ state ที่จะไปต่อเมื่อมี input นั้นๆเข้ามา ส่วนในช่องของ flip-flop เป็นค่า logic ที่ใส่เข้าไปในขา flip-flop แล้ว state จะเปลี่ยนไปตามนั้น เช่น ถ้า A เปลี่ยนจาก 0 เป็น 1 และใช้ D type จะต้องให้ขา D เป็น 1 ถ้า A เปลี่ยนจาก 1 เป็น 0 จะต้องให้ขา  D เป็น 0 
จากนั้นเขียน truth table ระหว่าง A B Input แล้วได้ผลลัพย์ออกมาเป้น Da และDb เพื่อนำไปต่อเข้าขาของflip-flopที่นำมาใช้  เช่น

A B Input Da
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 0

Truth table

A\Binput 0,0 0,1 1,1 1,0
0 1 0 0 0
1 0 1 0 1
K-map

สำหรับ Output นำ A B มาเขียนเพื่อใช้มาเป็น output เช่น
A B Output1
0 0 1
0 1 1
1 0 0
1 1 0




ความรู้ที่ได้รับ (สัปดาห์ที่ 4)

MUX (Multiplexer)
    
    Multiplexer หรือ ตัวเลือกข้อมูล(Data selector) คือตัวทำหน้าที่เลือกช่องสัญญาณที่มีมากกว่า 1 ช่องมาแสดงออกเป็นเอาต์พุตเดียวโดยจะสามารถเลือกได้ว่าจะนำอินพุตไหนออกมาแสดงเป็นเอาต์พุต

ตัวอย่างการทำงานของ Multiplexer

    โดยวิธีเลือกคือการเปลี่ยนสถานะของทาง Selector หาก output เป็น I0 อยู่แล้วอยากให้เป็น I1 ทำได้เพียงแค่สลับสถานะของ Selector



DeMUX(DeMultiplexer)

    DeMultiplexer นั้นจะมีการทำงานตรงกันข้ามกับ Multiplexer ตรงที่จะมี Input เพียง 1 ตัวและสามารถเลือกให้ออกมาได้หลายตัวเลือก
ตัวอย่างการทำงานของ DeMultiplexer

Encoder

    Encoder เป็น IC สำหรับเข้ารหัสโดยจะมี Input 8 ตัวและมีเอาต์พุต 3 ตัวซึ่งสามารถอ่านเป็นเลขฐาน 2 แบบ 3 บิตได้

ตัวอย่างและ Truth table ของตัว Encoder

Decoder

    Decoder จะมีการทำงานตรงข้ามกับ Encoder คือฝั่ง Input จะรับมาเป็นระบบเลขฐานสองและแสดง Output ของมาในระบบเลขฐาน 10

ตัวอย่างของ Encoder