Đề xuất cài đặt mặc định cho các chân không sử dụng trên STM32 (ARM Cortex M3) - kéo lên / kéo xuống?


13

Chúng tôi hiện đang sử dụng các biến thể khác nhau của họ vi điều khiển STM32. Tôi muốn biết như sau:

1) Các cài đặt mặc định được khuyến nghị cho các chân của vi điều khiển nói chung là gì nếu bạn có tùy chọn để chọn cả kéo lên hoặc kéo xuống? Những ưu và nhược điểm của việc đi với người này hay người kia là gì? (Giả sử bạn sẽ thiết lập chúng theo mặc định làm đầu vào)

2) Đặc biệt tôi muốn biết phải làm gì với các chân không sử dụng cho họ vi điều khiển STM32. Rõ ràng với tôi rằng chúng ta không nên để các chân nổi, (đó là tất cả những gì bảng dữ liệu nói ,:(), nhưng tôi có nên đặt chúng thành đầu vào với kéo lên hoặc đầu vào có kéo xuống không? Đặc biệt, tôi muốn để chọn một cài đặt ít nhạy cảm nhất với ESD và nếu có thể, sẽ tiêu thụ ít năng lượng nhất.

3) Đối với các chân quan trọng, chúng ta nên dựa vào phần sụn để thiết lập chính xác các chân về trạng thái mặc định chính xác hay trách nhiệm này thuộc về phần cứng bên ngoài (kết nối kéo lên hoặc kéo xuống bên ngoài)? Nếu các giá trị được chọn cho các điện trở bên ngoài lớn hơn các lần kéo hoặc kéo xuống bên trong, cài đặt trong phần sụn không thành vấn đề.

Điểm chuyên nghiệp mà tôi có thể thấy khi thực hiện ở trên là nếu micro không khởi tạo đúng cách vì bất kỳ lý do gì (phần cứng bị lỗi hoặc thích), chúng tôi không dựa vào phần sụn để thiết lập pin chính xác.

Con tôi thấy là chi phí nhiều hơn để làm điều này là phần cứng.

Bất kỳ ánh sáng mà bạn có thể làm sáng tỏ ở trên sẽ được thực sự đánh giá cao.

Cảm ơn..


Tại sao không đặt chân không sử dụng làm đầu ra? Điều đó sẽ loại bỏ vấn đề kéo lên và kéo xuống.
Sói Connor

Lưu ý: "Trong bất kỳ sự kiện thiết lập lại nào, tất cả các GPIO đều là đầu vào nổi. Điều này ngăn ngừa mọi thiệt hại do tai nạn cho GPIO trong trường hợp khẩn cấp." nhúng
lab.com/blog/stm32

Câu trả lời:


10

Câu trả lời này không cụ thể về STM32 mà dựa trên kinh nghiệm và nhiều cuộc thảo luận như vậy trong nhiều (nhiều) năm. Những người khác có thể thêm vào điều này - nó bao gồm những điểm chính (tôi nghĩ) nhưng có thể không đầy đủ.

Thật đáng khích lệ khi thấy ai đó hỏi những câu hỏi đơn giản nhưng cơ bản này và cho thấy nhận thức về việc "những điều nhỏ bé" như vậy có thể 'băng đảng' như thế nào trong cuộc sống thực.

tức là "Nếu vi mô không khởi tạo đúng cách ..." thực sự đọc "... khi vi mô không khởi tạo đúng cách ..." :-) - và rõ ràng là bạn nhận ra điều này.

