Thật không may là DNL, ​​INL và ENOB kém trên ADC


8

Tôi hiện đang cố gắng mô tả MCU và đó là các thiết bị ngoại vi, đặc biệt là ADC trên tàu. Tuy nhiên, chạy các quy trình kiểm tra thông thường (ví dụ sóng hình sin cho ENOB và răng cưa cho DNL và INL), tôi thấy rằng kết quả khá kém. Tóm lại, ADC "là" 12 bit - có nghĩa là người ta sẽ mong đợi khoảng 10 bit độ phân giải. Tuy nhiên, bất kể tôi cố gắng gì, ENOB dường như cao nguyên khoảng 8,5 bit. Tương tự như vậy với DNL và INL - kết quả tốt nhất tôi nhận được là khi tín hiệu được ghép quá 64 lần. Bảng dữ liệu ở trang 44 nói rằng người ta có thể mong đợi DNL ở khoảng ± 3 LSB - tuy nhiên, đây là những gì tôi nhận được khi tôi chồng chéo. Các đỉnh tín hiệu thô ở khoảng 7 LSB. Có một vài điều mà tôi đã thử cho đến nay:

  • Đặt một tụ điện 10 nF trên đầu vào ADC và mặt đất (hoạt động ở một mức độ nào đó - không có nó ENOB là 7.5)
  • Oversampling 4x, 8x và một vài cái khác lên tới 256x. Điều này - như người ta có thể mong đợi - cũng cải thiện kết quả, mặc dù không đáng kể. Quá khổ lớn hơn tạo ra kết quả tốt hơn trong khi 4x gần như giống hệt với không quá khổ.
  • Làm chậm đồng hồ mô-đun ADC và tăng cửa sổ lấy mẫu. Không ai trong số này đặc biệt hiệu quả. Việc tăng cửa sổ lấy mẫu có tác động tích cực nhỏ đến ENOB và DNL. Làm chậm đồng hồ xuống thực sự không có tác dụng.
  • Tương tự, sử dụng các tham chiếu bên ngoài hoặc bên trong dường như không tạo ra hiệu ứng, mặc dù tôi chưa thực hiện nhiều thử nghiệm với tham chiếu bên ngoài - có thể đó là điều tiếp theo cần xem xét. Một chỉnh sửa nhỏ để tham khảo bất cứ ai có thể đọc nó một ngày - sử dụng tài liệu tham khảo bên ngoài trong trường hợp của tôi mang lại kết quả tồi tệ hơn. Nói cách khác, tham chiếu nội bộ trên MCU của tôi dường như chính xác hơn - hoặc tham chiếu bên ngoài không tốt như tôi mong đợi.

Bây giờ, câu hỏi đặt ra là tại thời điểm nào người ta chấp nhận rằng ADC chỉ có chất lượng kém hoặc bị hư hỏng bằng cách nào đó? Những thử nghiệm nào khác tôi có thể thử để cải thiện các đặc tính ADC. Lưu ý rằng tôi tạo các tín hiệu đầu vào với bộ tạo chức năng. Tại thời điểm này tôi chỉ bị mắc kẹt - tức là hết chủ đề diễn đàn để đọc - và tôi thực sự sẽ đánh giá cao bất kỳ lời khuyên nào.


Bạn đã kiểm tra PS? Là nó chuyển chế độ? Nếu có, bạn có thể đặt LDO giữa PS và ADC không? Bạn đã kiểm tra chất lượng của đồng hồ ADC chưa?
Claudio Avi Chami

Những lỗi này giống như dự kiến. Datasheet nói trong trường hợp xấu nhất 6 LSB. Bạn có thể thử một số hiệu chuẩn hoặc tốt hơn là sử dụng một ADC riêng cho các phép đo chính xác.

@ClaudioAviChami Tôi tin rằng tôi là nguồn cung cấp năng lượng tuyến tính. Đó là Rigol DG2041A. Bạn có thể gợi ý cho tôi về nơi tôi có thể bắt đầu bằng cách kiểm tra đồng hồ ADC - một tìm kiếm nhanh trên Google không có triển vọng :)
fandor

1
Trở kháng nguồn nào đang nuôi ADC? Bạn có thể cần một bộ khuếch đại đệm.
Brian Drumond

