ICSP veya Önceden Programlanmış Mikrodenetleyici


11

Küçük ölçekli üretim için bir PCB tasarladım; şu anda onları bir seferde 20'lik gruplar halinde lehimliyorum. Bu PCB, panoya lehimlemeden önce programladığım bir ATMEGA168 mikrodenetleyici kullanıyor - bu yöntem şu anda benim için iyi çalışıyor.

Tasarladığım ürün oldukça popüler gibi göründüğü için bana 200 adet pano üretip monte etmeyi düşünüyorum. Panoya bir ICSP başlığı eklemek veya IC'leri kendim önceden programlamaya devam etmek daha iyi bir uygulama olur mu? Üretim veya montajdan sonra kartın yeniden programlanması amaçlanan veya gerekli bir özellik değildir.

Bunun daha büyük ölçekli bir üretim ortamında nasıl yapıldığından emin değilim? Bir ICSP başlığı eklemek üretim maliyetini biraz artıracaktır, bu yüzden ön programlama standart bir uygulama mıdır?

Yanıtlar:


18

Her zaman bu tür bir başlık (küçük) dahil etmenizi öneririm. Daha büyük miktarlara ulaşırsanız, pogo pinleri için pedleri düşünebilirsiniz (PCB'yi hizalamak için bir fikstür yapmanız gerekir) veya miktarlarınızda, sadece delik gerektiren ve doldurulmamış Tag Connect kablolarından birini kullanabilirsiniz. pedleri (tahtaya takılırlar).

resim açıklamasını buraya girin

Bir programlama güncellemesi ihtiyacından kurtulmanıza izin vermenin yanı sıra, bu, bir montaj evinin programlamadan önce panoları doldurmasını sağlayarak lojistiği geliştirebilir.

Üretim öncesi miktarlarda bile ön programlama kesinlikle bir seçenektir (dağıtıcının sizin için yapmasını bile sağlayabilirsiniz), ancak çoğunlukla en basit uygulamalarda kullanılıyor gibi görünmektedir. Genellikle panolardaki yongalar montaj sonrası programlanır (veya programlanabilir).


Bu iyi bir çözüm gibi görünüyor - yardımınız için teşekkürler, bu kablolar oldukça kullanışlı görünüyor!
edcs

1
Tag-Connect bunun için iyi çalışır. Kilitleme pimleri (görüntünün sağındaki siyah plastik) olmadan baskıya veya pimleri yakalayan bir arka plakaya sahip versiyonlar da alabilirsiniz. Resimdeki kablonun yaklaşık 50 $ olduğunu unutmayın. Artı tarafta, PCB kontakları yaklaşık 0 $ 'dır.
Ben Jackson

20

Bir başlık için alanınız varsa, bu muhtemelen en iyi seçenektir ve Majenko'nun önerdiği hafif kademeli pimler, karmaşıklık eklemeden bir konektörü yerinde tutmanın iyi bir yoludur.

Ancak, bir başlığa sığacak alanın olmadığı veya standart başlığın tüm programlama / kurulum / kart test görevlerinizi yerine getirmediği kartlar için alternatif bir yaklaşım.

Burada olduğu gibi küçük bir form faktörü PCB verildi (33mm çap) resim açıklamasını buraya girin

test noktalarıyla (arkada etiketli) düzenleyebilirsiniz resim açıklamasını buraya girin

ve bunun için bir test fikstürü oluşturun ( Pogo Pinlerini kullanarak ) resim açıklamasını buraya girin

Bu, bazı işleme yetenekleri ve en azından bir sütun matkap gerektirir (çünkü pogo pimleri tam olarak dikey olmalıdır). Bununla birlikte, bir prototip PCB'yi riske atmak istiyorsanız, pogo pimlerini tam olarak doğru yere almak için bir malzeme tabakasına kelepçeleyebilir ve test noktası deliklerinden "noktalayabilirsiniz". (Itead'den gülünç düşük bir fiyat için 10 PCB alıyorum, bu yüzden birini kaybetmek önemli değil).

Bir torna ve değirmen ile, PCB'yi tam olarak doğru yere yerleştirmek için sütunları ve kelepçeleri yapmak bir doddledır, ancak daha basit araçlarla çok zor değildir.

Sonra her PCB'yi takın, programlayın ve test edin. Gevşek konektör normalde bu MPU'yu (TI MSP430) SBW arabirimi üzerinden programlamak için kullanılan bir TI Launchpad'deki başlık pimlerine gider, ancak aynı ilke JTAG veya diğer arabirimler için de geçerlidir. (Üstteki kahverengi kablo, bir frekans sayacına kalibrasyon sinyali taşıyan bir koaksiyel kablodur). resim açıklamasını buraya girin

Cilalı maun tabanı isteğe bağlıdır; Test fikstürlerim için steampunk tarzı tercih ediyorum.


Bu harika bir cevap ve bu kadar yararlı ve ayrıntılı bir yanıt vermek için zaman ayırdığınız için teşekkürler! Cevabı işaretlemedim çünkü benim durumumda bir ICSP başlığına sığacak alanım var ama küçük bir şey inşa etmek zorunda kalırsam aklımda tutacağım bir şey.
edcs

2
Bu güzel bir jig (ya da bir fikstür?). PCB'yi akıllıca anahtarlayacak bir şey var mı veya sadece gözle hizalanmış mı?
Spehro Pefhany

