ADC ความละเอียดสูงสำหรับเซ็นเซอร์ที่มีเสียงดังในสภาวะที่เปลี่ยนแปลงได้


9

Intro

ในการตอบคำถามนี้เกี่ยวกับแอมพลิฟายเออร์ที่ปรับตัวได้ขอแนะนำว่าเพื่อที่จะจัดการกับเงื่อนไขของตัวแปรมันอาจจะประหยัดกว่าที่จะใช้ ADC ที่มีความละเอียดสูงกว่าเพื่อที่ฉันจะได้ไม่ต้องกังวลกับแอมพลิฟายเออร์ ในซอฟต์แวร์

ภาพรวม

ฉันกำลังพยายามออกแบบวงจรเก็บข้อมูลสำหรับเซ็นเซอร์ตรวจจับสิ่งทอที่ยึดตามร่างกาย สิ่งทอแตกต่างกันไปตามความต้านทานขณะที่ยืด (ประมาณ 1 ลำดับขนาด 10k -100kยืด 30%) ช่วงที่แน่นอนจะเปลี่ยนไปขึ้นอยู่กับวิธีการตัดผ้าไม่ว่าจะเปียกโชกไปด้วยเหงื่ออุณหภูมิอุณหภูมิของวัสดุที่ถูกติดตั้ง ฯลฯ สิ่งต่าง ๆ จะต้องมีขนาดเล็กที่สุดเท่าที่จะเป็นไปได้เพราะติดตั้งบนมือ ดังนั้นการลดจำนวนขององค์ประกอบจึงเป็นข้อดีΩΩ

นอกจากนี้ฉันต้องการให้วงจรสามารถนำมาใช้ซ้ำสำหรับแอปพลิเคชันอื่นที่อาจมีประสิทธิภาพแย่ลง ตัวอย่างเช่นถ้าผมใช้รุ่นที่ถูกกว่าของสิ่งทอแนวต้านของฉันอาจจะไม่ดีเท่าที่ 100 300 \ΩΩ

เส้นทางสัญญาณ

[สิ่งทอ] -> [สะพานวีทสโตน] -> [lowpass] -> [แอมป์เครื่องมือ] -> [ADC] -> [AVR]

ความต้องการ

ดังนั้นฉันกำลังมองหา ADC ที่จะตอบสนองความต้องการของฉัน ADC ควรเป็น:

  1. 16bits +
  2. ใช้งานง่ายที่สุดเท่าที่จะทำได้: ดีกว่าถ้ามีรหัสอินเตอร์เฟสเขียนไว้แล้วสำหรับ AVR / Arduino ...
  3. ... แต่ในขณะเดียวกันก็ครอบคลุมมากที่สุดเท่าที่จะเป็นไปได้: ฉันเคยเห็น ADC บางตัวที่มีฟิลเตอร์กรองความถี่ต่ำและ PGA ในตัว - ดีกว่าตราบใดที่มันไม่ได้ทำให้การตั้งค่าเจ็บปวด
  4. 8+ ช่องหรือถ้ามันง่ายที่จะใช้งาน 2x4+ ช่อง แก้ไข: ถ้าฉันใช้สะพาน Wheatstone บางทีฉันต้องการ 8 ช่องสัญญาณที่แตกต่างกัน (ดังนั้น 16 ช่อง) ...
  5. ฉันไม่คิดว่าแรงดันไฟฟ้าในการทำงานมีความสำคัญ ... (ดีที่สุดถ้าไม่สูงกว่า 5V)
  6. Surface Mount
  7. ไม่จำเป็นต้องมีราคาถูก (แบบครั้งเดียว)
  8. SPI กับ I2C ไม่สำคัญว่าฉันคิดว่า ...
  9. 100+ Hz

วิจัย

จนถึงผ่าน Googling ฉันได้พบชิปต่อไปนี้:

และแบบฝึกหัดต่อไปนี้:

อ้างอิงแรงดันไฟฟ้า?

สุดท้ายบางคนได้แนะนำการอ้างอิงแรงดันไฟฟ้าที่มีความแม่นยำเช่นอุปกรณ์ Analog REF19xชุด คุณคิดว่าจำเป็นหรือไม่ ความละเอียดเป็นสิ่งสำคัญสำหรับฉันอย่างแน่นอน

ข้อสรุป

แจ้งให้เราทราบหากคุณมีคำแนะนำใด ๆ ! ฉันยังไม่แน่ใจว่าสิ่งที่ฉันกำลังมองหาดังนั้นเคล็ดลับในการตัดสินใจได้รับการชื่นชม


