Zkusil jsem si napsat jednoduchý prográmek na ovládání 6 ledek třema tlačítky ATmegou 48. Narazil jsem už v tak jednoduchým zapojení na malý počet volných portů. Port A jsem v datasheetu nenalezl vůbec, a port B a C nelze použít jako výstupní, jelikož bych si pak znemožnil přeprogramování. Zbývá tedy pouze port D, jenž s ničím nekoliduje. Proto mě zajímá, zda mohu bez problémů nastavit a použít porty B nebo C jako vstupní, aniž to ohrozí přeprogramování. Doufám, že můžu použít piny, jenž nejsou používány při programování, nebo mohu použít i je?
Dále jsem se díval (snad správně) že kdybych chtěl použít pwm, tak musím nastavit port B jako výstupní a tím přijdu o možnost přeprogramování. Nebo na to existuje nějaký postup, jenž uniká mé pozornosti, jenž tomu zabrání?
Zkoumal jsem, proč nemůžu použít 7 nožiček portu C, když jen jedna je obsazena resetem a přišel jsem na to, že 8 vývod portu C neexistuje, jelikož na něj nezbyla nožička švábu. Pochopil jsem to správně?
Ohledně programovacích vývodů jsem teď mírně zmaten. Používá se nebo nepoužívá při programování i vývod reset? Imho používá, ale jsem v tomto naprostý zelenáč a tak se můžu plíst i v úplně základních věcech. Mám na mysli programování přes ISP.
To je zajímavé zdůvodnění.
Skutečnost je taková, že port C je sedmibitový, jak je napsáno v datašítu.
Takže portc.7 není ani na 32-pinové patici MLF, kde by se nožička našla.
Ano, při programování se používá i RESET.
Ale pořád zbývá tolik pinů, kolik jsem napsal v minulé poště.
Jasné, ale ja som skôr narážal na to, že programové nastavenie programovacích pinov na vstup alebo výstup nemá vlyp na možnosť preprogramovania - z čoho má Kolbaba zrejme obavy (aspoň tak mi to prišlo)
tak cez odpor. 1k to isti, samozrejme programator ma byt osetreny budicom
Je jedno ako pouzijes piny, ci IN alebo OUT, na programovanie to nema vplyv, lebo k programovaniu cez SPI dochadza za pouzitia pinu RESET. No a v resete nie je ziadnen pin vystupny. Druha vec je, ci programovacie piny nie su napojene na nejake “tvrde” zdroje napatia, ako napriklad priamo na nejake hradlo ako spomynal AB.
To sa teda osetruje tak, ze piny MISO, MOSI a CLK pouzijes vo svojom zapojeni ako vystupne s tym, ze nekontrolovatelne zmeny na nich nemozu sposobit nejaku skodu. Napriklad prepis nejakych udajov v I2C EEPROM (ak sa sw emuluje prave na tychto pinoch), alebo cvakanie relatka.
Kludne mozes na SPI mat pripojenu napriklad SPI pamat. Pocas resetu nema aktivny /CS, takze jej signal MISO je deaktivovany a “cvrlikanie” na pinoch CLK, a MOSI si nevsima presne z toho isteho dovodu. Horsie je to uz napriklad s 74HC165, ktorej vystup je potrebne nejako zvlast osetrit.
Ano, tak jsem to i myslel. Na netu jsem se dočet o spoustě lidí co si vypli reset aby ho mohli použít jako normální i/o pin a tak jsem si myslel, zda se to netýká i programovacích pinů.
Tak to je super. Měl jsem zato, že jde nastavit jen port, ne i jednotlivé piny. V 750 stránkovým manuálu k Bascomu je jen příklad nastavení celýho portu. Sice to asi není úplně správný, ale jde případně vstup/výstup prohazovat dle potřeby při běhu programu? I když je mě jasný, že obvyklý bude spíš jedno nastavení pro celý program.
Napadla mě ještě jedna věc. Jak se ošetřují nevyužité i/o piny ? Někde jsem čet, že se přes odpor zemní, jinde zas přes odpor připojí k napájení, jinde zas, že se prostě jen mechanicky připájí na samostatnou plošku. Případně že se ta ploška propojí přes kondenzátor k zemi. Jak ale ošetřit i/o piny softwarově, jsem se nedočet nikde. Jak se to dělá správně? Jaký se sw a hw ošetří nevyužitý pin?
SW je tedy pro mě jasný. Ale nezdá se mě, že ač sw nastavený pin jako výstupní, aby byl doslova jak mechanicky tak i elektricky ve vzduchu. Kam ho tedy připojit (pravděpodobně přes odpor)? Na samostanou plošku na DPS, na Vcc či GND?
Není třeba ho nikam připojovat.
Není ve vzduchu, protože na výstupním pinu je vždy buď úroveň 0 nebo 1.
Čili je už uvnitř připojený na GND nebo Vcc.
U digitálních obvodů se ošetřují pouze nezapojené vstupy, ne výstupy.
Zdravím
Nechci zakládat nové téma tak se chci zeptat
když v C nastavím DDRA = 0b00000000
znamená že PORTA 0-7 bude vstuně/výstupní?
Moc díky za odpověd
Nožička, nebo dokonce několik nožiček ve vzduchu vypadá divně. Na nepájivým poli bych to chápal, ale na DPS to bude vypadat divně, ale když se to tak běžně dělá…