บทความ FTDI ตอนที่ 1 การสร้าง Project และสั่งงาน LED แบบง่ายๆ

บทความ FTDI ตอนที่ 1 การสร้าง Project และสั่งงาน LED แบบง่ายๆ

USB To Serial ใช้ประโยชน์ได้มากกว่าการเป็นเพียง Serial Port

Serial UART to USB mini B Converter V4

คลิกเพื่อดูรายละเอียดสินค้า Serial UART to USB mini B Converter V4

             USB To Serial เป็นอุปกรณ์ที่นับว่าเป็นสิ่งที่สำคัญตัวหนึ่งสำหรับนักพัฒนา หรือผู้ที่ใช้งานเกี่ยวกับ Microcontroller เนื่องจากปัจจุบัน Serial Port ในเครื่อง Computer PC และ Notebook หาได้ยาก หรือแทบจะไม่มีแล้วในเครื่องรุ่นใหม่ๆ แต่สิ่งนี้ก็ยังคงเป็น Port พื้นฐานที่สำคัญสำหรับงาน Embedded System ไม่ว่าจะเป็นการ รับ-ส่งข้อมูลระหว่าง Computer กับ Microcontroller, อุปกรณ์ช่วยในการ Debug, การจับ Protocol ทาง Serial Port

             แต่ USB To Serial บางตัวนั้นก็ยังมีความสามารถให้เราได้ใช้มากกว่าการเป็นแค่ USB To Serial เช่น USB To Serial ที่ใช้ชิพของบริษัท FTDI ได้มีการเปิดให้ user สามารถเขียนโปรแกรมควบคุมการทำงานของ Pin ต่างๆ ได้ผ่านทาง Driver ทำให้เราสามารถเขียนโปรแกรมเพื่อสร้าง Application ไปควบคุม Hardware ผ่านทาง Port USB แบบง่ายๆได้

Introduction FTDI คืออะไร?

             บริษัท FTDI นั้นได้มีการสร้าง Software Interface ไว้สำหรับผู้ใช้ 2 ส่วนด้วยกันคือ USB-UART และ USB-FIFO ในส่วนของ USB-UART ก็คือส่วนที่ใช้เป็น USB To Serial หรือ Comport นั่นเอง แต่ในส่วนที่เราจะพูดถึงในบทความนี้คือ ในส่วน USB-FIFO หรือ D2xx เราสามารถเขียน Software ควบคุมตัวชิพผ่านทาง FTD2xx.DLL ซึ่งสามารถพัฒนาได้หลายภาษา เช่น C++, C#, Delphi, Labview, VisualBasic (ในบทความนี้จะใช้ .NET C# )    

ftdi

ขั้นตอนการเขียนโปรแกรมเชื่อมต่อกับ D2XX.dll

ในขั้นแรกผู้ใช้จะต้องลง Driver ของ ชิพ FTDI ให้เรียบร้อยเสียก่อน โดยสามารถ Download ได้จาก http://www.ftdichip.com/Drivers/VCP.htm หากท่านสามารถใช้งาน USB To Serial ได้เป็นปรกติ หมายถึงท่านได้สามารถติดตั้ง Driver เป็นที่สมบูรณ์เรียบร้อยแล้ว

ในการทดลองนี้เราจะใช้ ภาษา  C# เป็นหลัก โดยผู้ผลิตมีการเตรียม DLL สำหรับใช้งานกับ C#.net เอาไว้แล้วซึ่งสามารถ Download ได้ที่ http://www.ftdichip.com/Support/SoftwareExamples/CodeExamples/CSharp/FTD2XX_NET_v1.0.14.zip

เมื่อ แตกไฟล์ Zip ออกมาจะพบว่ามี File  FTD2XX_NET.dll อยู่ภายใน

ขั้นตอนการสร้าง Project

– เปิด Microsoft Visual Studio ขึ้นมา จากนั้นเลือก New Project 

   – เลือก Installed Template เป็น Visual C# และเลือกใช้ Windows Forms Application จากนั้น ตั้งชื่อ Project และเลือก Path ที่อยู่ของ Project ให้เรียบร้อย (ตามกรอบสีแดง) จากนั้นคลิก OK

     – เราก็จะได้ Form ที่ว่างๆ ขึ้นมาหนึ่งหน้า

– จากนั้นเราจะทำการ Add FTD2XX_NET.dll เข้ามายังโปรเจคของเราโดย

         >> Copy ไฟล์ FTD2XX_NET.dll เข้ามายัง Folder Project\bin\debug

      >> เข้าไปยังโปรแกรม Visual studio คลิกขวาที่ References เลือก Add Reference

>> จะปรากฏหน้าต่าง Add Reference จากนั้นให้เลือกที่ tab Browse แล้วไปเลือก File FTD2XX_NET.DLL ที่เรา Copy ลงไปไว้ใน Folder Project\bin\debug จากนั้นคลิก OK

   >> ภายใน References ก็จะปรากฏ FTD2XX_NET ขึ้นมา

ขั้นตอนการเขียนโปรแกรม

– Double Click ที่หน้า Form โปรแกรม Visual Studio จะพาเราเข้าไปสู่หน้าสำหรับเขียน Code 

– เรียกใช้ NameSpace  using FTD2XX_NET

  – ประกาศ object FTDI ชื่อ myFtdiDevice 

  – ประกาศตัวแบบ Address ของ Pin และ ตัวแปลที่สำคัญ

– สร้างหน้าตาของโปรแกรม

   – สร้าง Function SetdirectionPin

 – การกำหนด Direction ของ Pin จะกำหนดทั้ง Port โดย Bit ใดเป็น 1 คือ Output และ Bit ใดเป็น 0 คือ Input โดยเรียง Bit ดังนี้

     – สร้าง Function clr_pin 

 การสั่งงานด้วยคำสั่ง Write จะเป็นการเขียน Data ลงไปยัง Register ของทั้ง Port เพราะฉะนั้นจึงต้องมีตัวแปล pins ไว้เก็บค่าของทั้ง Port เอาไว้แล้วเปลี่ยนแปลงแค่ Bit ที่ต้องการ ก่อนที่จะทำการ Write Data ลงไปเพื่อไม่ให้การสั่งงานไปกระทบกับ Pin อื่นๆ

        – สร้าง Function set_pin

     – สร้าง Function get_pin

    คำสั่ง GetPinStates เป็นคำสั่งที่อ่านค่า Register ของ Port เพราะฉะนั้นจึงต้องมีการนำมา & กับ Bit ที่ต้องการทราบสถานะ จึงจะได้ค่าสถานะของ Pin ที่ต้องการ

      – โปรแกรม ส่วนของ Button Init

 – โปรแกรมส่วน bt_led_on_click

   – โปรแกรมส่วน bt_led_off_click

การเชื่อมต่อ Hardware

Download  Example Code Hello FTDI : Example Code Hello FTDI