@BrianDrummond Tôi sẽ đảm bảo đo sáng hôm đó khi tôi cài đặt và đăng nó ở đây. Cảm ơn vì những đề suất của bạn!
fandor

Câu trả lời:


11

Cá nhân, tôi không phải là một fan hâm mộ lớn của các quy tắc ngón tay cái, nhưng có một vài quy tắc đặc biệt chính xác mà thậm chí tôi còn tạo ra một ngoại lệ.

Một trong những quy tắc đó như sau:

Thiết bị ngoại vi ADC vi điều khiển luôn khủng khiếp.

Luôn luôn. Không phải là loại khủng khiếp mà bạn vừa giảm. Loại khủng khiếp khiến bạn khóc trong tư thế bào thai khi tắm.

Tôi trẻ con, nhưng chỉ một chút. Để trả lời câu hỏi của bạn, vâng, ADC thực sự tệ đến mức đó, và vâng, bạn nên chấp nhận nó. Lưu ý từ chối trách nhiệm lớn nêu rõ "Áp dụng điều kiện hoạt động." trong biểu dữ liệu.

Bạn phải nhớ rằng đối với một số bộ phận nhất định (như MCU), biểu dữ liệu cũng là tài liệu tiếp thị và MCU thường cạnh tranh ở các thiết bị ngoại vi hoặc tiêu thụ điện năng (hoặc cả hai). Vì vậy, số liệu cho những thứ như ADC thường sẽ là về mặt kỹ thuậtchính xác, miễn là bạn sử dụng ADC trong cùng hoàn cảnh vô lý và không thực tế, họ đã thực hiện phép đo cho biểu dữ liệu. Một yêu thích tôi thường thấy là đo ENOB với tất cả các thiết bị ngoại vi khác cũng như lõi bộ xử lý thực sự bị tắt hoàn toàn trong một số giấc ngủ sâu. Một cách khác là sử dụng phần mềm xử lý hậu kỳ quan trọng và các kỹ thuật tương tự như quá khổ để lấy số đo. Tôi không nghĩ rằng tôi đã từng thấy một bảng dữ liệu MCU không chỉ định ADC về 'đây là điều tốt nhất bạn có thể đạt được, và chúng tôi có thể hoặc thậm chí không cho bạn biết cách chúng tôi quản lý nó' hơn là 'đây là thông số kỹ thuật trước khi bạn cố gắng dọn sạch tín hiệu trong phần mềm'.

Và, để rõ ràng, có vẻ như phần này có một ADC khá tốt, ít nhất là so với tất cả các ADC MCU khủng khiếp khác. 8,5 bit? Sự sung sướng như vậy! Tư sản quá! Hầu hết thời gian bạn sẽ nhận được có lẽ 6 bit từ một ADC 10 bit trong một MCU. Hãy nhớ rằng, khi họ nói độ phân giải 12 bit, có nghĩa là có 12 bit bạn có thể đọc từ một số thanh ghi ở đâu đó. Không có hàm ý rằng họ sẽ không có 12 bit tiếng ồn vô dụng. Lời hứa duy nhất là sẽ có 12 bit của một cái gì đó .

Bây giờ, tại thời điểm này, bạn có thể hơi nghi ngờ rằng các thiết bị ngoại vi tương tự này sẽ luôn khủng khiếp như vậy, hoặc ít nhất, tự hỏi tại sao một số công ty chip không đơn giản phát hành MCU với mặt trước tương tự nửa chừng.

Chà, họ không thể. Không quan trọng là tài liệu tham khảo thực sự tốt như thế nào, đó không phải là vấn đề ổn định. Đó là tiếng ồn. Và vật lý.

Đơn giản là không thể tạo ra một ADC hiệu suất cao (hoặc thực sự, chỉ là hiệu suất tầm thường) trên cùng một silicon chết như MCU. Và nó chỉ mất một gotchya để tăng hiệu suất tương tự. Trong trường hợp này, không có một gotchya, mà là một vài.