Vì thế:

  • Việc sử dụng pullup hoặc kéo xuống bên ngoài là điều cần thiết cho những người thực sự quan tâm đến việc có được kết quả được xác định rõ. Đây là việc phải làm lớn nhất duy nhất ở đây. Tất cả phần còn lại là một phần thưởng. tức là Cài đặt thành đầu vào với pullxxx nội bộ là một sự thỏa hiệp sẽ hầu như luôn hoạt động.
    NHƯNG nếu "hầu như luôn luôn" không đủ tốt cho thiết kế của bạn thì bạn cần xxxs kéo bên ngoài.

  • Pullup hoặc xuống dường như không có kết quả tốt hơn áp đảo. Nó có thể khác nhau giữa các IC có thể được xác định từ bảng dữ liệu. Tất cả mọi thứ đều bằng nhau (như có thể) Tôi thích kéo xuống vì có khả năng rò rỉ thấp hơn đối với dòng điện bên ngoài của thiết bị - nhưng điều này có thể được tối thiểu trong môi trường phủ PCB phù hợp và / hoặc môi trường lành tính.

  • Bạn có thể muốn xem xét hành động khởi động nếu bạn thực sự quan tâm. ví dụ: pin kéo lên sẽ bắt đầu thấp và vận chuyển cao ở một số giai đoạn. Một pin kéo xuống có thể sẽ ở mức thấp trong suốt. Điều này có lẽ không quan trọng nhưng được đề cập cho đầy đủ.

  • Tính nhạy cảm của ESD sẽ là thiết bị cụ thể, khá có khả năng đối xứng và trung bình trên nhiều bộ xử lý có thể ủng hộ kéo xuống vì trình điều khiển có xu hướng chìm tốt hơn nguồn nếu không đối xứng. Nếu bạn quan tâm rất nhiều về ESD thì bạn có thể muốn sử dụng các đầu ra thấp với các lần kéo xuống - vì một đường dẫn trở kháng thấp sẽ (có thể) cung cấp khả năng bảo vệ tốt hơn cho ESD. Nhưng nếu bạn quan tâm rất nhiều về ESD, bạn sẽ muốn thiết kế cho nó theo những cách khác và không dựa vào bảo vệ trong IC làm bảo vệ chính của bạn.

  • Câu hỏi lại 3 - pullxxx bên ngoài là mong muốn nhưng có vẻ an toàn khi sử dụng các giá trị ở mức cao giới hạn của thiết kế phù hợp và sau đó sử dụng song song các xxx bên trong nếu muốn. Tuy nhiên, vì các xxx kéo nội bộ thường có Giới hạn 2: 1, bạn có thể nhận được R lớn nhất và dòng nhỏ nhất bằng cách chỉ sử dụng bên ngoài. Tất nhiên những gì bạn muốn tránh là kéo lên bên ngoài và kéo xuống bên trong hoặc ngược lại - nhưng đó không phải là một vấn đề.

  • Khi tôi nói "... giới hạn cao cấp của thiết kế phù hợp ..." Tôi chỉ muốn nói điều đó chứ không phải "vượt quá giới hạn ...". tức là pin sẽ có giá trị điện trở xác định cho phép trường hợp xấu nhất Vin được đáp ứng. Một điện trở lớn hơn có thể mất ít dòng điện hơn trong điện trở nhưng có thể bắt đầu bật rất nhẹ công tắc bên trong. tức là có thể có Rpulldown_cản so với đánh đổi hiện tại tổng thể thấp nhất khi trình điều khiển bên trong bắt đầu thấy dòng điện rò rỉ (sẽ cực kỳ nhỏ) làm tăng dòng điện đến bộ điều hướng và thì thầm rất nhẹ.

  • Nếu bạn sử dụng ví dụ như kéo xuống, thì bạn có thể thấy nó có công suất thấp hơn để đặt chân thành đầu ra và khiến nó ở mức thấp, nhưng đây là một tùy chọn có thể được quyết định trong khóa học do.

  • Hầu như là một bên - KHÔNG BAO GIỜ cho phép điốt bảo vệ để xử lý "bất kỳ dòng đáng kể" ở bất kỳ giai đoạn nào trong quá trình hoạt động. Cho phép họ làm như vậy có thể dẫn đến hành động xử lý hoàn toàn không thể giải thích. Càng ít hiện tại, cơ hội để mọi thứ sai càng thấp - và càng khó tìm thấy nó khi họ làm.


1
Câu trả lời rất sâu sắc. Cảm ơn rât nhiều. Bạn có thể giải thích thêm một chút về vấn đề này - "Nếu bạn quan tâm nhiều đến ESD thì bạn có thể muốn sử dụng đầu ra thấp khi kéo xuống - vì một đường dẫn trở kháng thấp sẽ (có thể) cung cấp khả năng bảo vệ tốt hơn cho ESD"? Nếu cài đặt thành đầu ra - bạn sẽ mở cống hoặc đẩy kéo (cao / thấp) theo mặc định?
IntelliChick

2

Bạn đang tối ưu hóa để làm gì? Tối ưu hóa chi phí chỉ ra rằng bạn đặt các chân không sử dụng thành đầu ra. Tối ưu hóa độ tin cậy chỉ ra rằng tất cả các mức pin được xác định, ngay cả trong khoảng thời gian ngắn trước khi phần sụn có cơ hội đặt các chân không sử dụng thành mức mà nó cho là phù hợp.

Tôi đã từng phải kiểm tra các tính toán độ tin cậy của bo mạch xử lý. Nó được thiết kế tốt, với các nắp tách rời ở mọi nơi và các điện trở kéo vào bất cứ thứ gì trên tất cả các chân I / O. Kỹ sư độ tin cậy lấy ra cuốn sổ tay của mình, thêm tỷ lệ thất bại của tất cả các thành phần liên quan và kết thúc với một con số bị chi phối bởi tỷ lệ thất bại của các thành phần thụ động. Con số đó cao hơn yêu cầu, vì vậy chúng tôi đã có một vấn đề. Loại bỏ các điện trở đó, và con số sẽ ổn. Nhưng theo đề nghị đó, các kỹ sư điện bắt đầu hét lên trong giận dữ (đúng vậy, IMO). Tôi không nhớ lại câu chuyện đã kết thúc như thế nào; Tôi nghĩ rằng chúng tôi đã đến khách hàng và yêu cầu phân phối vì đã bỏ qua tỷ lệ thất bại của các điện trở từ tính toán, với lý do chúng không mang dòng điện đáng kể.


1

Tôi chỉ cấu hình các chân không sử dụng làm đầu ra và đặt chúng ở mức thấp.


bình thường bạn sẽ đặt chúng để đẩy-kéo hoặc mở cống? Và trong cả hai trường hợp, bạn sẽ đặt chúng ở mức thấp? Bạn có thể cho tôi biết lý do tại sao bạn sẽ chọn cái này hơn cái kia không.
IntelliChick

@Leon Heller - đáp ứng bài kiểm tra "thường hoạt động", nhưng không thành công "khi bộ vi xử lý không khởi tạo đúng, hoặc khi Murphy lật một cách ngẫu nhiên, như anh ta thỉnh thoảng làm." Chân của bạn được đặt thành đầu ra & đặt thấp , hoạt động.
Russell McMahon
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.