AVR49: kitas grafinis LCD ILI9341

Šio LCD ekraniuko paleidimas užtrūko. Ir dėl kinų kaltės. Aprašyme buvo parašyta- maitinimas 5 arba 3V. Apžiūrėjau PCB- tikrai, stovi nedidelis reguliatorius, pajungus maitinimą viskas gerai- 3.3V stabilizuotas. Panašiai kaip ir mažesniam ekranėlyje kurį jau aprašiau. Tačiau viena subtilybė- kai gamino mažesnį ekraną, duomenų laiduose sumontavo rezistorius, todėl jungiant prie 5V MCU signalų lygiai daugmaž susitvarko. Ant didesnio ekrano PCB tų rezistorių nėra, todėl per duomenų šyną ir apsauginius diodus, ekrano kontroleris “užsimaitina” iki maždaug 5V. Kas baisiausia, kontroleris veikia- iš jo galima nuskaityti registrus. Netgi mano surastas softas nuskaito kontrolerio modelį ir programa praeina check-point. Bet taigi vaizdo tai nėra! Gal atitinkamai perprogramavus kontrolerį koks nors vaizdas ir atsirastu, bet datašytas sako- 5V niu-niu. Teko sudeginti milijardą nervinių ląstelių ir staiga ekranas pradėjo dirbti:

color LCD SPI ILI9341 AVR
Tas didesnis ekranas, su raudona plokštele tai 320×240 pix SPI ekraniukas su ILI9341 kontroleriu. Palyginkit seno straipsnio nuotrauką ir šią nuotrauką. Iškarto matosi, kad rezoliucija šio ekraniuko žymiai geresnė.

Aišku source kodas AVR šeimos procesoriukams, ir sukompiliuotas HEX skirtas mano universaliai PCB ir ATMEGA16 @12MHz. SPI dažnis maksimalus- 6MHz (Kiek parodė vėlesnis eksperimentas SPI dažnis galimas ir didesnis, LCD ekraniukas dirba ir su ~24MHz CLK dažniu. Todėl čia dažnis maksimalus kokį išspjauna mano ATMEGA16 plokštė). Naudojamas hardwarinis SPI.
ILI9341 LCD SPI source code AVR-ATMEGA16 ir hex.

Mažas maitblokis bandymams

Mano impulsiniai maitblokiai gana stipriai triukšmauja į eterį. O prisireikė mažyčiuko, mažo galingumo maitblokiuko eksperimentams ant stalo. Buvo apmastytos įvairios schemos ir kiek atšoko noras ką nors daryti. Kol vieną dieną newsgroupe vienas žmogus urmu pardavė savo detalių kolekciją (matyt keičia savo hobio ar profesijos profilį), tai mano rankose atsirado didelis kiekis nelabai man reikalingų detalių. Tarp jų – visas kalnas didesnės galios ir aukštesnės įtampos operacinių stiprintuvų iš OPA serijos. Aišku čia ne tie geruliai kur dariau savo garso stiprintuvą, bet vistiek gana galingi OPA549. Pagal datašytą: 8A continuous, 10A peak išėjimo srovė, iki 60V įtampa. Mikroschema skirta ne kiek stiprinimui, o visokiausiu mechanizmų valdymui- servo varikliams, klapanams ir maitblokiams. Garso stiprinimui nelabai tinkama dėl riboto dažnio ir fazinių iškraipymų. Nu gal kokį “basavyką” gal ir galima sukonstruoti. Kažkur, užsienio forumuose, radau, kad kažkas darė “neužmušamus” maitblokius iš šių mikroschemų, tai nutariau ir aš padaryti.
Šie faktoriai ir dar tas, kad buvo užsakytos pramoninės PCB pajudino mano maitblokio konstravimą.

linear PSU OPA549
Mikroschemos dviejų korpuso variacijų- visos kojos eilėje arba dviem eilėm. PCB padariau universalią- tinka abu variantai. Schema standartinė, iš datasheeto- atraminio stabilizatoriaus įtampa dalinama kintamu rezistorium ir “stiprinama” operaciniu stiprintuvu. Srovės ribojimas atliekamas tiesiogiai valdant operacinio įvadą.
Continue reading →

Kažkoks ventiliatoriaus kontroleris

Biški filler straipsnis. Eidamas po autolaužyną pakėliau rodos VW Golf aušinimo ventiliatorių su kažkokiu kontroleriu. Jei tiksliau, detalė BOSCH 1 137 328 616. Nukirpau kontrolerį tolimesniui laužymui ir partempiau namo…

ventiliatoriaus apsuku kontroleris BOSCH
Output- juodas ir baltas laidas. O iš kažkur iš automobilio ateina maitinimas tikriausiai rudu ir raudonu ir kažkoks matavimo ar kontrolinis signalas plonais laidais.
Continue reading →

Analoginių ampermetrų ir voltmetrų naudojimas

Kai tik kur nors ardomas koks prietaisas ir aš netoliese, ir dar jei jame būna rodykliniai prietaisiukai, tai juos ir išlupu. Nes mažuose prietaisiukuose naudingų medžiagų kiek katino ašarų, o štai rodyklinis prietaisiukas kartais labai patogus naudoti. Štai ir dabar konstravau tokį prietaisiuką ir nutariau primontuoti mažiuką voltmetrą. Turiu aš kelis skaitmeninius voltmetrus, bet jiems labai dažnai reikia izoliuoto maitinimo šaltinio. Deja šioje konstrukcijoje tokio nebuvo ir nebuvo noro konstruoti, tai nutariau panaudoti ką nors rodyklinio. Juolab, kad tikslumo man čia nereikia.

