วันพุธที่ 16 พฤศจิกายน พ.ศ. 2559

LAB : 5

Lab : 5
 เชื่อมต่อ Nucleo เข้ากับ I2C EEPROM เพื่อเก็บและอ่านข้อมูล โดยไห้ทำงานได้ 2 โหมด คือ เมื่อ
สวิตส์ d7 on จะเป็นการ บันทึกค่า ตามคลิปวิดีโอเมื่อกดปุ่ม toggle switch จะทำไห้มันบันทึกค้า จากนั้นเมื่อเลื่อน switch d7 ลงเป็น off เมื่อกด toggle switch จะทำไห้ led แสดงผลตามที่บันทึกค่าไว้ บนบอร์ด NX100  led0=d0 led=d1 จนถึง led6=d6  ใช้การเขียนโคตในการควบคุม กระบวนการต่างๆ


วันอังคารที่ 15 พฤศจิกายน พ.ศ. 2559

Assignment2

Assignment 2 A9
 ต่อเนื่องจาก lab 3 โดยทางอาจารย์ได้เพิ่มความยากขึ้นมาอีกจากที่แสดงผลในคอมพิวเตอร์ เปลี่ยนมาเป็นแสดงผลใน smart phone โดย ใช้ BT HC-05 กับ nucleo เพื่อเชื่อมต่อกับ smart phone และ จากที่เมื่อ ส่ง s แล้ว จะออกจากโหมดกลายเป็น เมื่อ ส่ง s แล้วจะทำไห้ LED หยุดทำงาน แต่ยังค้างอยู่ใน mode 1 ให้ส่ง x แทนจึงจะออกจาก mode 1 ไปที่ menu หลัก เพิ่ม mode 3 ขึ้นมา ทำหน้าที่ไห้ smart phone แสดงผลค่า VR จาก บอร์ด Nx100


LAB : 3

Lab : 3

     ในแลป 3 นั้น จะเป็นการเชื่อมต่อ Nucleo เข้ากับ คอมพิวเตอร์  โดยมีเอ้าพุตเป็น serial moniter ใน คอมพิวเตอร์และ LED บนบอร์ด NNX100 โดยใช้ Nucleo เป็นตัวควบคุม logic ต่างๆที่ได้เขียนไปใน CODE
เชิญรับชมคลิป



           input 1 = mode 1 LED pattern 
           input a =  LED pattern 1
           input b =  LED pattern 2
           input s =  EXIT  
           input 2 = mode 2 check logic switch


serial moniter
input ตรง ช่องข้างบนแล้วกด send

    


                                                                 CODE LAB3 A9                                  

LAB : 2

Lab : 2
โจทย์
      ให้ input ค่า analog จาก VR บนบอร์ด NX100 ตั้งแต่ 0-3.3v แล้วไปแสดงผลในรูปแบบต่างๆดังนี้
1.แสดงผลระดับแรงดันด้วยหลอดไฟ LED บนบอร์ด NX100
2. เมื่อกดปุ่ม toggle switch แล้วจะเปลี่ยนโหมดจากแสดงผลด้วย LED เป็นแสดงผลด้วย 7-segment แทน
3.แสดงผลระดับแรงดันด้วย 7-segment บนบอร์ด NX100


7-segment
จากโจทย์ไห้แสดงผลเป็นตัวเลข2หลักแรก 

toggle switch
เมื่อกดปุ่มเล็กๆสีดำที่อยู่ข้างล่างแล้วจะเปลี่ยนโหมด

VR
เป็นตัวปรับแรงดัน ใน lab นี้ จะปรับได้แค่จาก 0 -3.3 v





      โดยตัวควบคุมการทำงานทุกๆอย่างนั้น คือ Nucleo ซึ่งจะเป็นตัวหลักที่จะเชื่อมตัว input , toggle switch และ output ไว้ด้วยกัน และใช้การเขียนโคตในการ ควบคุม










วันพฤหัสบดีที่ 10 พฤศจิกายน พ.ศ. 2559

LAB : 4

Lab :4 สร้างสัญญาณตามที่โจทย์กำหนด



จากโจทย์เราต้องสร้างสัญญาณไห้ได้ตามรูปแบบที่โจทย์กำหนด

รูปแบบสัญญาณที่ต้องสร้าง

โดยสัญญาณที่เราสร้างนั้นต้องมีความถี่เท่ากับหรือใกล้เคียงกับเลขกลุ่มของกลุ่มเราโดยเลขกลุ่มของเราคือ 9 เพราะฉะนั้นเราต้องทำการสร้างสัญญาณที่มีความถี่ 9 Hz. 