Đầu tiên, chỉ cần một chuyển đổi bóng bán dẫn CMOS sẽ đổ tất cả các loại sóng hài và nhiễu trực tiếp vào, tất cả mọi thứ, và sẽ kết hợp thành (bạn đoán nó) mọi thứ, khi nó chuyển đổi. Chúng tôi có xu hướng nghĩ về CMOS như là công suất thấp (và nó là), nhưng nó là giữ giá trị trong tâm trí rằng sức mạnh CMOS không sử dụng một cách hiệu quả là zero - trừ khi một transistor đang thay đổi trạng thái. Và họ thay đổi trạng thái rất nhanh, theo thứ tự hàng chục đến hàng trăm picos giây. Khi bạn mất hàng tá milliamp bị tiêu thụ bởi thứ gì đó tiêu thụ cơ bản không có năng lượng tĩnh, và tất cả dòng điện đó đang bị biến hoàn toàn thành cường độ cao, 100ps hiện tại của hàng triệu con khốn nhỏ bé theo nghĩa đenchuyển đổi, chuyển đổi trong tổng hợp ... tốt, điều đó sẽ điều chỉnh lại mọi thứ một chút. Vài milliamp đó độc ác hơn nhiều so với vẻ ngoài của chúng, ít nhất là đối với những thứ tương tự. Công suất thấp noise tiếng ồn thấp. CMOS là công suất thấp vì nó chỉ cần nguồn để chuyển đổi. Nhưng nó chuyển mạnh hơn một giọt bass dubstep.

Tất cả các gai đó đều phải xé toạc chất nền, chất nền mà ADC chia sẻ và đủ điện trở để tạo ra sự bật lên cục bộ trong chất nền không có ý nghĩa đối với các mạch kỹ thuật số, nhưng thực sự rất rắc rối đối với bất kỳ mạch tương tự nào.

Và thực sự không có cách nào xung quanh đó. Đó chỉ là một vấn đề. Mặt khác là thực tế không thể tạo ra bố cục tương tự hiệu suất cao có thể cùng tồn tại với MCU, điều này cũng sẽ cần sử dụng các chân đó như GPIO, và các cân nhắc khác làm gián đoạn nghiêm trọng bất kỳ cơ hội nào của phần tương tự tốt bố trí.

Bây giờ, có một vài MCU chuyên dụng với các ADC được cải thiện phần nào đạt được điều này bằng cách thực sự có hai khuôn silicon hoàn toàn riêng biệt trong một gói, được kết nối bằng dây liên kết, do đó tạo ra sự cách ly cơ chất. Tuy nhiên, bạn sẽ trả tiền cho tính năng này và kết quả vẫn sẽ kém hơn so với ADC chuyên dụng do sự gần gũi tuyệt đối.

Ồ, và tôi thậm chí chưa từng chạm vào làm thế nào tất cả đều cho rằng bạn có một bố cục bên ngoài hoàn hảo và tình huống tiếp đất và tách rời theo mọi cách liên quan đến phần analog và kỹ thuật số của bạn. Điều đó một mình là không cần thiết, chỉ cần hỏi Henry Ott .

Vì vậy, để kết luận, tôi sợ rằng ADC trên chip của bạn thực sự khủng khiếp như vậy. Chính xác như mọi MCU ADC khác. Lấy làm tiếc. Hoặc nó đủ tốt - và cho nhiều ứng dụng (được hỗ trợ bởi một số nguồn phần mềm khá thông minh ry - chơi chữ!) - đó là. Thật đáng kinh ngạc những gì người ta thực sự có thể làm được ngay cả với hiệu suất tương tự kém có sẵn miễn là bạn thông minh. Nhưng thông minh chỉ có thể mang bạn đến nay. Nếu bạn muốn số bit hiệu quả, lạnh, bạn thực sự chỉ cần cắn viên đạn và sử dụng một ADC chuyên dụng cùng với cách bố trí và tách rời PCB cẩn thận, hoặc xem xét sử dụng một phần chuyên dụng hơn (như các gói đa điểm).


3
+1 cho Trích dẫn trong ngày: "CMOS có công suất thấp vì nó chỉ cần năng lượng để chuyển đổi. Nhưng nó chuyển đổi mạnh hơn so với thả bass dubstep."
Araho

Tôi lưu ý rằng phần này sử dụng ADC kiểu phân phối lại phí, có các vấn đề duy nhất của riêng họ: analog.com/en/search.html?q=an-931
Peter Smith
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.