STM32 Tiếng ồn 2


8

Tôi vừa thử nghiệm thiết kế thứ hai của mình với STM32F2, bây giờ là STM32F207ZFT6, hành vi của ADC giống như trong ứng dụng đầu tiên của tôi - tiếng ồn mạnh trong ADC.

Phần thiết yếu của sơ đồ bảng

Nhiễu của đầu vào hiện tại mà không có bất kỳ tín hiệu nào được kết nối:

tín hiệu nhận được với pin nổi

Lưu ý: Trong các biểu đồ tín hiệu ở trên, trục dọc nằm ở các bit ADC, không tính bằng volt!; đừng nhầm lẫn với truyền thuyết của nó „[V], vì thử nghiệm này, chúng tôi đã sử dụng chương trình sửa đổi của mình để xem dữ liệu ADC thô.

Tiếng ồn tương tự xuất hiện ngay cả khi chân tương tự CPU rút ngắn thành GND, như được hiển thị ở đây: tín hiệu đầu vào với pin được nối đất

Có những đột biến vĩnh viễn trên 30 LSB và nhiều hơn nữa trong tín hiệu được lấy mẫu, mặc dù theo ý kiến ​​của chúng không nên vượt quá 5-10 LSB.

Một chi tiết khác:

  • PCB 2 mặt, ở phía dưới có các kết nối khác nhưng hầu hết được kết nối với tín hiệu GND - phổ biến cho cả kỹ thuật số và analog, mặt đất tương tự không bị tách rời. Vì mức tiêu thụ của bảng là tối thiểu, dưới 100 mA, tôi nghĩ nó không gây ra tiếng ồn như vậy.

  • tham chiếu điện áp VREF 3.3V được đệm bởi opamp, bị chặn bởi 100nF và tantallum 10uF song song, tương tự với VREF / 2; mỗi chân nguồn của bộ xử lý bị chặn với nắp 100nF

  • trong ứng dụng cũ của chúng tôi, chúng tôi đã sử dụng cùng một khái niệm thiết kế, nhưng bộ xử lý được sử dụng là AduC834; nó cũng có ADC 12 bit và nhiễu tín hiệu chỉ là một số LSB, không có vấn đề gì; sự khác biệt chính là tham chiếu điện áp bên trong AduCs đã được sử dụng, không có bên ngoài

  • chúng tôi đã thử nghiệm để ngắt kết nối pin mặt đất tương tự của bộ xử lý khỏi bảng GND chung và để kết nối nó với dây phụ trực tiếp với mặt đất VREF tham chiếu điện áp, không có hiệu lực

  • nó là thiết bị đo mạng ba pha, có 3 kênh điện áp tương tự và ba kênh hiện tại với bộ tiền khuếch đại khuếch đại có thể chuyển đổi; Bộ tạo dao động CPU 25 MHz, xung nhịp bên trong 120 MHz theo PLL, xung nhịp ADC là 30 MHz (phù hợp với techspecs), chúng tôi đã thử nghiệm để làm chậm đồng hồ bên trong chính (do đó tất cả các đồng hồ phụ cũng vậy) giảm một phần tư, nhưng không có tác dụng

  • Các mẫu ADC tín hiệu đầu vào định kỳ với tốc độ 128 chuyển đổi trên mỗi chu kỳ mạng 50 Hz, tức là mỗi 156 usec; kết quả được DMA chuyển vào RAM bên trong; dữ liệu từ RAM được truyền qua RS485 cách điện (trên bảng khác) và được hiển thị trong chương trình của chúng tôi. Chúng tôi đã cố gắng kéo dài thời gian chuyển đổi đến mức tối đa, không có hiệu lực

  • Không bao gồm CPU, chỉ có 3 opam, 2 công tắc analog, nhiệt kế I2C và ba công tắc ULN (không được sử dụng trong quá trình thử nghiệm), được cung cấp bởi bộ ổn định tuyến tính LF33, thường được cung cấp bởi 5V DC từ bộ chuyển đổi trên bo mạch khác, nhưng trong quá trình thử nghiệm, bộ chuyển đổi là ngắt kết nối và LF33 được cấp nguồn từ nguồn cung cấp 5V DC trong phòng thí nghiệm rõ ràng. Tôi chắc chắn không có gì ngoài bộ dao động bộ xử lý có thể dao động trên bảng.

  • kiểm tra tín hiệu bằng máy hiện sóng không nhận được kết quả quyết định, tín hiệu quá yếu

