TLC549CP ADC SPI-Bus Control by Arduino UNO

การแปลงสัญญาณอะนาลอกเป็นดิจิตอล โดยทั่วไปจะมีบอร์ดจำหน่ายสำเร็จรูปให้เลือกซื้อได้หลายแบบและราคาไม่สูงมากนัก ซึ่งโดยทั่วไปจะเป็นลักษณะของการสื่อสารแบบ I2C โดยจะสามารถเชื่อมต่อกับไมโครคอนโทรลเลอร์รุ่นใหม่ๆ และหลายๆ ค่ายก็มีพอร์ตสำหรับเชื่อมต่อนี้ไว้อำนวยความสะดวกสำหรับนักออกแบบและพัฒนาโครงงานด้วยไมโครคอนโทรลเลอร์ และโครงงานนี้เป็นการต่อใช้งานไอซี TLC549CP ซึ่งทำหน้าที่เปลี่ยนสัญญาณอะนาลอกเป็นดิจิตอล (8-bit switched-capacitor successive-approximation ADC) แต่จะใช้การสื่อสารแบบ SPI-Bus ทั้งนี้เพื่อเป็นการเรียนรู้และทดลองเชื่อมต่ออีกแบบหนึ่ง โดยจะต่อร่วมกับบอร์ด Arduino UNO

TLC549CP ADC SPI-Bus Control by Arduino UNO
รูปที่ 1 ลักษณะเตรียมการทดลองของบอร์ดควบคุมและไอซี TL549CP

รูปที่1 แสดงลักษณะของต่อไอซีกับบอร์ดควบคุม Arduino UNO ซึ่งในการทดลองจะใช้เบรดบอร์ดสำหรับวางตำแหน่งไอซี TLC549CP และใช้สายแพรเชื่อมต่อมายังบอร์ดควบคุม ทั้งนี้เพื่อให้งานสำหรับการแก้ไขหรือปรับแต่งการต่อวงจรได้ง่าย

TLC549CP ADC SPI-Bus Control by Arduino UNO
รูปที่ 2 แสดงตำแหน่งขาใช้งานของไอซี TL549CP

Picture TL549CP by : https://www.alldatasheet.net/datasheet-pdf/pdf/843253/TI1/TLC549CP.html

/*
    Code Program Arduino Ref : http://robert-fromm.info/?post=elec_spi_tlc549
    TLC549CP ADC SPI-Bus Control by Arduino UNO
    MCU : Arduino UNO    
    Date : 18-11-2021 (V.0) 
   
    *Arduino connector to TLC549CP
    D10 ------> PIN 5  
    D12 ------> PIN 6
    D13 ------> PIN 7
    +5V ------>+5V
    GND -----> GND
*/

#include <SPI.h>
const uint8_t CS = 10;
 
void setup() {
  Serial.begin(9600);
  SPI.begin();
  SPI.setClockDivider(SPI_CLOCK_DIV16); 
  pinMode(CS, OUTPUT);
  digitalWrite(CS, LOW);
} 

void loop() {
  Serial.print(" ADC Read = "); 
  Serial.println(SPI.transfer(0x00));
  delay(100);
}

สำหรับโปรแกรมการทดลองข้างบนนี้เป็นตัวอย่างสั้นๆ ซึ่งสามารถสื่อสารกับไอซี TLC549CP ได้เป็นอย่างดี โดยผู้อ่านสามารถนำไปพัฒนาเพิ่มเติมได้ โดยจากการทดลองการรับส่งข้อมูลระหว่างไอซี TLC549CP และบอร์ดควบคุม Arduino UNO เร็วพอควรครับ

TLC549CP ADC SPI-Bus Control by Arduino UNO
รูปที่ 3 วัดค่าแรงดันสำหรับทดลองที่ 1V

รูปที่ 3 แสดงการทดลองที่ 1 โดยการปรับแรงดันไฟฟ้าขนาด 1V และป้อนที่ขาอินพุตของไอซี TLC549CP (ขา 2) จากนั้นสังเกตผลที่ได้จากการแปลงค่าสัญญาณอะนาลอกเป็นดิจิตอล ซึ่งจะส่งมายัง Serial Monitor ของ Arduino IDE ดังแสดงในรูปที่ 4

TLC549CP ADC SPI-Bus Control by Arduino UNO
รูปที่ 4 ค่าแสดงผลที่ได้จากการทดลองเมื่อปรับแรงดันอินพุตที่ 1V

