Je AVR ISP blbuvzdorný ?

19. listopadu 2015 v 5:01 | Petr |  Elektro
Jeden ctíhodný, leč tajný čtenář tohoto blogu mi psal : "Jak to vypadá se zatraceně kvalitním radiopřijímačem ?" který měl vyjít z mé dílny. Tak jsem mu smutně odpověděl - manželka je těhotná a je třeba zařídit spoustu věcí "než se to narodí". A pokud vedete divný život, je třeba zařídit i "divné věci", jako třeba učinit psa chovným, když už jste to slíbili chovatelce. Takže jsem "významnému čtenáři" odpověděl : "V prvním přiblížení je lépe předpokládat, že jsem s elektrem i roboty sekl - pro naprostý nedostatek času !" Týden poté co jsem si toto přiznal a písemně jsem to do mailu formuloval, se prudce zhošilo počasí a tím nastala obvyklá listopadová otázka : "Co budu dělat o vánocích" ? A to si pište že něco dělat budu, neb letos se mi podařilo - poprvé v kariéře - "mít vánoce jako školáci" - tedy na štědrý den ráno se vracím po noční směně, ale pak jdu do práce až v roce 2016.

Takže jsem se podíval po troskách toho co byla kdysi "dílna na roboty" a zjistil jsem, i přes tu bídu mám určitý přetlak "analogových bastlů" kterým "chybí hlava" - tedy mikrokontrolér. A jelikož "už jsem jako inženýři" co se "na škole" za Jakeše a Bilaka naučili 8051 a nyní ji cpou všudše, přestože je fatálně zastaralá. V mém případě jsem se naučil "holé AVR" ještě před érou "arduííína" a teď jej z lenosti cpu kam se dá. Takže potřeba která vyvstala je "NE-ARDUINO". Tedy mé srdce touží po desce s AVR, která by se dala zastrčit do kontaktního pole a dalo se s ni experimentovat.

NE že bych takové desky už neměl - ještě v dobách ručního kreslení plošných spojů jsem si vyrobil "bastldesku" dle Davida Matouška, která nejde zastrčit do kontaktního pole, pak jsem měl jeden "monstrózní projekt" Ne-Arduina, který nedpopadl, protože jsem měl tu šílenou ideu přeměnít 28 pinovou AtMegu8 na 56 pinový DPS, kde každý pin bude zdvojený aby bylo na kontaktním poli "více dírek se stejným signálem"

OK takže zanechme šílenství - reálné minimalistické technické specifikace budou AVR v DIL v patici aby se dal "spálený kus" vyměnit, dále stabilizátor 5V, krystal 16MHz ( nebo 8 ?? ), nutné filtrační kondy, ISP port, UART v TTL a jedna LEDka vysocesvítívá, nenápadně připojená přes velký odpor velikosti asi tak 10K, aby bylo alespoň čím blikat při ladění softwaru.

Tím je tak přibližně dán formát "NE-Arduina" - plošný spoj by neměl být výrazně větší než DIL 28, tím vzniká problém - jelikož se jedná o NE-Arduino - žádný bootloader ani UART to USB konvertor tam nechci a musí tam být poctivé AVR ISP. Klasický "10 pinový konektor se zahrádkou" typu MLW10G se tam patrně nevejde, přechod na 6 pinový ISP "se zahrádkou" moc místa neušetří takže tam bude muset být "holých 10 pinů v matici 2x5" a tím vyvstává možnost zapojit ISP opačně, a tím vyvstává i problém elektronické "blbuvzdornosti" - který jsme už jenou probírali.
Je tedy nutno předem promyslet, co shoří, pokud zapojím ISP port do programátoru obráceně. Ergo sledujme obrázek nahoře a můžeme si rovnou napsat tabulku "přepólovaného konektoru"

Pin Č:Funkce AVRTypFunkce ProgramátorTyp
1MOSIVstupGroudZem
2VCC5VMISOVstup
3NC-GNDZem
4GNDZemSCKVýstup
5RESETVstupGNDZem
6GNDZemRESETVýstup
7SCKVstupGNDZem
8GNDZemNC-
9MISOVýstupVCC5V
10GNDZemMOSIVýstup