Bất cứ ai có kinh nghiệm hiệu suất ADC gia đình bộ xử lý này?

Liên quan đến cường độ tín hiệu: ngay cả khi đầu vào tương tự bị ngắn mạch, tôi thấy nhiễu 5-10 mV (cực đại đến cực đại) trên máy hiện sóng - được đo bằng cáp đồng trục có chiều dài dây nối đất tối thiểu được hàn vào bảng. Với đầu dò tiêu chuẩn, tiếng ồn cao hơn khoảng hai lần có lẽ do nối đất kém hơn (tiếng ồn EMC chung?).

Đây là hình ảnh của hội đồng quản trị của tôi: hình ảnh của hội đồng lắp ráp

Và dưới cùng của bảng: hình ảnh dưới cùng của bảng

Như tôi đã báo cáo ở trên, ngay cả khi tín hiệu được nối đất, nhiễu của khoảng 30 LSB vẫn tồn tại trong dữ liệu chuyển đổi ADC.


Bạn nói tín hiệu quá yếu, sao yếu thế?
Kortuk

Tôi đã báo cáo vấn đề của tôi trong diễn đàn ST quá, có tất cả các liên kết (bao gồm cả bảng ảnh) có: my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/...
Milan

2
Tôi không thấy bất cứ nơi nào gần đủ bỏ qua mũ trên bảng đó để làm cho tôi thoải mái, và tất cả chúng đều là một phần khá xa.
Sói Connor

2
Tên @Fake - Milan không sử dụng sai thuật ngữ này, tham chiếu đến "x LSB's" đề cập đến x lần giá trị tuyến tính của bit có trọng số thấp nhất. Tuy nhiên, "x bit tiếng ồn" có thể đề cập đến 2 ^ x LSB.
Chris Stratton

3
@Chris Stratton - Tôi không đồng ý. "x bit tiếng ồn" đồng nghĩa với "x LSBs". Như vậy, nói "x lần giá trị LSB" có nghĩa là x lần giá trị tuyến tính của bit có trọng số thấp nhất. Tuy nhiên, x LSB có nghĩa là x bit có ý nghĩa nhỏ nhất hoặc phạm vi tuyến tính là 2 ^ x.
Sói Connor

Câu trả lời:


4

Tôi sẽ lập luận rằng ADC có đầu vào thứ 4 ngoài ba trích dẫn của Fred: đồng hồ của nó. Ít nhất là đối với một số loại ADC, nhiễu jitter hoặc pha trên đồng hồ có thể ảnh hưởng đến các phép đo ADC.

Bạn nói rằng bạn có bộ dao động 25 MHz nhưng đang chạy ADC ở 30 MHz, vì vậy bạn có một số PLL liên quan đến việc tạo ra đồng hồ của nó. Nếu điều đó không hoạt động tốt, sự bất thường của nó có thể là một nguồn gây nhiễu chuyển đổi. Bạn có thể thử thay đổi cấu hình phần mềm (thậm chí tạm thời) để không sử dụng PLL và chỉ chạy khỏi đồng hồ đầu vào hoặc chia ra từ nó không?

Tôi tin rằng một số bộ vi điều khiển cũng có một cơ chế đình chỉ hầu hết các mạch kỹ thuật số trong khi đọc ADC để giảm nhiễu. Bạn có thể nhìn vào xem nếu một cái gì đó như thế là có thể.


2

Có nhiều lý do có thể cho tiếng ồn bạn nhìn thấy. Điều quan trọng là phải hiểu rằng ADC có BA đầu vào:

  1. (Các) chân đầu vào (chân được thiết kế làm đầu vào tín hiệu)
  2. (Các) đầu vào tham chiếu (Dout = 2 ^ n * Vin / Vref)
  3. Các chân nguồn (cung cấp + gnd)

Tiếng ồn đối với bất kỳ ai trong số đó có thể tạo ra tiếng ồn mà bạn nhìn thấy và giả sử bản thân ADC không bị lỗi, tiếng ồn phải truyền qua một trong ba đường dẫn đó.

Có thể có hiệu suất ADC tốt khi sử dụng cùng một nền tảng cho analog và kỹ thuật số, nhưng bạn phải bố trí cẩn thận PCB để tất cả các dòng vòng lặp kỹ thuật số được cách ly khỏi các vòng tương tự.

