torstai 3. toukokuuta 2018

Softaprotoilua

No niin, ensimmäinen softaproto on nyt tehty ja testattu. Hyvin toimii ainakin testipenkissä eli projektilla on mahdollisuus jopa onnistua. Alla on kuva testijärjestelystä:

ATmega8 ensitestissä

Testausta tein siten, että ensinnäkin ATmega8 on AVR Dragon kehitysalustan kortilla ja prossu on yhdistetty hyppylangoilla Dragonin ISP-ohjelmointiliittimeen. Kun Dragon on yhdistetty USB:llä PC-koneeseen, niin saan ladattua ohjelmabinäärin ATmega8:n flash-muistiin eli flässättyä sen suoraan prossulle. Tässä vaiheessa huomasin, että oli valinnut vähän harkitsemattomasti samoja GPIO-pinnejä käytettäväksi DPS-outputtien ohjaukseen, joita käytetään myös Dragonin ja ATmega8:n väliseen kommunikointiin. Jotta hyppylankoja ei tarvitsisi ohjelmoinnin ajaksi vaihtaa paikasta toiseen, tein softaan sellaisen pienen muutoksen, että kun siitä käännetään debug-versio, niin käytössä on eri GPIO-pinnikonfiguraatio kuin lopullisessa versiossa. Hyppylankoja tulee ihan kohtuullinen määrä kuten kuvasta näkyy:

 ATmega8 johdotettu AVR Dragonista ST62T15:n kantaan

Softa sinänsä toimi lähes ensimmäisellä yrittämällä ongelmitta. Tässä ehkä näkyy kokemus, kun tästä huomattavasti vaativampia softaprojekteja on tullut aika pitkään tehtyä. Eipä tuohon paljon lähdekoodirivejä tullut, harvoin on tullut näin pieniä softia (kokonaisuudessan luokkaa 500 riviä lähdekoodia) tullut kirjoiteltua. Suurin ongelma käyntiin saamisen kanssa oli yksi viallinen hyppylanka, vika selvisi vasta mittaamalla kaikki hyppylangat yleismittarilla. Tämä on tätä tyypillistä kiinalaista laatua. Kun halpaa ostaa niin vikariski on aina olemassa. Tosin tuolla 20 kpl:een puolentoista euron hankintahinnalla (sis. pk.) ei itse viitsi alkaa näitä väsäämään, pienet laatupoikkeamat sallittakoon.

Kun mekaniikkaa ohjataan digitaalisesti, ongelmaksi usein tulee ohjauksen nopeus. Tuollainen 8-bittinenkin RISC-prossu toimiessaan pienimmällä mahdollisella kellotaajuudella (ATmega8:ssa 1 Mhz) suorittaa se n. miljoona toimenpidettä eli käskyä sekunnissa ts. millisekunnissakin vaikkapa ohjattavaa lähtöä ehditään heiluttelemaan luokkaa tuhat kertaa ja ATmega8:n perustajuudella (8 MHz) jo luokkaa 8000 kertaa.

Solenoidin toiminta-aika ilman eritystoimenpiteitä on luokkaa 30-80 ms, joka prosessorin mittakaavassa on todella pitkä aika: prossu ehtii tekemään kymmeniätuhansia tai jopa satojatuhansia käskyjä tuona aikana. DPS-ohjauksessa on lisäksi otettava huomioon hydrauliventtiilin toiminta-aika, joka sekin on luokkaa vähintään 10-20 ms. Eli kovin nopsasti venttiileitä ei saa yrittää avata ja sulkea. Käytännössä tämä tarkoittaa sitä, että kun venttiiliä ohjaavan solenoidin tilaa muutetaan, pitää toimenpidettä odotella luokkaa 100 ms eli 0,1 s eikä tänä aikana saa yrittää muuttaa tilaa uudestaan (eli valita uutta vaihdetta). Tämän 100 ms viiveen ohjelmoin myös tähän softaan oletuksena eli tuona aikana ei uutta ohjausta tehdä. Pitää vielä varmistaa olenko oikeilla jäljillä kunhan saan toimivan DPS-ohjainkortin käsiini. Aiemmin en ole tätä ohjaussekvenssiä tällä tasolla aika-akselilla tutkinut.

Tästä on hyvä jatkaa softan testausta ja viimeistelyä. Seuraava isompi askel tulee sitten, kun saan tilaamani piirilevyt ja saa asennettua uuden prossun DPS-kortille ja pääsen kokeilemaan korttia itsenäisesti. Sen jälkeen kortti otetaan käyttöön oikeassa ympäristössään eli koekäytän sitä Valtran traktorissa riittävän pitkän koejaon (päiviä tai viikkoja).

Tässä vaiheessa voisin tehdä pientä yhteenvetoa projektin kustannuksista. Rahaa ei juurikaan ole kulunut lähinnä siksi, että itselläni on ollut valmiina aika paljon tuotekehityksessä tarvittavaa kalustoa. Suurin kustannus oli piirilevyjen hankinta, ne maksoivat kokonaista 13 euroa/10 kpl. ATmega8 maksaa Suomesta kaupasta ostettuna n. 4,50 e/kpl. Viallisen DPS-ohjainkortin prosessorin korvaamisen tarvittavat osat maksavat siis n. 6 euroa, alle kympillä saa jo vanhat konkatkin uusittua todella hyvälaatuisilla versioilla. Eli kovin paha hinta tämä ei ole verrattuna uuden varaosakortin hintaan, joka alvillisena on tietääkseni nykyään luokkaa 700 euroa. Kympillä en tietenkään tule näitä korjauksia tekemään, mutta uuden kortin hintaan verrattuna erittäin kohtuullisella hinnalla korjaus tulee kyllä onnistumaan. Jos siis näitä prosessorivikaisia kortteja alkaa ilmaantumaan enemmän...

Ei kommentteja: