TLC549CP ADC SPI-Bus Control by Arduino UNO

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

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

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 เร็วพอควรครับ

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

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

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

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

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

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


กับไอซีแปลงสัญญาณอะนาลอกเป็นดิจิตอลเบอร์นี้ เป็นอีกเบอร์หนึ่งที่ใช้ลักษณะของการสื่อสารกับบอร์ดควบคุม Arduino UNO แบบ SPI-Bus ซึ่งจะเจอไม่มากนัก ดังนั้นแอดมินเลยทดลองนำไอซีเบอร์นี้ต่อใช้งานเบื้องต้นสำหรับเป็นความรู้ให้ตัวเอง และนำผลการทดลองรวมทั้งตัวอย่างโค้ดโปรแกรมมาแชร์ให้ผู้อ่าน ซึ่งคิดว่าอาจจะเป็นประโยชน์ได้บ้างครับ.
Reference
- http://robert-fromm.info/?post=elec_spi_tlc549
- https://www.digikey.com/en/products/detail/texas-instruments/TLC549CP/277498
- https://www.mouser.com/ProductDetail/Texas-Instruments/TLC549CP?qs=HE9hdJajmerjfGzVxaxq%252Bw%3D%3D
- https://www.youtube.com/watch?v=qzC96ZHbeH0
- https://www.elektormagazine.com/magazine/elektor-201403/24437
- https://qsl.net/om3cph/dds/wobbler.html
- http://remcoterol.blogspot.com/2015/11/
- https://html.alldatasheet.net/html-pdf/843253/TI1/TLC549CP/55/1/TLC549CP.html