Takže na první pohled je jasné, že "Norští študáci", kteří v pradávné době AVR zkonstruovali nečetli Kubáčovy zásady nepřepóloivatelného konektoru, protože pokud se podíváme na "přepólovanou" tabulku je jasné, že nastanou velké problémy - na straně programátoru vám pravděpodobně shoří všechny 3 výstupní piny, tj RESET, SCK i MOSI, které budou bez výjimky napojeny na zem, Naopak na straně AVR vám shoří pin MISO, který bude připojen na 5V z programátoru.
Čistě pro úplnost si rozebereme ještě 6 pinový AVR port, který vznikl později a třeba se konstruktéři "poučili" :

Pin Č:Funkce AVRTypFunkce ProgramátorTyp
1MISOVýstupGNDZem
2VCC5VRESETVýstup
3SCKVstupMOSIVýstup
4MOSIVstupSCKVýstup
5RESETVstupVCC5V
6GNDZemMISOVstup

Řekl bych že u 6 pinového konektoru jsou při obráceném zapojení škody výrazně menší - na programátoru shoří RESET a na straně AVR shoří MISO.

Poznámky pro šťouraly
  1. Než mi začněte nasazovat psí hlavu, že to mám celé blbě uvažte, že vstupy na straně AVR jsou výstupy na straně programátoru a naopak tedy MISO alias Master Input Slave Output je už podle názvu Output na straně Slave ( AVR ) a Input na straně master ( programátoru)
  2. Blbuvzdornost výstupních pinů digitální logiky výrazně závisí konstrukci driverů daných pinů - pokud bychom uvazovali že výstupy jsou typu "open collector" s pull up rezsitorem - jejich násilné připojení na zem by jim nic neudělalo a tím pádem by přepólování 10 pinového ISP ustálo "ne-arduino" beze ztráty hvězdičky. AVR a většina moderní elektroniky má výstupy typu "Push pull", takže tam hrozí, že shoří "horní tranzistor".
Sepisováním tabulek jsem zcela vyčerpán, takže kdo si vezme papír a tužku a navrhne "blbuvzdorný pinout" bude mnou veřejně pochválen. Hodnotí se i kreativní řešní - teď mě napadá, třeba využití toho jednoho nezapojeného pinu ( na kterém v dávné době byla signalizační LEDka) k odpojení ohrožených pinů - třeba. Za takové řešení bude pochvala ještě větší - možná i od ostatních čtenářů.

Další poznámka pro šťouraly - jasně, že vím, že pinout 10 pinového konektoru není náhodný a řádka GND a VCC na "sudých pinech" je tam kvůli "signálové integrity" alias kvůli odstínění interferencí mezi datovými vodičích v plochém kabelu - prosím nebuďte "inženýři" a berte návrh "blbuvzdorného pinoutu" jenom jako mentální cvičení.

Tolik tedy blbuvzdornost AVR ISP portu a pokud se stane zázrak, těhotenské nevolnosti, pes, přeměna "13 komnaty" ( jak se u nás označuje skladiště bordelu) - na regulérní dětský pokoj dovolí - očekávejte schémátko a plošňák alespoň na "ne-arduino", pokud ne na nedodělaná robotická čidla, která asi nedokončím nikdy !!!
 

Buď první, kdo ohodnotí tento článek.

Komentáře

1 Karel Karel | 19. listopadu 2015 v 6:33

Chlapče posuň se o level jinde, když už kontaktní pole, kup si: http://www.ebay.com/itm/MINI-USB-Nano-V3-0-ATmega328P-CH340G-5V-16M-Micro-controller-board-Arduino-/161403910939?hash=item25946c3b1b:g:kEYAAOSwq7JT-wVU

Pochop, že arduino také = velmi levný univerzální HW který můžeš mít plné šuplíky, odpálíš MCU, vyhodíš celou desku

2 Karel Karel | 19. listopadu 2015 v 6:43