ฉันหวังว่าจะหลีกเลี่ยงเรื่องราวแบบนี้: arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1264346368
เทอเรส

@msutherl - มันจะเป็นเรื่องใหญ่ถ้าคุณต้องใช้ mux เพื่อเชื่อมต่อกับ ADC นี้หรือไม่? คุณจะมีช่วงเวลาที่ยากลำบากในการหา 16-channel, 16+ bit ADC แต่ส่วนที่ 1-channel หรือ 2-channel นั้นค่อนข้างง่าย ...
Kevin Vermeer

1
บิตเพียงอย่างเดียวไม่ได้กำหนดช่วงไดนามิก ในทางทฤษฎีตัวแปลง 24 บิตอาจมีช่วงไดนามิกที่ 144 dB แต่ตัวแปลงที่แท้จริงคือ 100-120 dB หรือมากกว่านั้น คุณแน่ใจหรือว่าต้องการความละเอียดมากสำหรับเซ็นเซอร์ตรวจสอบการยืด? คุณกำลังพยายามจัดการเซ็นเซอร์ตรวจจับการยืดแตกต่างกันมากมายที่มีค่าต่างกันหรือ มันจะเป็นการดีกว่าถ้าใช้แอมพลิฟายเออร์แบบผันแปรฉันจะคิดและปรับมันสำหรับแต่ละอัน คุณจะต้องทำการปรับเทียบนั้นสักแห่ง
endolith

1
คุณต้องการ 100Hz + สำหรับเซ็นเซอร์แต่ละตัวหรือสำหรับเซ็นเซอร์ทั้งหมดหรือไม่ ด้วย ADC แบบหลายช่องสัญญาณคุณมักจะได้รับ 1 ADC และ mux ดังนั้นคุณจะต้องแบ่ง SPS ตามจำนวนช่องสัญญาณ (หรือมากกว่านั้นถ้าคู่ mux / adc ไม่สามารถสลับช่องได้อย่างรวดเร็ว)
jpc

1
@msutherl ใช่หม้อขยายแบบแมนนวลหรือตัวขยายสัญญาณแบบตั้งโปรแกรมได้ บางอย่างเช่นPGA116สามารถจัดการกับการสุ่มตัวอย่างเซ็นเซอร์ทั้งหมดของคุณในแบบวนรอบที่ได้รับแตกต่างกันสำหรับแต่ละสิ่งที่ทำในซอฟต์แวร์?
endolith

คำตอบ:


7

ADS1256จาก TI มี 24 บิตช่อง 24 บิตเดียวที่มีบัฟเฟอร์อินพุตความต้านทานสูงและ PGA โครงการ OpenEXG มีรหัส PICเพื่อเชื่อมต่อกับมัน (พวกเขาใช้สองช่องทางรุ่น ADS1255 แต่มันควรจะเหมือนกัน)

หากคุณต้องการอินพุตที่แตกต่างกันนั่นคือADS1298ซึ่งมี 8 ช่องสัญญาณ PGAs และ A / Ds การอ้างอิงภายในรวมถึงวงจร ECG / EEG ซึ่งคุณสามารถละเว้นได้ ฉันไม่แน่ใจว่าคุณสามารถค้นหารหัสตัวอย่างสำหรับรหัสนี้ได้ไหม

หากคุณกำลังมองหาความละเอียดการอ้างอิงสัญญาณรบกวนต่ำที่แม่นยำนั้นเป็นสิ่งจำเป็น


5

เป็นความคิดที่แปลกใหม่ฉันสงสัยว่าพวกคุณคิดอย่างไร:

ลำดับขนาดหนึ่งดูเหมือนจะเป็นการเปลี่ยนแปลงที่มากพอที่จะวัดได้โดยตรงในวงจรแบ่งแรงดัน

จากนั้นคุณสามารถใช้ ADC ขนาดเล็กลงและเปลี่ยนกระแสไฟฟ้าผ่านเซ็นเซอร์ แหล่งจ่ายแรงดันไฟฟ้า PWM ที่ถูกกรอง + ผู้ติดตามแรงดันไฟฟ้า (อาจเป็นทรานซิสเตอร์ NPN หนึ่งตัวหากคุณมีต้นขาบนพื้นที่ว่าง) อาจช่วยปรับปรุงช่วงไดนามิกของคุณได้อย่างมาก

คุณสามารถใช้หนึ่งหรือสองสิ่งเหล่านี้และเปลี่ยนแรงดันเมื่อวัดเซ็นเซอร์ที่แตกต่างกัน