analoginiai ampermetrai voltmetrai
Continue reading →

Vandenilio generatorius

Papuolė į rankas blogas vandenilio generatorius, Peak Scientific Instruments Ltd, CHF 200. Kadangi recyclingo atžvilgiu jame labai mažai metalų (nu gal vario tai daug), tai pradžiai užsinorėjau jį paleisti.
Tačiau aparatas buvo “iškrautas iš automobilio” mėtymo budu ir dar buvo nuplėštas korpuso dangtis. Dar jis pagulėjo “auštyn kojom”, o gal ant šono, tai skysčiai galėjo patekti ne ten kur reikia.

Peak Scientific hydrogen generator
Todėl pradžiai aparatą išnarsčiau. Kartu prifotkinau keletą nuotraukų. Šiaip, fotkinau tam, kad uždokumentuoti visus sujungimus. Nes jei ką nors išardai, kartais sunkoka surinkti atgal be instrukcijų.
Continue reading →

AVR48B: lietingas savaitgalis

Biški lijo, biški tingėjau… O ir buvo knietulys pažaisti su spalvotu LCD ekraniuku. Todėl, prisimindamas savo seną kompiuterį ATARI, nutariau pasidaryti nedidelį Arkanoid (アルカノイド Arukanoido) kloną.
Kadangi tai nepilnos dienos kūryba, tai pilnas bugų ir klaidų. Bet šiaip sušildė širdį. 🙂

Kai kurie bugai priminė originalų atari variantą, tai gal juos reikės palikti. Jei pabaigsiu ir bus poreikis pas skaitytojus, paviešinsiu source kodą.

AVR 48: ST7735 grafinis LCD

Pajungsim prie mano universalios ATMEGA16 plokštės grafinį LCD ekraniuką iš eBayjaus.
LCD ST7735 with AVR ATMEGA16
Paprastas, pigus spalvotas 1.8″ TFT ekraniukas jungiamas per SPI. Pilnas eBay tokių ekraniukų. Kontroleris ST7735.
Internete pilna visokiausio softo, bet jis skirtas arba kitiems procesoriams, arba su arduino anstatu. O man reikėjo gryno paprasto GNU C. Tai teko kiek pavargti kol suklijavau iš kelių gabaliukų.
Navarotai tokie:
proporcinis ar monospace šriftas (tiesa, fonto duomenys 8 bitų aukščio), proporcinis šriftas tas pats kaip ir ant ARM eksperimento. Tiesa yra galimybė grubiai didinti šriftą. Ką ir rodo iliustracija.
Paišo grafinius primityvus: taškas, užtušuotas stačiakampis, stačiakampis, apskritimas, užtušuotas apskritimas, H ir V linija.
Priima duomenis (blob tipo) ir deda ant ekrano- galima įkelti paveikslėlius. Reikės kiek pavargti ir padaryti “penis harder” paveiksliuko iliustraciją. Priima “nekompresuotą” RGB (24bit) arba supaprastintą RGB (16bit).

Ir aišku source code bei kompiliuotas hex.

ST7735 LCD driver for AVR ATMEGA16, source code.

Laboratorinė maišyklė. Antra dalis

O dabar sudėtingas variantos to, kas jau buvo išbandyta senesniam straipsnyje. Gal galima padaryti magnetine maišyklę be mechanikos- tereikia sukurti besisukantį magnetinį lauką. Tokius laukus turi visi elektros motorai, tai gaunasi, kad mums reikia sukurti elektroninį motoro valdymą. Maišyklei reikia gero pradinio sukimo momento, gal būt “soft start”. Tai pasirinkau industrinį standartą- trys fazės. Gaunasi kaip ir standartinis lėktuvėlio modeliuko kontroleris, tačiau skirtumas, kad šis “dažnio keitiklis” visiškai asinchroninis, nes nėra nei holo jutiklių, nei srovės ar įtampos matavimo. Paprasčiausiai paprastas keitiklis.

Čia jums klasikinės trifazės iliustracija:
AVR trifazis generatorius
Bangos, t.y. fazės pasislinkusios viena kitos atžvilgiu per 120 laipsnių (1/3 apskritimo)
Ir pati banga yra sinusoidė. Todėl kontroleris (šį kartą AVR ATMEGA48V10) turėtų skaičiuoti sinusus. Tačiau trigonometrija pernelyg daug resursų reikalaujantis reikalas, todėl viską prastinam.
Continue reading →

ARM:0012 ADC

Prisikasėm prie šio procesoriuko ADC (analog to digital converter). Čia irgi biški iškilo problemų. Pagrindinė- rodos nereikia nurodinėti, kad ADC koja priskiriama specialiai periferijai, o ne standartiniam PIO. Tipo jei pasirenki ADC kanalą, tai viskas susikonfiguruoja automatiškai. Kažkas man čia neaišku.
Dar dėl ADC periferijos clock, tai tipo jis visada įjungtas ir neišsijungia. Rodos taip parašyta datasheete.

Nu nėra ką čia daugiau pridurti. Veikimo principas panašus kaip ATMEGOJE, tik papildomai yra ne tik paskutinio nuskaityto ADC kanalo registras, bet ir kiekvienas ADC kanalas turi savo “asmeninį” registrą kurį galima vėliau nuskaityti.

Nu ir aišku source kodas bei kompiliuotas hex kodas, hexas sukompiliuotas Atmel AT91SAM7S256AU serijos čipui.