Jinak, pokud by jsi chtěl i dospělácky ladit, tak atmel má nový programátor, v OEM verzi zde http://cz.farnell.com/atmel/atatmel-ice-pcba/debugger-atmel-arm-avr-pcba-kit/dp/2407171
Pozor, umí ISP, JTAG i DebugWire

3 Karel Karel | 19. listopadu 2015 v 6:46

Ještě abych to upřesnil, použít arduino desku neznamená použít arduino SW!

4 wek wek | 19. listopadu 2015 v 11:02

Blbuvzdornost s 10-pinovym sa realizuje tak, ze nezapojeny 3. pin sa na "hrebeni" vystrihne a do samice sa na to miesto zasunie zaslepka.

5 m.marianek m.marianek | 19. listopadu 2015 v 11:55

Podle mě na "neodpalitelnost" výstupních pinů stačí pouhý rezistor do serie s výstupním pinem. Vstupy by měly být na vysoké impedanci a vstupní kapacita je tak malá, že i se stovkami ohmů v serii musí být náběžné hrany hodně pod mikrosekundu.

Ovšem zaráží mě proč odmítáte bootloader, když mě se naopak zdá, že právě tohle je ta správná cesta k jednoduché univerzální bastldesce. Pokud se na straně PC proudově posílí Tx v TTL úrovni, lze přes schottkyho diodu napájet celý bastl 5V a zároveň po tom drátu komunikovat i programovat. Celé spojení s PC je pak po 3 drátech (Rx, Tx, GND). Sebekriticky přiznám, že tahle "moje" koncepce skočila ve stadiu funkčních pokusů (komunikace a napájení fungovaly na jedničku) ve chvíli, kdy jsem přešel z win platformy na linux. Pokoušel jsem se o svůj vlastní bootloader a terminál pro seriovou komunikaci psaný v Delphi - proč blikat LEDkou, když můžu číst písmenka. Pak mi ale chcíp počítač a mě se už nechtělo to předělat všechno na linux, takže jsem potupně opět skončil u programátoru na paralelním portu a Avrdude. Co se týče samotné bastl desky, měl jsem ideu udělat destičku s AVR s konektory z ISA slotů ze čtyř stran a do nich pak zasouvat destičky s bastly, nebaví mě totiž neustále shánět nějaký posraný konektory, který v našem zapadákově věčně nemají, navíc to bastl zbytečně prodražuje. Takhle stačí jen vyleptat "ISA protikus" na patřičnou destičku a propojení s "matherboardem" je vyřešeno.

6 Derak Derak | 19. listopadu 2015 v 13:05

V tomto souhlasím s Karlem. Ty destičky jsou často levnější než samotný procesor v GM a je to bez práce. Navrhovat podobný bastl s AVR je v dnešní době ztráta času a peněz.
Jinak v programátorech AVR se běžně signálové cesty připojují přes cca 200 ohmové odpory což AVR výstupy ochrání a na programování to nemá skoro vliv.

7 map map | E-mail | 19. listopadu 2015 v 13:24

Nechápu. Vždyť ten konektor je zámkový. Abych to zapojil opačně, musel mych to "destruktivně upravit".
Jedině na Arduinu je obyč. 2x6 kolíková lišta. Ale na UNu je to tak blbý, že kabel programátoru nejde zasunout, protože tomu brání DIP patice :)
Jednou jsem omylem zapojil opačně programátor na čínský klon Arduina nano, které má také jen 2x6 kolík. Nano (a i programátor) k mému překvapení přežilo.

8 dotaz dotaz | 19. listopadu 2015 v 22:19

Chtěl jsem napsat to samé co Karel a Derak, ale koukám že už budu třetí v pořadí... Arduino Nano od soudruhů je už hotový a za vynikají peníze, na který se u nás nedostanem pomalu už ani za lístek na autobus do/z toho GMe. Má to vyvedený ISP, takže netřeba psát sketche - jde to používat jako normální běžný AVR, a pokud by na té desce NUTNĚ nesměl být převodník, tak stačí místo Nano zvolit Arduino Mini Pro, to ho na sobě nemá.