Ben kelepçeleri aşağı itmek ve salıncak önce görünür test noktası deliklerinden pogo pimleri göz küresi. Ham ama işe yarıyor. Daha büyük bir PCB'de, örneğin PCB montaj deliklerinde birkaç konum pimi öneririm.
Brian Drummond

13

Her zaman bir ICSP üstbilgisi için doldurulsa bile boşluk eklerim. Duruma bağlı olarak şu anda bunu yapmanın üç yolu var.

Tasarımlarımdan birinde bir adaptör inşa ettiğim çok ince bir adım başlığı var (0.6mm katı çekirdek tel bunun için mükemmel):

resim açıklamasını buraya girin

Bu konektörü boşluk mutlak bir primdeyken kullanırım. (Üzgünüm bulanık, telefonumun kamerası naff).

Sık kullandığım ikinci düzenleme, ICSP'yi başka bir başlığa dahil etmektir. ICSP pinleri GPIO pinleri olarak da kullanılabiliyorsa ve bunları sökülebilir bir bağlantıyla kullanabiliyorsanız, ihtiyacınız olabilecek diğer ICSP bağlantılarını (örneğin MCLR) minimum maliyetle dahil etmek yeterince basittir. Ardından programcınızı, yapması gereken kadar basit bir adaptörle bu başlığa takın.

Üçüncü yol, ICSP için "aşamalı" veya "ofset" başlık alanı sağlamaktır. Bunu esas olarak son kullanıcının ICSP yapmak isteyebileceği, ancak kalıcı olarak bir başlık lehimleyerek tahtalarını mahvetmek istemediği geliştirme panolarında kullanıyorum. Bu ayak izi, standart bir başlığın herhangi bir lehim olmadan bastırarak oturmasını ve sağlam bir temas sağlamasını sağlar:

resim açıklamasını buraya girin

Çok daha büyük miktarlarla uğraşmaya başladığınızda, yonga üreticisinin yongaları sizin için ürün yazılımınızla önceden programlamasını sağlamak kesinlikle daha uygun maliyetli olabilir. Tüm büyük üreticilerin bu tesisi sağladığını düşünüyorum.


Ayrıntılı cevap için teşekkürler - kesinlikle yararlı bilgiler burada! Cevabınızı kabul etmedim çünkü önerilen Tag Connect kablosunu kullanacağım, ancak kademeli pin yöntemi de işe yarayacaktı.
edcs

Atmel kesinlikle bir seçenek olarak sunuyor.
Ignacio Vazquez-Abrams

2
Aşamalı başlık alanı tamamen cömerttir. +1
Vladimir Cravero

5

Biri devrede yeniden programlanabilen bir işlemci kullanıyorsa, aslında bu özelliği kullanmak, belirli bir amaç için bir fikstür inşa etmeyi gerektirse ve biri kullanmıyor olsa bile, kartların kullanımına izin verecek şekilde tasarlanmasını şiddetle tavsiye ederim. bir tane inşa etmeyi planlamıyor. Büyük bir kart grubu üretildikten sonra bir ürün yazılımı sorunu tespit edilirse, bu panoları yeniden programlayabilen bir fikstür oluşturmak, bunları yeniden çalışmak veya yeniden oluşturmak zorunda kalmaktan çok daha ucuz olabilir.

Bazı durumlarda, bir devre kartının I / O düzenini seçmek iyi bir yaklaşım olabilir, böylece devre içi yeniden programlama için gereken kontrolör pimleri, "doğal olarak" kolay erişilen temas noktalarına maruz kalmalarına neden olan amaçlara verilir. Örneğin, metal-kubbe kontaklarla kullanım için tasarlanmış bir kartta kontakların kendileri devre-içi programlama pimlerine bağlanmış olabilir. Böyle bir tasarım, bir programlama konektörü için mizanpajda herhangi bir alan ayırmayı gerektirmez, ancak - özellikle pil kontağı da genel olarak boyutlandırılmışsa, bir programlama konektörünün basit yay yüklü kontaklarla geçmesine izin verin.

Kodun iyi test edilmiş gibi göründüğü önemli değildir; bir yonga grubundan diğerine değişiklik yapmak yine de beklenmedik sorunlara neden olabilir. Örneğin, "açık" olması gerektiği zaman işlemci çıkışını bir pim üzerinde "yüksek" bırakarak işlemci kontrolü altında kendini kapatması beklenen bir ürün tasarladım. 10.000 adetlik ilk partide her şey iyi çalıştı, ancak daha sonraki bir partide işlemci voltajı yaklaşık 2 volt'a çarptığında arızalanmaya başlayacak ve bu pimi tekrar "yüksek" e geçirebilir; 2 voltluk "yüksek" çıkış, üniteyi tekrar açmak için yeterli değildi. İşlemcinin uyku modunda IIRC 1.6 volta kadar kaldığı belirtildiğinden, üniteleri, kapatma durumlarını etkinleştirirken uyku moduna girecek şekilde yeniden programlayarak sorunu düzeltmek mümkün oldu. Böyle bir yeniden programlama mümkün olmasaydı, çok daha pahalı yeniden işleme (ya da başka bir hurdaya çıkarma ve yeniden inşa etme) gerekli olurdu.

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.