ATMEGA USB 001 (schema)

Kaip jau minėjau, prisirankiojau aš keliolika ATMEL ATMEGA16 procesoriukų. Nutariau pasinagrinėti šio mikrokontrolerio darbą ir ką nors sukonstruoti. Kadangi šis mikrokontroleris turi kiek daugiau atminties, nutariau surankioti iš interneto C kalbos paprogrames ir pritaikyti savo eksperimentams. Visos programos įdėtos į šiuos interneto puslapius bus ištestuotos ir veikiančios. Bandysim ištaisyti visas galimas klaidas- pvz. vienoje USB programoje ir draiveriuose buvo supainioti vieno baito MSB ir LSB. Tai kainavo man dvi dienas darbo 🙂 kol suradau svetimą klaidą. Kas mėgino programuoti, žino kaip sunku isijausti į svetimą programą.

AVR USB

Kadangi internete prisirankiojau visokių projektų, teko pasidaryti specialią plokštę. Jis šiek tiek universali- todėl daugumas skirtingu projektų veikia ant tos pačios hardwarės.
Projektuose bus nagrinėjama: ADC, USB komunikacija, I2C, LCD modulių pajungimas, IR imtuvas (distancinis valdymas) ir t.t.
Šiam multi projektui reikia įsigyti ATMELio ATMEGA16 (gal ir tiks ir kitos, bet aš naudosiu 16 nes daug turiu), 12MHz kvarcą, USB B lizdą (iš usb imamas ir maitinimas), keletos rezistorių ir kondensatorių ir keletos šviesos diodų ir vieno kintamo resitoriaus. Taip pat reikės kištuko programatoriui ir LCD moduliui (nors modulį galima prilituoti laideliais).
PCB plokštelė padaryta ant vienpusio folguoto tekstolito, todėl PCB lengva pasidaryti namuose. Mano lazerinis printeris višai nupušo, todėl aš stengiuosi daryti plokšteles su kiek galima storesniais takeliais. Plokštė reikalauja 8 laidelių (airwires).
LCD modulis- pats paprasčiausias 2×16 simbolių alphanumerinis indikatorius su populiariausiu HD44780 kontroleriu.

“Aparato” schema:
AVR USB
(spauskit ant paveiksliuko kad pažiūrėti smulkiau)

Spausdintos plokštės eskizas:
AVR USB

Schema ir PCB Eagle formate .

MCU programuojamas su Altera ByteBlaster MV programatorium, su AVREAL programa. Beja, turiu pranešti, kad eksperimentuodamas sudeginau savo kompiuterio motinos LPT1 portą ir dabar naudoju papildomos kortos LPT adapterius.

avreal/WIN32 - AVR controllers LPT programmer by Redchuk Alexandr
v1.25rev5 (Jan 15 2007 20:02:38) http://www.ln.com.ua/~real/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua

Todėl aš kiek pakeičiau “make” failą. Tiksliau jo “programavimo” dalį. Pasikoreguokite pagal savo turimą programatorių arba nenaudokit “make program” komandos.

2012.08.05
Ši PCB ir kogero schema paseno. Nuo šios datos naudojama nauja versija. This PCB is absolete, please check new one in this web blog entry.