Ale myslím že autor to ví, jen testuje kolik radilů se ozve ;-) Jinde se přiznal že zná i něco z ARMů, a to je asi směr, který je dnes už pro robotiky vhodnější (ST se velmi snaží a má rock stable chipy a propracované kity za víc než příjemné ceny - jo, a nelítají v Pershingu :-D ).

9 gilhad gilhad | 20. listopadu 2015 v 0:33

[7]: konektor ano, ale ten je velky a nesikovny, taky uz jsem na to narazil a skoncil s sesti nozickama trcicimi do vduhu jen tak, jako nejmensim a nejlevnejsim resenim. Zvlast, kdyz jsem je potreboval trcet na strane spoju=pajeni

http://download.gilhad.cz/90mm/crop_scale_0085.jpg

10 Martin Martin | 20. listopadu 2015 v 5:40

Když už AVR co třeba tohle: http://paja-trb.cz/konstrukce/test_board.html

11 petr-kubac petr-kubac | 20. listopadu 2015 v 7:37

[10]: Ano - toto je prakticky méně učesaná verze mé myšlenky - přesněji "Ne-arduino" by měla být učesanější verze jeho myšlenky.

Na čísnké FAKE Arduina s FAKE čipy z Ebay - dvě za dolar třicet - opravdu nemám náladu.

12 P P | 20. listopadu 2015 v 11:20

[11]: Ta cinska FAKE Arduina funguji opravdu bezproblemu i pro nesoukrome ucely.

13 SPECZ SPECZ | 20. listopadu 2015 v 21:30

Co máte proti čínským duinům ? Fungují bez problémů, mám jich někde nastrkaných asi 60ks ve stálem provozu, a všechno funguje. A nic vás nenutí psát ve wiringu a používat bootloader, ISP to má vyvedený ...

14 Rosparovac Rosparovac | E-mail | Web | 20. listopadu 2015 v 23:29

Taky mám na základní ladění Fduino mega z ebaye. Zprovozněný bootloader i ISP programování atmegy 2560 vše z eclipse. Píšu v C. Dlouho jsem tyto vývojové desky odmítal a říkal že ladit budu na jednoúčelových deskách, ale praxe mě naučila, že přemýšlet jestli ta komunikace nejede kvůli špatnému návrhu dps (EMI - vlastní rušení) nebo kvůli chybě v programu je dost zapeklitá situace a pak člověk odpájí všechny součástky z DPS a pak zjistí že má nainkludovanou špatnou knihovnu... Takže i já podporuji číňany a jejich klony... Mimochodem vyrábíme si vlastní klony arduina RTOina, rovněž plně funkční a používáme je pro výuku studentů v posledích měsících hlavně erasmáků... Tam už využíváme sketch, protože ač jsou to kolegové z elektrotechniky, nikdy neviděli programování...

15 Vladimir Vladimir | E-mail | 21. listopadu 2015 v 9:21

Ja si zase myslim ze nejblbuvzdornejsi reseni programovani s dratem - je to programovani bez dratu. Nejlepe WiFi nebo BT desticka a butloader na desce.. Pripadne nejake bezdratove SPI.. A cas co zbude - delat neco uzitecneho :)

16 petr-kubac petr-kubac | 21. listopadu 2015 v 9:40

[14]: Nerad bych vypadal jako opravdový staromilec, ale Arduina - i originály - mají k poctivému návrhu dle zásad "elektromagnetické slušnosti" dosti daleko, takže používat je, nebo čínské klony jako "EMI vzdorné" řešení je dosti legrační

Ale já tomu rozumím - mravy upadají, naroutovat dobrý DPS je problém, protože důchodci neumí s moderními CADy a mládež to nebaví a proti větru se čůrat nedá ;-))

17 Karel Karel | 21. listopadu 2015 v 13:49

[16]: Mravy neupadají, spíš důvody co jsi popsal v článku, tedy děti, bydlení, manželka, na DPS není prostě čas :-D