ในแลปนี่เราต้องใช้ ic ก้คือ  MCP 4922 ต่อเข้ากับ nucleo และใช้ ตัว hantek ในการจับสัญญาณ
โดยการสร้างสัญญาณนั้นใช้การเขียนโคตใน mbed เป็นตัวควบคุม 
ข้อควรระวัง:เช็คสายทุกเส้นว่าชำรุดหรือต่อผิดหรือเปล่า 








วันอังคารที่ 1 พฤศจิกายน พ.ศ. 2559

Lab:01

Lab : 1
          โจทย์ : ไห้ออกแบบการทำงานและพัฒนา controller โดยรับอินพุตจาก switch 3 ตัว แล้วทำไห้เกิดความแตกต่างในการทำงานของ led จำนวน 8 ดวง ในลักษณะที่แตกต่างกัน 3รูปแบบ

หลักการทำงาน
           จากโจทย์นั้นเราสิ่งที่เราต้องทำคือเมื่อเราทำการต่อบอร์ด nucleo กับบอร์ด nx100 เข้าด้วยกันแล้ว เมื่อเราดัน switch  ของบอร์ด nx100 ขึ้นแล้ว led จะทำงานตามโปรแกรมที่เราเขียนไว้ ไปเรื่อยๆจนกว่าเราจะดัน switch ลงถ้ายังไม่จบกระบวนการจะต้องรอไห้ดำเนินการต่อจนเสร็จแล้วถึงจะเปิด switch ถัดไปได้ ต้องทำไฟทั้ง 3 รูปแบบ
ไห้การติดของ led ทั้ง 3 รูปแบบ นั้นแตกต่างกัน

การต่อ nx100 กับ บอร์ด nucleo
   1.เราจะทำการต่อ ground ของบอร์ด nx100 และ บอร์ด nucleo เข้าด้วยกัน
   2.เราจะทำการต่อ input ของระบบ หรือ ก็คือ switch ของ nx100 เข้ากับ port ของบอร์ด nucleo โดยกลุ่มของเราจะใช้  port D3,D4,D5 ของบอร์ด nucleo ต่อกับ switch ช่อง D1,D2,D3 ของบอร์ด nx100 ตามลำดับ
   3.เราจะทำการต่อ output  ของ ระบบ หรือคือ led ที่เราไว้ใช้แสดงผลทัง 8 ดวง ของบอร์ด nx100 เข้ากับ port ของบอร์ด nucleo โดย กลุ่มเราจะใช้ port D6,D7,D8,D9,D10,D11,D12,D13 ต่อกับ led ช่อง D0,D1,D2,D3,D4,D5,D6,D7 ของบอร์ด nx100 ตามลำดับ
   4.เชื่อมสาย usb กับบอร์ด nucleo เข้าด้วยกัยลงโปรแกรม และ ลองใช้งานโปรแกรมที่เขียน

วิธีการลงโปรแกรม
    กลุ่มของเรานั้นใช้เวปของ mbed เพื่อ เขียนโปรแกรมและ compile
   1.เข้าเวปไซต์ของทาง mbed loginเข้าไปเขียนโปรแกรม
   2.เมื่อเขียนเสร็จแล้วกดที่ compile จะดาว์นโหลดไฟลล์ไปยังเตรื่องของเรา
   3.ลากไฟล์ที่โหลดมาแล้วไปไว้ใน usb port ของ nucleo
   4.เมื่อลากลงแล้ว ตัว nucleo จะส่งข้อมูลโปรแกรมที่เราเขียนไว้ไปอัตโนมัติ
   5.ลองทดลอง โปรแกรมที่เขียนมา



วันศุกร์ที่ 14 ตุลาคม พ.ศ. 2559

LJ5 : DESIGNING SEQUENTIAL CIRCUITS

DESIGNING SEQUENTIAL CIRCUITS

Combination & Sequential Logic

-Combination
Output ขึ้นกับ Input ขณะนั้น
-Sequential Logic

Output ขึ้นกับ 1.Input ขณะนั้น
                        2.Input ก่อนหน้า
                           3.Output ก่อนหน้า
    
*อุปกรณ์พื้นฐานทาง Combination logic คือ Logic gates
*อุปกรณ์พื้นฐานทาง Sequential Logic คือ Flip‐flop

J,K Flip-Flop


J,K = Input          Q,Qbar = Output          Clk = Clock

