3.4. Pinler ve çevre birimleri¶
Pin, MCU üzerindeki en basit çevre birimidir: çipi dış dünyaya bağlayan tek bir tel. Gerçek donanımla yapılan her etkileşim – bir LED’i sürmek, bir anahtarı okumak, bir gerilimi ölçmek, bir seri hat üzerinden bayt göndermek – nihayetinde bir veya daha fazla pin üzerinden yönlendirilir.
3.4.1. Pin modları¶
Bir pin, yararlı bir şey yapmadan önce birkaç moddan birine yapılandırılır:
Pin.IN– giriş. Pin, dışarıdan kendisine uygulanan gerilimi gözlemler ve0(düşük) veya1(yüksek) olarak raporlar.Pin.OUT– çıkış. Pin kendini ya besleme gerilimine (1) ya da toprağa (0) sürer, böylece harici bileşenler bu gerilimi görür.Pin.OPEN_DRAIN– yalnızca hattı düşük seviyeye çekebilen çıkış. Yüksek seviyeye geçmek için pin serbest bırakır (yüzer hale gelir) ve harici bir pull-up direnci hattı kaldırır. Birden fazla cihazın aynı hattı sürebileceği paylaşımlı veri yolları için kullanılır.
Girişler, hiçbir harici kaynak pini sürmediğinde tanımlı bir seviye garanti eden dahili bir çekme direnci (pull) etkinleştirebilir:
Pin.PULL_UP– besleme rayına zayıf çekme.Pin.PULL_DOWN– toprağa zayıf çekme.
Yapıcı; id, mode ve pull değerlerini konumsal argümanlar olarak alır:
from machine import Pin
led = Pin("P0", Pin.OUT)
button = Pin("P1", Pin.IN, Pin.PULL_UP)
3.4.2. Alternatif işlevler¶
Çoğu pinin, GPIO rolüne ek olarak bir alternatif işlevi vardır. Çip üzerindeki tek bir fiziksel ped şunlar olabilir:
Bir dijital giriş veya çıkış (
machine.Pin).Gerilimi ölçen bir ADC girişi (
machine.ADC).Kare dalga yayan bir PWM çıkışı (
machine.PWM).Bir UART’ın TX veya RX hattı (
machine.UART).
Diğer çevre birimleri de (başka seri veri yolları, zamanlayıcılar vb.) belirli pinleri kullanır; çip tasarımcısı her donanım bloğunu sabit bir ped kümesine bağlar. ADC yalnızca kendi çoklayıcısına yönlendirilmiş pinleri örnekler; bir UART, TX sinyalinin bağlı olduğu tek pin üzerinden iletim yapar.
Not
OpenMV kameralar harici konnektör pinlerini P0 ile P9 arasında etiketler (karttan karta biraz değişir). Hangi pinin hangi alternatif işlevi taşıdığı karta özgüdür; tabloyu görmek için OpenMV Cam hızlı başvuru kılavuzuna bakın.
3.4.3. Kart farklılıkları¶
Birkaç ayrıntı karttan karta değişir ve başka bir karttan varsayılmak yerine her zaman hızlı başvuru kılavuzuna karşı kontrol edilmelidir:
Gerilim toleransı. Bazı kameraların 5 V toleranslı G/Ç pinleri vardır (5 V’luk bir sinyal zarar vermeden doğrudan uygulanabilir); diğerleri G/Ç’lerini 3.3 V veya 1.8 V’ta çalıştırır ve bunun üzerindeki herhangi bir sinyal için bir seviye dönüştürücü gerektirir. Toleranslı olmayan bir pine 5 V’luk bir kaynak bağlamak çipe zarar verebilir.
ADC referansı. ADC’nin tam ölçek olarak ele aldığı gerilim, kartın G/Ç beslemesine bağlıdır.
read_u16()her zaman0..65535döndürür, ancak65535değerinin temsil ettiği gerilim, kartın referansı her ne ise odur.Sürme gücü. Bir GPIO pini sınırlı bir akım kaynaklayabilir veya çekebilir – tipik olarak onlarca miliamper. Bir direnç üzerinden küçük bir LED için yeterli; bir motor, bir vızıltı (buzzer) ya da herhangi bir endüktif yük için yeterli değil. Daha ağır herhangi bir şey için harici bir sürücüye (transistör, MOSFET, H-köprüsü) başvurun.
OpenMV Cam hızlı başvuru kılavuzu kart başına tam sayıları verir.