18 dotaz dotaz | 21. listopadu 2015 v 14:16

[16]: No, proto jsem zmiňoval jako alternativu ARM kity od ST, kterou jste ve své předchozí odpovědi taktně vynechal... ty jsou na tom přeci jen o poznání lépe, takže proč by to nemohl být ARM? Ceny nejsou o moc vyšší, čipy i s nejjednodušším ARM jádrem (Cortex M0) se výbavou vyrovnají či předčí většinu AVR MCU, ceny stejné nebo jen o málo vyšší, co víc chtít? Ostatně ARMy vyrábí i Atmel, a určitě ví proč...

19 Pirx Pirx | 22. listopadu 2015 v 10:10

[18]:AVR jsem opustil před cca sedmi lety. Od té doby používám různé ARM od NXP: Starší věci mám na LPC2378, novější Cortex M3 (např. LPC1765) a na drobnosti Cortex M0+ s USB (LPC11U68JBD48). Po AVR už ani nevzdechnu :-)

20 Rosparovac Rosparovac | E-mail | Web | 22. listopadu 2015 v 11:20

[16]: Nerad jdu do opozice, ne-li až demagogie. Ale myslím si o sobě že celkem umím navrhovat, a to i s Vámi nenáviděnými SMD, vlastně povětšinou jenom s nimi. Nicméně přesně jak zde už pár lidí napsalo, navrhnout desku která sama sobě nedegraduje nějaké vlastnosti vyžaduje tolik času a tolik mentální energie  že se to nevyplatí... člověk potřebuje odzkoušet dalas a onewire a ono to nefunguje... a teď kde to je? V sw? a nebo kapacitou na DPS? Nebo prokovem? nebo ... Síla arduina není v jeho EMI čistotě, ani v čemkoliv jiném. JE to úplně normální bastl, nicméně tento bastl používá více než polovina bastlířů a tak prostě chyby jsou známé a nebo vychytané.
Zmiňované kity od STM používá kolega a  nemůže si je vynachválit, já jsem bohužel nedošel na tuto úroveň programování v C abych mohl přejít na ARMy zatím mučím AVR

21 Karel Karel | 22. listopadu 2015 v 19:12

Farnell vede i pekne kity od Atmelu s Xmegou, heslo je xplained http://www.atmel.com/tools/XMEGA-B1XPLAINED.aspx cena je kolem tisicovky. Arduino je samozrejme co se tyce EMI bastl, treba i keramiky ma neumerne daleko od MCU, ale je to stale kompromisne pouzitelne. Kdyz mi cerpadlo rusilo vycitani z DS1307 tak jsem holt ten modulek s baterkou pripajel hned k mcu a bez problemu.

22 Derak Derak | 23. listopadu 2015 v 12:42

Není až tak velký problém to navrhnout jako vyrobit.
Vytvořit v domácích podmínkách pl. spoj který by se kvalitou jen blížil čínským šmejdům je docela fuška a ne každý na to má podmínky.
Nechat si ho vyrobit profesionálně zase něco stojí a na výrobu podobných bastl desek se to asi nevyplatí.

Mám strach aby Petr neskončil tak, že bude po sto prvé vymýšlet kolo místo toho aby postavil vůz.

23 gilhad gilhad | 23. listopadu 2015 v 22:31

[22]:Fotocesta neni tak dlouha a slozita, vypalovacku pro ni Petr ma, takze od kompletniho navrhu k realizaci to za priznivych okolnosti muze byt tak hodinka i s uklidem :)

(Ale obavam se, ze priznivych okolnosti ted bude cim dal min, dokud to nepujde svest na zabavovani/edukaci potomka)

24 metan metan | 26. listopadu 2015 v 13:56

Ja teda na ISP pouzivam uz roky PSH02-06PG (viz treba gme.cz). Otocit to jde nasilim, nicmene co nejde...

A na programatoru mam odpory 240 Ohmu a zatim to diky tomu prezilo i jeden skrat na bastldesce.

Komentáře jsou uzavřeny.


Aktuální články

Reklama