13 replies on “ATMEGA USB 001 (schema)”

  1. Na programavimui gali naudoti AVRDude kuris yra kartu su WinAVR. Tereikia Makefile template irasyti programatoriaus tipa tuomet pasirenki Program is Programmers Notepad menu ir tau sukompiliuos ir irasys hex i chipa vienu mygtuko paspaudimu. Sekmes lukstenant si projekteli.

  2. Kondensatorių talpos nekritiškos. C7 ir C6 keliolika pikofaradu. Ir nevisada jų reikia. Plačiau apie tai Megos datašyte. Jei naudoti rezonatorių su trim kojom, tų kondikų nereikia.

    Visi likę kondikai BET KOKIOS, KIEK GALIMA DIDESNĖS talpos 🙂 Gal tik C1 labai didelio nereikia, užteks 0.1uF.

    Stabilitronai tik saugumui (pas mane veikia ir be jų)- 3.3V

    SJ1- tai džiumperis ant plokštės. Todėl, kad internete yra softas IRDA žaidimams. Ir vienas softas prijungtas prie D6, o kituose prie D3.

  3. Tai jeigu deciau ten prie lcd paprasta potenca 2k tai uztektu jo? Ir prie diodu jungciau 470omu varzas ? Ir ar nieko tokio jeigu programatorius butu su Max232(is elektronikos.lt)?

  4. Programatorius betkoks kuris ISP programuoja šias mikroschemas. Pvz. dabar aš naudoju USB-Blaster. Apie kurias 470 varžas tu šneki? Jei tai prie LEDu, tai svarbu kad srovė neviršytu max leistina srovę per LEDą ir Megą. Manau tiks. Prie MOSI MISO (vietoj 100) tinka irgi bet kokios. Tie 100 skirti apsaugoti, jei bus koks trumpas jungimas.
    Potencikas irgi bet koks (proto ribose) jo minimumas- tai kokia srovė per jį tekės (tinka kad ir 1K jei ne iš kokios mažos batareikės maitini) iki keliasdešimt kiloomu- priklauso nuo kokia srovė teka per LCD maitblokį (labai maža srovė). Kai kuriuose LCD galima išviso apseiti be potenciko- užtenka 3 užtrumpinti į žemę…

    Kai buvau visiškai žalias irgi mane jaudindavo įdealių- identiškų schemai detalių paieška. Bet kai supranti kaip schema veikia, dažnai supranti, kad schemoje yra didelė laisvė. Ši schema yra YPAČ laisva. Beveik visos detalės yra “dzin”, išskyrus kvarco dažnis- jei bus kitoks, bus didelės problemos su USB pajungimu.

    Beja, išbandžiau šia schemą kaip HID USB klavietūra- veikia puikiausiai be jokių pakeitimų. Galima pasidaryti kokia papildomą klavietūrą ar “counter strike” šaudyklę. 🙂 Žadu įdėti naują straipsnį “ant dienų”.

  5. sveikas,

    turiu keleta ATMEGA32A, gal zinai kodel vieni ju, esant 3.3v maitinimui, UART’u siuncia gera tvarkinga teksta ,kaip priklauso, o pajungus 5v tekstas iskraipomas, siuncia neaiskius simbolius?

    ka padaryt kad jis tvarkingai veiktu esant 5v?

    aciu

  6. Nu su tokiu efektu nesusidūriau. Tačiau dažniausiai, UARTO “teksto teisingumas” priklauso nuo taktinio dažnio. Nežinau, niekada nebuvo taip, kad kvarcas nuplauktu nuo maitinimo įtampos.
    Gerai būtų nuskaityti UARTo informaciją su loginiu analizatorium arba oscilografu, kad pamatyti kokio pobūdžio klaidos.

    Nu ir dar lieka kaip nuskaitomas “tekstas”, koks ten imtuvas. Gal jis 3V logikos ir nepalaiko signalo su 5V logiką.

  7. atmegos veikia su vidiniu RC oscil. 8mhz dazniu, per uart comunikuoja su senuku siemens telefonu.

    pasiskaitinejau kad reiktu pakeist CALIBRATION BYTE , kad sukalibruot vidini RC osc. nors dar nesupratau kaip tai padaryt. naudoju USBASP programatoriu ir extreemburner valdiklius suprogramuot, nors extreemburner turi numatyta funkcija keist CALIBRATION BYTE, bet deja tik nuskaito, tas pats ir su ponyprog’u naudojant paprasciausia savos gamybos programatoriu per COM porta is sio saito

    http:/ /www.circuitvalley.com/2011/04/avr-serial-port-programmer.html

    naudoju kompiliatoriu mikrobasic pro for avr, jame pakeiciau valdiklio dazni is 8.000000 hz i 8.150000 hz ir suveike, tikriausiai tuo sprendimu ir baigsiu

  8. RC osciliatorius… nu tada jo. Nu 8MHz tikrai nėra tinkamas dažnis kokybiškam ryšiui. Yra toks “WormFood’s AVR Baud Rate Calculator”, kuris labai gerai parodo kas ir kaip.
    O šiaip, pasikeis kokios nors sąlygos ir vėl nebus ryšio. Nori patikimo ryšio,statai kvarcą ir nesuki smegenų.

    O programatorius… nu nusipirk iš kinų USB programatorių. Nereikės nesamonių su COM ar LPT portu. (USBasp)

Leave a Reply

Your email address will not be published. Required fields are marked *