*เมื่อใส่ Input เข้าไปแล้ว Output จะยังไม่เปลี่ยนต้องมีสัญญาณ Clock เข้ามาก่อน Output จึงจะเปลี่ยน
*Rbar คือ ขา Reset ที่เป็น Active Low ถ้าเป็น 0V. แล้วขา Reset จะทำงานตลอดเวลา


D-Type Flip-Flop


*สามารถใช้ J,K Flip-Flop มาแปลงเป็น D-Type Flip-Flop ได้
*Input 1 = set , Input 0 = Reset

T-Type Flip-Flop


*สามารถใช้ J,K Flip-Flop มาแปลงเป็น T-Type Flip-Flop ได้
*Input 1 = Toggle , Input 0 = No Change

SR Flip-Flop


*SR Flip-Flop ไม่มีขา Clock ทำไห้สลับสถานะไวมาก
*ไม่เป็นที่นิยมใช้




วันพฤหัสบดีที่ 29 กันยายน พ.ศ. 2559

Classwork


Classwork

สิ่งที่เราต้องการคือ

จาก State Diagram เรานำค่าต่างๆมาสร้างเป็นตาราง โดยใช้ JK Filp-Flops

จากนั้นเราจึงทำการลดรูปโดยใช้ K-MAP

จากนั้นเราจึงทำการต่อเป็นวงจร


ลิงค์คลิปการทำ Classwork ด้านล่าง



วันพุธที่ 28 กันยายน พ.ศ. 2559

LJ6 :SEQUENTIAL CIRCUITS


หลักการทำงานของวงจรเช็ครอบการหมุนของมอเตอร์ คือ เมื่อมีแสงส่องผ่านไปได้จะไป Count ที่ไอซี

    Asynchronous Counters เป็นวงจรนับที่นำเอา J K Flip Flop มาต่อเข้าด้วยกัน มี 4 ตัว จะเป็นข้อมูลแบบ 4 bit เลขฐานสอง Asynchronous Counters จะมีข้อเสียตรงที่ ขา Clock นั้นไม่ได้ทำงานพร้อมกันที่เดียวส่งผลให้เกิดการ Propagation Delay จาก gate แต่ละตัวของ IC  การจับสัญญาณ จะมีทั้งการจับสัญญาณขอบขาขึ้นและขาลง วงจรนี้จะต่อ JK เป็น High ตลอดเพื่อใช้งาน Toggle
     Synchronous Counter เป็นวงจรนับเหมือน Asynchronous Counters โดยขา Clock จะทำงานพร้อมกัน
Stage จะเปลี่ยนไปพร้อมกัน Delay จะมีค่าเท่าเดิมไม่ว่าจะต่อ เป็นกี่ bit ก็ตาม แต่ความยากคือจะมี AND gate เข้ามาต่อเพิ่ม
8-bit parallel-in/serial out shift register
      ตัวอย่างรูป คือการทำงานข้างในของวงจร 74HC166 ภายในจะมี ic flip flop ทั้งหมด 8 ตัวเนื่องมาจากมี 8 bit รับข้อมูลเข้าแบบ parallel ส่งข้อมูลออกแบบ serial

• Shift Register มีโหมดการทำงานหลักๆ อยู่ 4 แบบ
• Serial‐in to Parallel‐out (SIPO)
• Serial‐in to Serial‐out (SISO)
• Parallel‐in to Serial‐out (PISO)
• Parallel‐in to Parallel‐out (PIPO)



วันพฤหัสบดีที่ 8 กันยายน พ.ศ. 2559

LJ4 : COMBINATIONAL LOGIC FUNCTIONS

LED 7 Segment

LED 7 Segment คือการนำ LED 7 ดวงมาแสดงผลเป็นตัวเลขจากรูปจะเห็นได้ว่า Outputs นั้นจะมีอยู่ 7 
ตัวมาต่อกันเป็นรูปตัวเลขโดยมีชื่อเรียกแต่ละส่วน คือ a,b,c,d,e,f,g

การต่อวงจร
เราสามารถแบ่งการต่อวงจรออกได้เป็น 2 แบบ คือ
  1.การต่อแบบแอโนด โดยป้อนไฟบวกเข้าที่ขา คอมมอน แล้วใช้ Logic 0 ในการสั่งการไฟว่าติดหรือดับ
  2.การต่อแบบแคโทด โดยป้อนไฟลบเข้าที่ขา คอมมอน แล้วใช้ Logic 1 ในการสั่งการไฟว่าติดหรือดับ

