AVR sıfırlama pimi yalıtımı için hangi direnç ve kapasitör değerlerini kullanır?


15

Arka fon...

AVR uygulamalarına yeni başladım. Son zamanlarda breadboard üzerinde (bağımsız olarak) doğru çalışan iki ATTINY13 tabanlı devre (yüceltilmiş LED yanıp sönen) kurdum. Onları paylaşılan bir güç kaynağı ile bir lehim perfboardunda birleştirdiğimde, işler haywire gitti. Çok fazla araştırmadan sonra sürekli olarak sıfırlandıkları ortaya çıktı.

Bağlanmamış her mikro 1'in sol pimi (sıfırlama) vardı. Sıfırlama pimini kullanmanın uygun yollarını araştırdım ve bundan aşağıdakileri uyguladım:

  1. Herhangi bir potansiyel akım çekilmesine yardımcı olmak için güç kaynağına paralel olarak 100 uF elektrolitik kapasitör eklendi, güç kaynağı ile başa çıkmak için çok "yavaş" olacaktır.

  2. Bir 4.7K direnç eklendi VCCiçinRESET

  3. 0.1 uF seramik kapasitör eklendi GND.RESET

Bu adımlar sorunu tamamen çözdü.

Soru:

Yukarıda bağladığım sayfa (henüz) yapmadığım ISS (sistem içi programlama) yaparken tavsiyede bulunuyor. (Mikronları, başka hiçbir bileşen bağlı olmadan ayrı ayrı programlıyorum.)

Kondansatör (10nF, 0.1uF, vb.) Ve direnç (4.7K, 10K, vb.) Birkaç farklı değer gördüm ve bu değerleri hangi faktörlerin değiştirdiğinden emin değilim. Herhangi biri sıfırlama pin yalıtımının nasıl çalıştığına ve kullanılacak bileşen değerlerinin nasıl hesaplanacağına ışık tutabilir mi? Sistem içi programlama başlığı yoksa hangi değerleri kullanacağınızı açıklayabilir misiniz?

AVR Reset Pimi İzolasyon şeması

Yanıtlar:


15

Atmel AVR042: AVR Donanım Tasarımı Konuları bize sıfırlama pimi üzerindeki kapasitörün gerekli olmadığını söyler. Şahsen bence aşırıya kaçmış. Bu yedek kapasitörlü her biri düzinelerce AVR devresi yapmaya devam etmenizin bir nedeni yok.

Sıfırlama çekme direnci gelince:

Sıfırlama hattının dahili bir çekme direnci vardır, ancak ortam gürültülü ise yetersiz olabilir ve bu nedenle sıfırlama ara sıra meydana gelebilir. Belirli cihazlardaki çekme direncinin değeri için veri sayfasına bakın. RESET'in, hem yüksek voltajlı programlamaya hem de normal düşük seviye sıfırlamaya girilebileceği şekilde bağlanması, RESET hattına bir çekme direnci uygulanarak elde edilebilir. Bu çekme direnci, sıfırlamanın istenmeyen şekilde düşmemesini sağlar. Çekme direnci teorik olarak herhangi bir boyutta olabilir, ancak Atmel®AVR®'nin örneğin STK500 / AVRISP'den programlanması gerekiyorsa, çekme işlemi programcının RESET çizgisini düşük çizerek RESET'i etkinleştiremeyeceği kadar güçlü olmamalıdır. Tavsiye edilen çekme direnci 4.7kΩprogramlama için STK500 kullanırken daha büyük veya daha büyük. DebugWIRE işlevinin düzgün çalışması için, çekme 10k 10 değerinden küçük olmamalıdır.

Arduino, çok sayıda klon, düzinelerce dev kit gibi AVR mikrolarını içeren profesyonel ürünlere göz atarsanız, çoğunun 4.7kΩ veya 10kΩ direnç kullandığını göreceksiniz.

Özellikle ATtiny13'ünüz için veri sayfası, çekme işleminin ideal olarak [20kΩ, 80kΩ] olması gerektiğini belirtir.


1
20k - 80k veya 20k bölü 80k mı? :)
JYelton

Donanım Tasarımı Konusundaki bağlantı için teşekkürler. Bu belgenin farkında değildim!
JYelton

Haha, bu işareti kullandım çünkü herkes eksi işaretini kullanıyor. Olumsuz direnç de bir anlam ifade etmiyor :)
Jonny B Good

Genellikle "tilde" anlamına gelen tilde (~) ve aynı zamanda "yaklaşık" anlamına gelir. Sanırım bağlama bağlı. Veri sayfası sıfırlama çekme direnci listelerini işaret ettiğiniz için teşekkür ederiz, bu bilgileri içereceğini fark etmemiştim. Sahip olduğum veri sayfası, Sıfırlama Pimi için Çekme Dirençini 30k ila 80k arasında göstermektedir. En azından şimdi nereye bakacağımı biliyorum. Teşekkürler!
JYelton

4
Yaygın olarak gördüğüm direnç aralığı değerleri için bir başka iyi gösterge: 20kΩ...80kΩ
PetPaulsen

7

Ben her zaman / Reset piminde Vcc için 10k çekme direnci kullanın ve hiç problem yaşamadım. Kararlı talaş çalışması için Vcc ve GND arasında Vcc piminin yakınında 100nF kapasitör eklemek de genellikle iyi bir fikirdir. Bence sıfırlama pimi üzerindeki kapasitör gerekli değildir, yani geliştirdiğim herhangi bir AVR devresine hiç bir tane dahil etmedim (ve çok şey geliştirdim) ve bu bana asla keder yaratmadı.


Bu küçük kapasitörlerin güç kaynağına paralel olan daha büyük bir elektrolite ek olarak veya bunun yerine nasıl yardımcı olduğunu açıklayabilir (veya iyi bir acemi öğreticisine işaret edebilir misiniz)?
JYelton

1
"dalgalanma frekansları" ile ilgilenir ve gözle görülenden daha karmaşık bir konu olabilir, ancak en azından 100nF, bypass kapasitörleri için kabul edilen standart bir kural uygulamasıdır. İlginizi çekebilecek (çok sayıda) referans makale: seattlerobotics.org/encoder/jun97/basics.html . Bu sitedeki ilgili yayınları 'baypas' veya 'ayırma' için de
arayabilirsiniz

Büyük elektrolitik kapasitörler düşük frekansları idare eder, ancak yüksek frekanslarda etkisizdir. Küçük seramik kapasitörler (0.1 uF) yüksek frekansları işler, ancak düşük frekanslarda etkisizdir.
Technophile

Yani her ikisini de kullanın, arz yine de büyük bir tane olmalı ve küçük bir tane yerel olarak olmalıdır. İndüksiyon ve HF bir sorun olabilir, ancak aşırı derecede. HSVP değerlendirmelerinin, bu sıfırlama pimi direnci ile seri olarak bir diyot içermemesi ilginçtir.
mckenzm
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.