{"id":402,"date":"2009-05-20T09:34:48","date_gmt":"2009-05-20T12:34:48","guid":{"rendered":"http:\/\/yeti.albascout.ro\/blog\/?p=402"},"modified":"2009-05-20T09:34:48","modified_gmt":"2009-05-20T12:34:48","slug":"portc-pe-atmega32","status":"publish","type":"post","link":"https:\/\/yeti.albascout.ro\/blog\/portc-pe-atmega32\/","title":{"rendered":"PORTC pe ATMega32"},"content":{"rendered":"<p>Scriu acest post pentru c\u0103 e util s\u0103 \u00eenve\u021bi din nop\u021bile pierdute ale altora, ca s\u0103 ai timp s\u0103-\u021bi pierzi nop\u021bile pe altceva, mai interesant :).<\/p>\n<p>Am ajuns t\u00e2rziu ieri la \u0219coal\u0103, pentru c\u0103 am fost s\u0103 dau jos blana, \u0219i m-am hot\u0103r\u00e2t s\u0103 nu plec p\u00e2n\u0103 nu fac modulul de condus motorul s\u0103 mearg\u0103 (o s\u0103 scriu mai pe larg despre el, \u00een mai multe posturi despre a mea viitoare licen\u021b\u0103). Evident, treaba p\u0103rea simpl\u0103 \u0219i a devenit tot mai groas\u0103 pe m\u0103sur\u0103 ce treceau orele.<\/p>\n<p>Am sc\u0103pat de c\u00e2teva conexiuni gre\u0219ite, mi-am dat seama ca am pus diodele de protec\u021bie de peste bobinele de la relee pe dos, totul p\u0103rea ok p\u00e2n\u0103 \u00eentr-un punct. Pun un <strong>ATMega32<\/strong> nou nou\u021b \u00een soclu, setez direct AVR Eclipseu la 1MHz ca sa nu mai resetez fuse-uri, programez, super tare, merge. Pun multimetru pe picioarele ATMega, care ar fi trebuit s\u0103 trag\u0103 tot portul C pe ie\u0219ire, pe 0. Jumate din pini erau la 0. Restu, la Vcc. WTF?<\/p>\n<p>\u00cemi dau seama un pic mai t\u00e2rziu c\u0103 PC0 \u0219i PC1 sunt lega\u021bi la conectorul meu pentru I2C, \u0219i sunte lega\u021bi la Vcc cu ni\u0219te pull-up-uri ca s\u0103 mearg\u0103 cu brick-urile NXT. Bun. Dar restul? Mai erau cel pu\u021bini 3 pini care erau str\u00e2mbi. Din care unu exact \u0103la pe care mi-am legat eu ie\u0219irile pentru comanda la motor. Am mai pierdut vreo or\u0103, dou\u0103 \u00eentreb\u00e2ndu-l pe prof, c\u0103ut\u00e2nd scurt-uri pe plac\u0103 &#8230;<\/p>\n<p>Am scos por\u021bile logice, am zis ca poate fac alea ceva. Niet, no luck. Am schimbat controller-ul cu cel de la ma\u0219inu\u021ba pentru Eurobot, aceea\u0219i poveste. \u00centr-un final, pe la 6:45 AM, deja m\u0103 ridicasem de pe scaun s\u0103 merg la \u0219aorma, m\u0103 g\u00e2ndesc s\u0103 m\u0103 uit eu pe datasheet la ATMega s\u0103 vad dac\u0103 n-au ei ceva \u0219mecherie cu Portu C. Urmeaza partea cu informa\u021bie util\u0103 din acest post:<\/p>\n<p>Se pare c\u0103 ATMega32 (\u0219i presupun c\u0103 \u0219i alte ATMega-uri) au anumite PORT-uri din portul C care nu pot fi utilizate pentru I\/O \u00een momentul \u00een care este activat <a href=\"http:\/\/en.wikipedia.org\/wiki\/Joint_Test_Action_Group\">JTAG<\/a>-ul pe controller. Este vorba despre pinii PC5, PC4, PC3 \u0219i PC2. Solu\u021bia, evident, este s\u0103 se dezactiveze JTAG-ul. Asta se poate face prin de-programarea siguran\u021bei (fuse) JTAGEN de pe ATMega. Eu am folosit <a href=\"http:\/\/www.nongnu.org\/avrdude\/\">AVRDude<\/a> (pentru Linux), pe Windows foloseam <a href=\"http:\/\/www.lancos.com\/prog.html\">PonyProg<\/a>. Pentru AVRDude, ca s\u0103 nu cau\u021bi referin\u021be gr\u0103mad\u0103 prin datasheet, exist\u0103 <a href=\"http:\/\/www.engbedded.com\/fusecalc\/\">site-ul asta<\/a>, care \u00ee\u021bi formeaz\u0103 automat comanda pentru avrdude.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Scriu acest post pentru c\u0103 e util s\u0103 \u00eenve\u021bi din nop\u021bile pierdute ale altora, ca s\u0103 ai timp s\u0103-\u021bi pierzi nop\u021bile pe altceva, mai interesant :). Am ajuns t\u00e2rziu ieri la \u0219coal\u0103, pentru c\u0103 am fost s\u0103 dau jos blana, \u0219i m-am hot\u0103r\u00e2t s\u0103 nu plec p\u00e2n\u0103 nu fac modulul de condus motorul s\u0103 mearg\u0103 &hellip; <a href=\"https:\/\/yeti.albascout.ro\/blog\/portc-pe-atmega32\/\" class=\"more-link\">Continu\u0103 s\u0103 cite\u0219ti <span class=\"screen-reader-text\">PORTC pe ATMega32<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[564],"tags":[569,727,811],"class_list":["post-402","post","type-post","status-publish","format-standard","hentry","category-roboti","tag-atmega","tag-cs-pub","tag-licena"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/posts\/402","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/comments?post=402"}],"version-history":[{"count":0,"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/posts\/402\/revisions"}],"wp:attachment":[{"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/media?parent=402"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/categories?post=402"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yeti.albascout.ro\/blog\/wp-json\/wp\/v2\/tags?post=402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}