Trong ngữ cảnh này, một vòng lặp là toàn bộ đường dẫn hiện tại, một đường dây tín hiệu hoặc nguồn điện (nên được coi là tín hiệu "nhiễu" trong ngữ cảnh này) có trên PCB. Vì vậy, đối với một đường dây cung cấp năng lượng, nó sẽ từ nơi có nguồn điện vào bảng, dọc theo dấu vết cho đến khi nó đến chân nguồn, thông qua tất cả các bóng bán dẫn trong IC, ra khỏi chân đất, sau đó dọc theo con đường ít kháng cự nhất trở lại nơi sức mạnh vào bảng. Đó là một vòng cung cấp điện.

Nhưng nếu bạn làm tốt công việc bỏ qua nguồn cung cấp, sẽ không có nhiều dòng điện xoay chiều trong vòng lặp đó, bởi vì bạn sẽ có một vòng cung nhỏ hơn, cục bộ hơn của nắp cung cấp cho pin nguồn để nối đất và quay trở lại mặt đất bên của nắp bypass. Nếu tất cả các nguồn cung cấp kỹ thuật số của bạn được bỏ qua chặt chẽ, vòng cung cấp điện của bạn sẽ hầu như sạch sẽ và tất cả các nhiễu kỹ thuật số bị hạn chế để vòng lặp nắp ngắn.

Các vòng tín hiệu (bao gồm cả vòng Vref) hoạt động theo cùng một cách - tín hiệu đi vào, cuộn dây tới ADC, ra khỏi ADC GND và quay trở lại mặt đất tín hiệu (hy vọng là cùng một vị trí nơi tín hiệu bắt đầu). Nếu vòng lặp đó đi qua một vòng kỹ thuật số, bạn có thể bị nhiễu. Vì vậy, thông thường, một thiết kế tín hiệu hỗn hợp tốt sử dụng một GND cho analog và kỹ thuật số sẽ giữ tất cả kỹ thuật số ở một bên và tất cả các bên tương tự, với GND ở cuối bảng ngay tại điểm phân chia. Nó thường không quá khô khan, bạn phải thỏa hiệp, nhưng đó là ý tưởng.

Bạn đề cập "Vì mức tiêu thụ bảng là tối thiểu, dưới 100 mA, tôi nghĩ rằng nó không nên gây ra tiếng ồn như vậy." Đó là nhiều hơn để làm với hệ thống được bỏ qua tốt như thế nào. Một hệ thống 100mA có khả năng bỏ qua kém sẽ có nhiều nhiễu kỹ thuật số hơn trong mặt phẳng mặt đất so với hệ thống 1000mA có khả năng bỏ qua tốt.

Hi vọng điêu nay co ich...


1

Thiết kế bảng thực sự không tôn trọng các quy tắc chung được đề nghị.

Chúng tôi đã kiểm tra lại một lần nữa. Tiếng ồn thông thường của bảng tiêu chuẩn có trên Fig1 tại http://imgur.com/a/TU9RQ .

Để xác nhận sự cố là do nối đất sai, chúng tôi đã thực hiện các sửa đổi sau:

  • gia cố nối đất chung (bảng đã sửa đổi trên hình 2 và tiếng ồn thích hợp trên hình 3)
  • tách mặt đất tương tự khỏi mặt số và kết nối lẫn nhau của chúng tại chân bộ xử lý VSSA (Hình 4).

Không ai trong số họ giúp đỡ. Vì vậy, tôi khá lo ngại vấn đề có thể xảy ra một lần nữa ngay cả sau khi thiết kế lại thành PCB PCB 4 lớp

Để kiểm tra ảnh hưởng của PLL, chúng tôi đã tắt nó và lõi được xung nhịp chỉ bằng tinh thể 25 MHz bên ngoài. Tiếng ồn giảm xuống (Hình 5), nhưng tôi thấy rằng nguyên nhân chỉ do xung nhịp hệ thống thấp hơn (thông thường, lõi được xung nhịp bởi 120 MHz của PLL), chứ không phải do PLL dừng lại, bởi vì khi chúng tôi quay lại PLL ở 25 MHz, tiếng ồn giống như khi không có PLL chạy.