ไม่ธรรมดาเลย ในความเป็นจริงถ้าเขาต้องการใช้ไมโครคอนโทรลเลอร์ขนาดเล็ก 8 บิตด้วยวิธีนี้เขาสามารถหลีกเลี่ยงการจัดการกับค่า 24 บิตและความซับซ้อนอาจน้อยกว่าการเชื่อมต่อ ADC ที่ซับซ้อนเหล่านี้ ช่วงไดนามิกสามารถเป็นผลรวมของช่วงไดนามิกของ ADC และ PWM ในกรณีที่เหมาะสมที่สุด ในทางกลับกันดูเหมือนว่าสำหรับหลาย ๆ คนการออกแบบอะนาล็อกนั้นยากกว่าดิจิตอลดังนั้นเพียงใช้ 24 บิต ADC อาจจะง่ายกว่า นอกจากนี้ช่วงไดนามิกของ ADC สามารถเพิ่มขึ้นได้โดยการสุ่มตัวอย่างและการกรองดิจิทัล ... ดีไม่ใช่เรื่องง่ายอีกต่อไป
Jaroslav Cmunt

@Jaroslav ขอบคุณ 1. เขามีสะพานวีตสโตนอยู่แล้วดังนั้นฉันคิดว่าเขาไม่กลัวส่วนอะนาล็อกโดยสิ้นเชิง :) 2. ความละเอียดเพิ่มเติม 1 หรือ 2 บิตควรจะทำได้โดยตัวกรองผลรวมการรันอย่างง่าย
jpc

1
แน่นอน! นี่คือลิงค์สำหรับ OP: http://www.dspguide.com/ch15.htm
Jaroslav Cmunt

3

หากความกังวลหลักของคุณคือการมีช่วงไดนามิกกว้างสำหรับ "เซ็นเซอร์" ใด ๆ ที่ระบุคุณอาจพิจารณาใช้ DAC (หรือแม้แต่แหล่งจ่ายแรงดันไฟฟ้าที่ควบคุม MPU พิน) เพื่อปรับแอมป์ชดเชย / ขยายของเครื่องขยายเสียงเพื่อปรับเปลี่ยนประสิทธิภาพของระบบสำหรับวัสดุต่างๆ

คุณอาจทำตามขั้นตอนการรับตัวแปรนี้ด้วยวงจรการรวมประจุเพื่อให้คุณสามารถปรับความไวของสัญญาณได้อย่างละเอียดโดยปรับระยะเวลา "การเปิดรับแสง"


0

หากคุณมีพลังงานในการคำนวณเพียงพอสำหรับอัตราตัวอย่างที่คุณต้องการให้พิจารณาตัวกรองดิจิทัล Savitzky-Golayกรอง f / อดีต

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

การกรองทั้งหมดจะกระทำบนพีซีในสภาพแวดล้อมการประมวลผลสัญญาณเรียลไทม์
เฉลียง

0

ทำไมไม่เปลี่ยนเป็นมากถึง 11 และใช้ TI ADS1262 ADS1262มันเป็น ADC แบบ 32 บิตโดยมี 11 อินพุตและ PGA!

ADS1262

ด้วย 32- บิตคุณสามารถทดลองอะไรก็ได้ และมันก็ไม่ได้แพงอย่างนั้น ยิ่งกว่านั้นหากคุณกำลังทำสิ่งเหล่านี้เพียงรับฟรีตัวอย่าง


ตัวเลือกอื่นคือการใช้ PSoC นี่คือไมโครคอนโทรลเลอร์ที่ประกอบด้วยบล็อกแอนะล็อกและดิจิทัลที่สามารถกำหนดค่าได้ใหม่ซึ่งคุณสามารถใช้เพื่อสร้างฟังก์ชั่นทุกประเภท คุณสามารถเลือกหนึ่งรายการด้วย ADC แบบ 16 บิต, PGA, DAC และตัวกรองดิจิตอลเพื่อสร้างตัวกรองอัตโนมัติ, การตัดแต่งอัตโนมัติ, การสุ่มตัวอย่างมากเกินไป, การกรองแบบดิจิตอล, ADC!

PSoC38xx

การเขียนโปรแกรมสิ่งต่าง ๆ เหล่านี้มันเป็นความงุนงงในขณะที่คุณวาดแผนผังที่คุณต้องการโดยเลือกฟังก์ชั่นที่กำหนดไว้ล่วงหน้าจากรายการ จากนั้นเขียนรหัส C และคุณก็ออกไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.