รูปที่ 4 ผลการทดลองที่ 1 เมื่อไอซี TLC549CP แปลงสัญญาณเสร็จแล้วและส่งค่าแสดงผลมายัง PC ซึ่งค่าที่ได้ประมาณ 50 ที่แรงดันอินพุต 1V

TLC549CP ADC SPI-Bus Control by Arduino UNO
รูปที่ 5 วัดค่าแรงดันสำหรับทดลองที่ 2.5V

รูปที่ 5 การทดลองที่ 2 เช่นเดียวกับกับการทดลองที่ 1 โดยปรับแรงดันอินพุตเพิ่มขึ้นมาที่ 2.5V และป้อนที่ขาอินพุตของไอซี TLC549CP (ขา 2) การแปลงค่าสัญญาณอะนาลอกเป็นดิจิตอลจะส่งมายัง Serial Monitor

TLC549CP ADC SPI-Bus Control by Arduino UNO
รูปที่ 6 ค่าแสดงผลที่ได้จากการทดลองเมื่อปรับแรงดันอินพุตที่ 2.5V

รูปที่ 6 ผลการทดลองที่ 2 ไอซี TLC549CP แปลงสัญญาณและส่งค่าที่ได้แสดงผลมายัง PC ซึ่งค่าที่ได้ประมาณ 127 ที่แรงดันอินพุต 2.5V

TLC549CP ADC SPI-Bus Control by Arduino UNO
รูปที่ 7 วัดค่าแรงดันสำหรับทดลองที่ 4.5V

รูปที่ 7 การทดลองที่ 3 ปรับแรงดันอินพุตที่ 4.5V และป้อนที่ขาอินพุตของไอซี TLC549CP (ขา 2) การแปลงค่าสัญญาณอะนาลอกเป็นดิจิตอลจะส่งมายัง Serial Monitor

TLC549CP ADC SPI-Bus Control by Arduino UNO
รูปที่ 8 ค่าแสดงผลที่ได้จากการทดลองเมื่อปรับแรงดันอินพุตที่ 4.5V

รูปที่ 8 ผลการทดลองที่ 3 ไอซี TLC549CP แปลงสัญญาณและส่งค่าที่ได้แสดงผลมายัง PC ซึ่งค่าที่ได้ประมาณ 203 ที่แรงดันอินพุต 4.5V ซึ่งจากการทดลองทั้ง 3 ครั้งนี้ เพื่อให้เห็นการเปลี่ยนแปลงของข้อมูลจาก Serial Monitor ที่แรงดันอินพุตต่างๆ และตรวจสอบการทำงานรวมถึงความถูกต้องของข้องมูลที่แสดง

TLC549CP ADC SPI-Bus Control by Arduino UNO
รูปที่ 9 ลักษณะของการทดลองไอซี TLC549CP
TLC549CP ADC SPI-Bus Control by Arduino UNO
รูปที่ 10 วงจรสำหรับทดลองการทำงานของไอซี

กับไอซีแปลงสัญญาณอะนาลอกเป็นดิจิตอลเบอร์นี้ เป็นอีกเบอร์หนึ่งที่ใช้ลักษณะของการสื่อสารกับบอร์ดควบคุม Arduino UNO แบบ SPI-Bus ซึ่งจะเจอไม่มากนัก ดังนั้นแอดมินเลยทดลองนำไอซีเบอร์นี้ต่อใช้งานเบื้องต้นสำหรับเป็นความรู้ให้ตัวเอง และนำผลการทดลองรวมทั้งตัวอย่างโค้ดโปรแกรมมาแชร์ให้ผู้อ่าน ซึ่งคิดว่าอาจจะเป็นประโยชน์ได้บ้างครับ.

Reference

  1. http://robert-fromm.info/?post=elec_spi_tlc549
  2. https://www.digikey.com/en/products/detail/texas-instruments/TLC549CP/277498
  3. https://www.mouser.com/ProductDetail/Texas-Instruments/TLC549CP?qs=HE9hdJajmerjfGzVxaxq%252Bw%3D%3D
  4. https://www.youtube.com/watch?v=qzC96ZHbeH0
  5. https://www.elektormagazine.com/magazine/elektor-201403/24437
  6. https://qsl.net/om3cph/dds/wobbler.html
  7. http://remcoterol.blogspot.com/2015/11/
  8. https://html.alldatasheet.net/html-pdf/843253/TI1/TLC549CP/55/1/TLC549CP.html