Các biến thể mới của PB PB của ATmega có lỗi trong trình phát hiện màu nâu không?


9

Chúng tôi đã sử dụng vi điều khiển ATmega48 / 88/168/328 thành công trong nhiều năm qua trong nhiều sản phẩm của chúng tôi. Hiện tại chúng tôi đã cân nhắc chuyển từ biến thể A và PA sang biến thể PB mới (vì chúng tôi sẽ cần thêm chân, bộ hẹn giờ và UART trong các sản phẩm mới, vì nó trở nên rẻ hơn và vì dường như các biến thể cũ sẽ bị ngừng sản xuất), vì vậy chúng tôi đã chuyển ra một ATmega328A với ATmega328PB. Nó dường như đi haywire rất thường xuyên sau khi gián đoạn điện . Những vấn đề như vậy không bao giờ xảy ra với các biến thể cũ.

Việc gián đoạn điện thường xuyên là bình thường đối với các sản phẩm của chúng tôi. Chúng tôi sử dụng nguồn cung cấp năng lượng chuyển đổi (như cái này ) được đặt thành 5V và có các tụ điện trong phạm vi 220 DENF trên VCC của ATmega, để giữ cho SRAM tồn tại khi bị gián đoạn điện trong vài phút, để lưu trữ các trạng thái bên trong không phải là nhiệm vụ quan trọng nhưng tăng đáng kể trải nghiệm người dùng bằng cách có sẵn ngay lập tức khi khởi động lại (những trạng thái này thay đổi thường xuyên đủ để làm cho EEPROM không phù hợp). Điều này đã luôn luôn làm việc.

Tuy nhiên, với ATmega328PB mới, sau khi bị gián đoạn nguồn, chip đặt lại mà không có điều kiện đặt lại được tìm thấy trong MCUSR, và đồng hồ dường như bị vướng.

  • bộ dò màu nâu được đặt trên mỗi cầu chì. Chúng tôi đã thử mọi bodlevel có sẵn, lỗi xảy ra trên tất cả chúng.
  • chúng tôi sử dụng 20 MHz bên ngoài, cũng được đặt chính xác cho mỗi cầu chì.
  • chúng tôi đã thử 3 loại chip khác nhau, do đó không phải là lỗi hàn hay lỗi phần cứng khác.

Sau khi xảy ra lỗi, đồng hồ thường đặt tốc độ chậm hơn 2,5 lần, cho biết mcu đang được tạo bởi bộ dao động bên trong 8 MHz. Tuy nhiên, đôi khi sự chậm lại là khoảng 6 lần. Điều này có nghĩa là nó không thể là lỗi phần mềm thay đổi bộ chia đồng hồ, vì tôi không thể đặt cầu chì từ phần mềm và bộ chia đồng hồ không thể chia đồng hồ cho 2,5 hoặc 6.

Vì vậy, nghi ngờ đầu tiên của tôi là cầu chì Phát hiện lỗi đồng hồ mới. Tuy nhiên, bất kể nó được bật hay tắt, hành vi vẫn như cũ.

Để loại trừ tính đặc thù của phần mềm, tôi đã viết một chương trình thử nghiệm đơn giản từ đầu, không có gì khác ngoài việc bật một đầu ra với 100 Hz từ ngắt hẹn giờ và cho biết với đèn LED sau mỗi lần khởi động lại điều kiện thiết lập lại được kích hoạt (như đọc từ MCUSR). Phần còn lại của phần cứng cũng bị loại bỏ, chỉ có mcu và bộ điều chỉnh ở đó (và đèn chỉ báo có điện trở nối tiếp).

Kết quả

Khoảng 2/3 thời gian, không có gì thú vị xảy ra. Sau khi gián đoạn nguồn, mcu tiếp tục công việc của mình, cả hai chỉ báo thiết lập lại màu nâu và bật lại bật sáng.

(trên hình ảnh, màu đỏ là pin được bật và màu xanh là VCC. Trên hình ảnh này, có thể nhìn thấy rõ bronwn-out 2.7 V. Tôi đã thực hiện các thử nghiệm tương tự với các cài đặt màu nâu khác, kết quả hoàn toàn giống nhau, vì vậy tôi sẽ bỏ qua những hình ảnh đó)

nó khởi động lại tốt

Khoảng 1/3 thời gian, lỗi đã nói ở trên xảy ra và khi nguồn điện trở lại, không có đèn báo khởi động lại và bật nguồn nào bị bật sáng! Đầu ra là khác nhau, như thể mcu đang tích tắc với một chiếc đồng hồ lạ. Nó không hỗn loạn, tuy nhiên, nó tiếp tục đánh dấu với cùng tần số.

nó khởi động lại trong trạng thái điên rồ

Thật thú vị, trong tình huống này, bộ phát hiện màu nâu dường như hoàn toàn không hoạt động, bởi vì sau lần gián đoạn nguồn tiếp theo (đôi khi đồng hồ đúng được khôi phục, đôi khi không), có thể thấy rõ rằng đầu ra tiếp tục chuyển đổi tốt sau màu nâu cấp độ đã được thông qua. Trong những tình huống như vậy, đồng hồ đôi khi nhanh hơn, lần khác lại chậm hơn:

Không có màu nâu, đồng hồ nhanh hơn Không có màu nâu, đồng hồ chậm hơn

Trong các thử nghiệm này, tôi đã sử dụng 16K CK / 14CK + 4,1 ms cho độ trễ khởi động (nhưng độ trễ 65 ms không tránh được các vấn đề).

Dưới đây là hình ảnh được phóng to, trong đó bạn có thể thấy rõ rằng VCC đạt trạng thái ổn định ở mức 5 V trong dưới 2 ms:

khởi đầu thành công, phóng to

Trong hình trên, mcu bắt đầu chính xác.

Thật thú vị, khi không có, điện áp cung cấp sẽ tăng lên mức 5 V ổn định thậm chí sớm hơn (có vẻ như nhiều phần của mcu không bật nguồn, vì vậy nó sẽ tiêu thụ ít dòng điện hơn trong quá trình khởi động)

Dưới đây là hình ảnh từ một khởi đầu không thành công:

bắt đầu không thành công, phóng to

Xin lưu ý rằng phần mềm bắt đầu chạy sau hơn 85 ms sau khi điện áp cung cấp đã ổn định, thay vì 10,5 ms yêu cầu khác. Các cầu chì cho độ trễ khởi động vẫn như nhau, 16K CK / 14CK + 4,1 ms.

Điều thú vị cần lưu ý là sau khi nguồn cung cấp bị tắt, VCC ổn định ở khoảng 1,1 đến 1,2 Volt (biến thể ATmega328A cũ đã giảm xuống khoảng 0,6 - 0,7 V). Nó giữ điều đó trong vài phút. Nếu tôi đợi đủ lâu (theo thứ tự từ nửa giờ trở lên), mcu luôn bắt đầu chính xác! Vì vậy, có vẻ như vấn đề là có 1.1 Volt xung quanh, mà theo bảng dữ liệu, không được đảm bảo là đủ để thiết lập lại bật nguồn. Nhưng nó là đủ cho một thiết lập lại màu nâu!

Ngoại trừ những tình huống này, máy dò màu nâu hoạt động tốt. Nó hiển thị trên hình ảnh đầu tiên (tín hiệu đầu ra dừng lại khi đã đạt đến mức cơ thể và sự sụt giảm điện áp chậm lại, vì các bộ phận của mcu bị tắt). Tôi đã thực hiện các thử nghiệm khi tôi giảm VCC xuống một chút bên dưới bodlevel và để nó trèo trở lại, mcu luôn khởi động lại chính xác trong các điều kiện như vậy, chỉ có đèn báo khởi động lại màu nâu sáng lên.

Tôi đã bỏ lỡ một cái gì đó rõ ràng, hoặc ATmega328PB có một lỗi nghiêm trọng trong máy dò màu nâu của nó?

BIÊN TẬP:

Thật thú vị, các vấn đề trên chỉ phát sinh khi tôi làm gián đoạn nguồn cung trước cơ quan quản lý. Nếu tôi ngắt nó sau bộ điều chỉnh (hoặc sử dụng nguồn điện trong phòng thí nghiệm), các vấn đề không bao giờ xảy ra. Như thể hình dạng của điện áp tăng gây ra vấn đề. Tuy nhiên, như bạn có thể thấy từ hình ảnh cuối cùng, điện áp tăng khá đẹp và ổn định nhanh chóng.

CHỈNH SỬA 2

Tôi đã thử với 16 MHz thay vì 20 MHz, nhưng các vấn đề tương tự chính xác xảy ra.


Bạn đã liên lạc với Atmel hoặc nhìn vào erratas của họ? Trong thời đại ngày nay, lỗi thiết kế IC khá phổ biến.
Edgar Brown

Tôi đã xem qua các lỗi (không tìm thấy gì theo hướng này) và chúng tôi đang xem xét liên hệ với Atmel, nhưng trước khi thực hiện thêm một số thử nghiệm và tìm kiếm thêm một chút.
vsz

3
Theo kinh nghiệm của tôi, đừng lãng phí thời gian trước khi liên hệ với nhà sản xuất hoặc sử dụng diễn đàn của họ. Bạn đã thực hiện quá nhiều gỡ lỗi để trình bày một trường hợp rất mạnh. Với ít hơn thế, TI đã gửi cho tôi errata nội bộ (chưa được công bố) của họ cho một trong những IC của họ ghi lại vấn đề của chúng tôi.
Edgar Brown

Giá trị hai xu của tôi: Tôi đã thấy vấn đề với các CPU khác nếu công suất tăng quá nhanh. Một số nhà sản xuất chỉ định thời gian tăng tối đa nhưng thường thì điều này không được đề cập.
Oldfart

Câu trả lời:


3

Tôi không nghĩ đó là một lỗi với máy dò màu nâu, nhưng cách bạn sử dụng chip.