Hiệu quả đáng chú ý duy nhất đạt được bằng cách đo tín hiệu VREF / 2 thông qua chân bộ xử lý riêng lẻ đồng thời với từng cặp điện áp và dòng điện sử dụng bộ xử lý ADC thứ ba và trừ nó từ tín hiệu điện áp và dòng điện - sau đó nhiễu được điều chỉnh giảm xuống còn khoảng một nửa (tại http : //imgur.com/a/EeqUo , biểu đồ màu đỏ phía trên = tín hiệu tiêu chuẩn, biểu đồ màu xanh lam thấp hơn = tín hiệu sau khi đo độ nhiễu nền). Nhưng tôi không thể sử dụng ADC thứ ba để đo tiếng ồn, tôi cần nó cho một nhiệm vụ khác, vì vậy đây không phải là giải pháp cho tôi.


1
Đây không phải là một câu trả lời và vì vậy không nên được đăng như vậy. Điều đó nói rằng, đầu vào đồng hồ của PLL cho ADC với tỷ lệ 1: 1 của bộ dao động đầu vào có lẽ sạch hơn rất nhiều so với tỷ lệ lẻ của chúng. Nếu bạn nghi ngờ tiếng ồn chế độ chung, bạn cần xem xét mọi thứ có tất cả các kênh chung ...
Chris Stratton 17/11/11

Thông thường, osc 25 MHz bên ngoài được chia thành 1 MHz và tần số này được sử dụng để điều khiển PLL; đồng hồ hệ thống 120 MHz của nó được chia cho 4 để có được đồng hồ ADC 30 MHz. Trong quá trình thử nghiệm, đồng hồ hệ thống là 25 MHz (cả trực tiếp từ ext osc và sử dụng PLL) và ADC được điều khiển trực tiếp từ nó (cài đặt trước thành 1), tức là nó chạy ở cùng 25 MHz. Liên quan đến ý tưởng thứ 2 của bạn, có nghĩa là bạn có thể chuyển lõi sang chế độ ngủ trong khi chuyển đổi ADC; ADC được phục vụ bởi DMA mà không thể tắt một cách đơn giản. Nhưng, mặc dù không thể sử dụng được tại ứng dụng của chúng tôi, tôi đồng ý sẽ rất thú vị khi dùng thử.
Milan

Xác định nhận xét trước đây của tôi: Tôi quên có bộ chia trên đầu ra PLL; Vì vậy, trên thực tế, thông thường PLL chạy ở 240 MHz và chia cho hai để có được đồng hồ hệ thống; trong quá trình thử nghiệm, PLL chạy ở 200 MHz và chia cho tám để có được đồng hồ hệ thống 25 MHz.
Milan

@ChrisStratton có vẻ như là chi tiết về cách anh ấy giải quyết vấn đề, điều đó có vẻ không phải là một câu trả lời?
Kortuk

2
@Kortuk "Không ai trong số họ giúp được. Vì vậy, tôi khá lo ngại vấn đề có thể xảy ra một lần nữa ngay cả sau khi thiết kế lại thành PCB PCB 4 lớp" Đối với tôi, tôi cảm thấy rằng câu trả lời này nên được thêm vào như là một chỉnh sửa cho câu hỏi ban đầu. Câu trả lời thứ hai của ông dường như mô tả cách ông giải quyết vấn đề.
m.Alin

1

Tôi đã thiết kế lại PCB thành 4 lớp. Và - thật bất ngờ - tiếng ồn đã tắt! Thông tin chi tiết tại đây .


4
Bạn mất trí rồi à! Một URI ký tự 319 (!), Thậm chí không có siêu liên kết chính xác?
stevenvh

1
Liên kết bị hỏng, tôi nghĩ bây giờ nó đã ở đây - Community.st.com/thread/19850
ogurets

1
@ogurets Và nó lại bị hỏng. Tôi ghét câu trả lời liên kết và diễn đàn nhà cung cấp. "Trang bạn đang tìm kiếm đã bị di chuyển hoặc không tồn tại."
Navin

1
@Navin tôi để cảm thấy nỗi đau của bạn ... google bởi "STM32F2 ADC Signal Noise", bưu chính ngày 28 tháng mười năm 2011 (đối với thời gian sau, họ di chuyển nó): community.st.com/s/question/0D50X00009XkaFz/...
ogurets

@ogurets Cảm ơn! Tôi tò mò về chuyện hậu trường.
Navin
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.