DCODER
  Dcoder คือวงจรถอดรหัส สามารถถอดรหัส เลขฐานสอง
               
       จากตารางข้างต้นจะเห็นได้ว่ามันสามารถแปลงเลขฐานสองเป็นเลขฐาน 10 ได้ โดยเมื่อเรา ป้อน Input เป็น 0000 นั่นก็หมายความว่า (2^3x0)+(2^2x0)+(2^1x0)+(2^0x0) = 0 จะเห็นได้ว่าที่ตารางช่อง M0 จะเป็น 1 และเมื่อ Input เป็น 0111 นั่นก็หมายความว่า (2^3x0)+(2^2x1)+(2^1x1)+(2^0x1) = 7
ตารางช่อง M7 จะเป็น 1 คือมี Logic 1 เกิดขึ้น

ENCODER
Encoder คือวงจรเข้ารหัส ทำหน้าที่สลับกับ Dcoder โดยการแปลงเลขฐาน 10 กลับมาเป็นเลขฐาน 2
                
                      
จากตารางจะแสดงการเข้ารหัส ของเลข ฐาน 10 เป็น ฐาน 2 โดยที่ เครื่องหมาย x คือไม่สนใจว่าจะเป็น Logic 0 หรือ 1

Multiplexer (Mux)

Mux คือ วงจรที่ทำหน้าที่ เลือกสัญญาณ Input มา ออกช่อง Output คล้ายกับมีสวิตซ์ ขั้นอยู่ เราสามารถเลือกช่อง Input ที่จะนำมาออก Output ได้โดยการ เลือกจากช่อง สัญญาณ A B ตามตาราง Truth Table ได้
Demultiplexer(Demux)


Dmux คือ วงจรที่ทำหน้าที่สลับกับ Mux คือ มี Input เข้ามา แล้วเราเลือกว่าจะเอา Input ไปออกช่องไหนของ Output โดยการเลือกช่องออกก็ขี้นอยู่กับสัญญาณ AB ตามตาราง Truth Table เช่นกัน


                                                        







วันศุกร์ที่ 2 กันยายน พ.ศ. 2559

LJ2 : CONVERTING TRUTH TABLES INTO BOOLEAN EXPRESSIONS

LJ2 : CONVERTING TRUTH TABLES INTO BOOLEAN EXPRESSIONS

ได้เรียนรู้ เกี่ยวกับ คุณสมบัติต่างๆ ของ boolean ได้เรียนรู้วิธีลดรูปโดยใช้ boolean
ได้เรียนรู้วิธีใช้ sum of product and product of sum
ได้ลองต่อวงจรที่เราลดรูปไว้แล้วแล้วทดสอบบนบอร์ด NX 100
ได้เรียนDeMorgan's Theorems

วิธีลดรูปโดยใช้ SOP






เอกลักษณ์ของบูลีน




ใช้ SOP อีกรอบ



หรือ 

ใช้ วิธี POS แทนได้


DeMorgan's Theorems




วันพฤหัสบดีที่ 1 กันยายน พ.ศ. 2559

LJ1 : Introduction

LJ1 : Introduction

              ได้รู้จัก Alan Turing ว่าเป็นใคร เกิดอยู่ในช่วงไหนและพยายามทำเครื่องถอดรหัสลับ enigma ของ เยอร์มันซึ่งเครื่อง enigma นั้นมีความเป็นไปได้ของรูปแบบการเข้ารหัส คือ 150,000,000,000,000 รูปแบบ

Alan Turing


เครื่อง The Bombe ที่ Alan Turing กับทีมร่วมกันสร้าง



เครื่องเข้ารหัส Enigma



            ได้เรียนรู้และรู้จัก gate ชนิดต่างๆได้รู้ความแตกต่างระหว่าง analog กับ digital ได้ลองเล่นบอร์ด NX 100 และได้ร้ส่วนประกอบต่างๆขบนบอร์ NX 100 ได้ทดลองว่า
IC 7404 กับ IC 7414 ต่างกันอย่างไร

  1. บอร์ด NX 100 


Gate ชนิดต่างๆ












LJ3 : Karnaugh Maps

Lj3 : Karnaugh Maps

              ได้เรียน Karnaugh Maps เพื่อทดแทนการใช้ Boolean Algebra ในกรณีที่วงจรซับซ้อนมากๆ
ใช้เพื่อลดรูปวงจร logic gate

                                                                                
ขั้นตอนการใส่ out put ลงใน k map

 Ex1.ตัวอย่างการทำ กรณี 2 input


 
                                                                                วงกลมเลข 1 ที่อยู่ติดกัน

 Ex2.กรณี3 input


 

 ตาราง k map จะเขียนเรียง จาก 00 01 11 10

 เรียงตาม grey code