Như bạn đã nói, ngưỡng thiết lập lại bật nguồn 1.1 V không đạt được nếu nguồn chỉ được ngắt và kết nối nhanh chóng, do đó sẽ không có POR.

Máy dò nâu không thể giúp đỡ nhiều ở đây. Bạn đang sử dụng AVR ở 20 MHz và điều này đòi hỏi điện áp cung cấp phải từ 4,5 V trở lên hoặc bạn đang vi phạm thông số kỹ thuật. Và BOD không đảm bảo rằng nó sẽ hoạt động ở 4,5 V, nó thường ít hơn thế, nói 4.3 V. Vì vậy, ngay cả trước khi kích hoạt BOD, không có gì đảm bảo rằng trạng thái của AVR kết thúc nhưng BOD nên kích hoạt, ngoại trừ việc nó có thể kích hoạt không hoạt động do đồng hồ 20 MHz của bạn. Khi điện áp bắt đầu tăng trở lại, BOD sẽ ngừng hoạt động trước khi điện áp cung cấp ở mức 4,5 V an toàn trở lại. Nếu nó được kích hoạt chính xác. Thời gian trễ khởi động nên được đặt thành đủ cao để điện áp có sự thay đổi tăng từ mức khử kích hoạt BOD lên 4,5 V trước khi thiết lập lại bên trong được giải phóng.

Nhưng tất cả có thể thất bại vì nó chỉ cần ít nhất 4,5 V để chạy ở 20 MHz. Bảng dữ liệu AVR có đề cập rằng nếu hệ thống đặt lại bên trong không phù hợp thì hãy sử dụng chip thiết lập lại bên ngoài và trong trường hợp này có vẻ như nó sẽ giải quyết các vấn đề của bạn để đặt lại AVR trước khi điện áp giảm xuống 4,5 V.


Tôi giả sử rằng BOD không sử dụng bộ xử lý nhưng nó là một phần cứng chuyên dụng. Có lẽ họ đã thay đổi nó cho biến thể PB? Tôi sẽ rất ngạc nhiên nếu họ không còn hỗ trợ BOD cho 20 MHz. Bodlevel cao nhất là 4,3 V, vậy 20 MHz sẽ yêu cầu một BOD bên ngoài? Tuy nhiên, tôi nghi ngờ điều này một mình là nguyên nhân. Tôi đã thực hiện một thử nghiệm với bodlevel 20 MHz, 2.7V, đặt VCC thành 3V, nó chạy tốt. Khi tôi giảm điện áp bằng tay xuống một chút dưới 2,7, đầu ra dừng lại, khi tôi tăng lên trên 2,7 thì đầu ra được nối lại, luôn luôn, nó không bao giờ bị lỗi, thậm chí không một lần. Chỉ có một khởi động từ 1.1 V dường như vô hiệu hóa BOD.
vsz

Rất có thể đó là phần cứng chuyên dụng, nhưng trong quá trình giảm điện áp trước khi BOD khởi động, bạn có thể chắc chắn dữ liệu chính xác được lấy từ flash để thực thi CPU và CPU có thực hiện đúng không? Nó có thể, hoặc chỉ ghi dữ liệu ngẫu nhiên vào các thanh ghi dành riêng làm những thứ không xác định. Thông số kỹ thuật đã thay đổi cho biến thể PB và chúng không hỗ trợ BOD cho 20 MHz trên chip cũ. Biến thể PB có cả hai đường cong BOD và POR thực sự khác nhau và đá vào sau ở điện áp thấp hơn.
Justme

Xin hãy xem bức ảnh thứ hai của tôi. HĐQT dường như đã tham gia chính xác và đã thiết lập lại chip. Nó chỉ không khởi tạo được ở lần khởi động tiếp theo. Ngoài ra, tôi đã điều khiển con chip này ở mức 3 V và nó hoạt động chính xác, không bao giờ thất bại một lần nào.
vsz

Theo tôi thì chip không cần phải hoạt động ngoài vùng vận hành an toàn, nhưng hãy tiếp tục. BOD sẽ không thiết lập lại Trình phát hiện lỗi đồng hồ, do đó, chỉ thiết lập lại Bật nguồn và thiết lập lại bên ngoài sẽ tắt từ đồng hồ bên trong. Vì vậy, hãy kiểm tra kỹ các cài đặt cầu chì CFD. Bạn đang sử dụng tinh thể bên ngoài hoặc đồng hồ bên ngoài? Cầu chì CFD trước đây có thể là cầu chì Full Swing. Và vì không có cầu chì xoay hoàn toàn, tần số tối đa cho một tinh thể là 16 MHz và 20 MHz yêu cầu tín hiệu xung nhịp mức logic bên ngoài. Vì vậy, có thể là một vấn đề khởi động tinh thể quá, vì vậy cũng đặt một phạm vi trên chân pha lê.
Justme

Tôi sử dụng một tinh thể. Ý tưởng tốt, tôi sẽ xem xét điều đó. Xin lưu ý rằng hành vi tương tự mà tôi mô tả bằng hình ảnh, xảy ra bất kể CFD được bật hay tắt.
vsz
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.