Warning: Illegal string offset 'name' in [path]/includes/functions.php on line 6439
ATTINY13 no programmēšanas uz darbību un atpakaļ. -
+
1 2 3 4 ...

thread: ATTINY13 no programmēšanas uz darbību un atpakaļ.

  1. #11
    Moderator
    Jan 2009
    Rīga
    4,406

    Mēginājums kļūt par žurnaļugu-pedagogu, jeb vajš šiepstiens publicistikā:

    Sākam ar vienkāršo.
    Arduino Uno ar AtMega328.
    Mirrenē ir vairākas atmiņas:
    Flash memory
    EEPROM for data
    RAM
    FUSES

    Ieslēdzot elektrību kontrolieris izpilda programmu. Programma glabājas FLASH atmiņā. Drīkst ierakstīt, dzest utt ~ 100 000 reizes. Bet... pagaidām pieņemsim ka programma pati sevi nevar pārrakstīt. Tikai pagaidām tā pieņemsim. Tātad te ir mūs ūberprogramma. Veseli 32 kilobaidi, bet windows tur neieinstalēsi.

    RAM. RAM kā jau RAM. Tā pat kā kompim. Glabājam datus. Piemēram skaļumu. Skaļuma poča uzgriesto skaļumu kaut kur jāglabā... Te tad arī glabājam kamēr kontrolieris ieslēgts, bet... Izslēdzam elektrību un viss pazūd. Bet tomēr gribās kad nākošreiz ieslēdz savu DIY audiorastisko ellesmašīnu, skaļums saglabājas tāds pat kā tad, kad vakar vakarā malkojām vīnu sveču gaismā. Komerciāli aparāti māk atcerēties pēc elektrības izslēgšanas. Mūsu pipelizatoram arī jāiemāca... Kā? Starp citu RAM ir ~ 2 Kilobaiti.

    Ir arī tāds zvērs EEPROM. Daudzi nesaprot un jauc ar FLAS programmu atmiņu. Kam tas vajadzīgs? Tur mēdz ierakstīt "kaut kādus" datus. Nafig vajag? Taisam digitālo poci. Viss forši. Programma strādā skaļumu regulē, silda audiorastiskos kabeļus utt. Ši atmiņa māk saglabāt datus arī bez elektrības. Un tur var rakstīt 1 000 000 reizes. Bet... Apjoms tikai ~128 baiti. Tomēr ar to pietiek. Nospiežam podziņu, skaļums pieaug. Uzreiz ierakstam skaļumu no RAMa EEPROMā. Kad kontrolieris bootojas, tad nlasam no EEPROM vakardienas skaļumu. Aparāts atcerās uzstādījumus. Glīti? Bailes ka pārsniegsim ieraksta ciklu skaitu? Sīkums. Čāli uztaisīja eksperimentu. Nav tik traki. Tev nokalos gadus 20 pie normālas grozīšans+saglabāšanas.

    FUSES. Drošinātāji, ibio. Vismistiskākā daļa. Patiesībā nevis ibio, bet gan mikrokontroliera BIOS. Tur galbājas settingi kā kontrolierim strādāt. Piemēram: Kādu generatoru uzmantot? Iekšējo RC, ārējo kvarcu, tainsūri utt. Aizliekgt nolasīt programmu no FLASH, lai dzeltenie nekopē Tavu ūberproduktu. Lai arī, tik un tā nokopēs. Maitas, ne? Tad arī stāsts par Jurkina RESET kājas epopeju. Ko darīt ar RESET kāju? Resetot/programmēt kontrolieri vai arī izmantot kā PB5. Citas fīčas, kuras rakstītas datu lapā. Svarīgi: Programma no FLASH pilnīgi neko nezin par FUSES esamību. Tāpat: klasiskā iesācēja kļūda: līst pie FUSES, rezultātā mikrene paliek mēma un izmetama ārā. Taisnām rokām var atdzīvināt, bet tas nav iesācēja stāsts.

    Kā notiek programmas dabūšana kontrolierī? Pieslēdzam ISP programmatoru un iepūšam programmu FLASH atmiņā, Uzstādam FUSES utt.

    Viss jau būtu forši, bet muzikantiem, māksliniekiem un indigo no tā nesaceļās. viņiem vajag plug-and-play. Te nu arī parādās arduino un mistiskais bootloaderis.
    Izrādās ka programma, kura izpildās no FLASH patiesībā var pati sevi pārrakstīt. Wow? Kāpēc tā vajag? Kā būtu ja mēs uzrakstam mazu programmiņu, kura lasa datus no seriālā porta un ieraksta pati "sevī", tobiš FLASH atmiņā. It speciāls FUSE, kurš to var atļaut. Tieši tā strādā arduino parastais un arī paštaisītais.
    1) nopērkam Atmega328 mikreni, kurai FLASH atmiņa ir tukša.
    2) paņemam programmatoru un ierakstam FLASH atmiņā bootloaderi (pašrakstītu vai aizņemamies no Arduino web lapas)
    3) Viss. Esam laimīgi, jo ir bootloaderis.

    Tālāk notiek interesantākais:
    1) Ieslēdzam Mikrenei barošanu.
    2) Mikrenē palaižas bootloaderis.
    3) Bootloaderis apmēra vienu sekundi gaida datus no seriālā porta. Ja dati ir, tad 4. punts; Ja datu nav, tad 5. punts
    4) Saņemtos datus (mūsu arduino programmu) ieraksta FLASH atmiņā.
    5) Bootloaderis palaīz mūsu ierakstīto programmu.
    6) Programma blinkina LEDus, groza skaļumu utt.

    Tātad...
    1) Nopērkam gatavu arduino. Tur mikrenē jau ir ierakstīts bootloaderis.
    2) pieslēdzam pie datora caur USB
    3) Dators arduino atpazīst kā Seriālo (COM, UART, sauciet kā gribat) iekārtu.
    4) Uzrakstam savu programmu un arduino vide, sadarbībā ar bootloaderi, ieraksta mūsu programmu kontrolierī.
    5) Kaifojam.

    Ērti un savietojami ar jebkuru datoru utt. Nevajag nekādus programmatorus. Vienkārši raksti programmu un testē.

    Ja gribās padziļināti iebraukt, tad jāmeklē papildus literatūra.

    Tādi, lūk, pīrāgi.

  2. #12
    Moderator
    Jan 2009
    Rīga
    4,406

    Tagad par tēmu:
    TINY13

    Tiny ir tik maza FLASH, ka bootloaderis izņem ~ 1/4. Var jau, bet...
    ... īsti vīri tiny lieto bez bootloadera. Piekāšam ērtību un izmantojam programmatoru.
    Tātad uzrakstam programmu un .hex failu iecepinam kontrolierī. Neaizmirstam pareizi salikt FUSES.
    Tas arī viss.

    Ceru ka Jurkinam tapa skaidrs, kā apsaukāt problēmu un kur meklēt konrētu trūkstošo info par robiem zināšanās.


    Kas attiecas uz programmatoriem.
    Vienmēr var nopirkt gatavu kastīti pie ražotāja, bet besīgi dārga, bet var izārstēt nepareizi saliktas FUSES.
    Te palīdz ķinieši ar letākiem produktiem no ēbrjea (eBay), bet jāgaida klasiskais mēnesis.
    Sen senos laikos tika lodēti programmatori uz LPT porta. Nostaļģiskā pagātne...
    Tagad arī pašu Arduino UNO (utml) var pārvērst par programmatoru, kurš nav sliktāks par ķinā ražotu. Tiek izmantot āvarijas kontracepcijas (ja vajag ļoti ātri no plauktiņa paņemt) gadījumos. Kāreiz priekš Jurkina.

    Tālāk softs. Atsevišķa tēma, kurā esmu atpalicis no dzīves.
    Vienkārši paņemu arduino platīti un izmantoju arduino softu. Bez liekas vajadzības neiedziļinos niansēs.

    USB to serial. Izmantoju FT232RL platītes. Arduino komūna ir gājusi tālāk. Uzliek "speciālu" atmegu (Atmega32U???) un pārvērš kotrolieri par seriālo portu. Moderās arduino platītēs ir veselas divas artmegas. Viena ir klasiska Atmega328, otra armega pārvēšas par USB to serial. Ir arī īpaši zvēri, piemēram Arduino Leonardo (AtMega32U). Tas ir divi vienā. Gan USB to serial, gan klasika vienā mirkenē, ja neiedziļinās niansēs. Tur specifisks bootloaderis, kurš mirenei liek strādāt ar USB. Leonardo mēdz būt savi "ņuansi" attiecībā uz bibliotēkām.

  3. #13
    Moderator
    Jan 2009
    Rīga
    4,406

    Kas attiecas uz FUSE niansēm, tad var izmantot online kalkulatoru.

  4. #14
    Senior Member
    Nov 2009
    Jēkabpils
    2,046

    Nu cik sapratu, tad, ja Arduino izmanto kā "Arduino as ISP", tad tiem Tiny vai citam atmelim bootloaderi šūt iekšā nav obligāti. Vienīgi sanāk, ka FUSEs ar šo citādi iešūt nevar kā nospiežot "iešut bootloaderi", un arī tikai tās dažas. Varbūt, ka var arī citas, bet tad laikam jārediģē boards.txt fails, kuru ar čupiņu citu vajadzēja novilkt no neta, jo Arduino by default neatpazīst mazos Attiny. Tā kā laikam jau tā ir tāda mandeļu operēšana caur irsu.

    O! Tas online kalkulators ir labs. Paldies.

    Laikam jau ir tā, ka Arduino jāizmanto kā Arduino kur vien var un kā vien var, jo cena ir pasmieklīga, un nav ko "čakarēt Bobi", savukārt dziļāk, ja iepatiksies, tad Arduino jānoliek uz to brīdi malā.

  5. #15
    Moderator
    Jan 2009
    Rīga
    4,406

    Arduino softs priekš iešūsanas izmanto AVRDUDE. Komandrindas softs priekš .hex failu iešūšanas. Var pats mēģināt ar avrdude salikt gan FUSES gan iešūt programmu, bet... Jātrod kāds GUI softiņs, kurš palīdz iešūsanas procesā. Rezultātā nebūs jāvingro ar FUSES un arduino softu.
    Bez tam FUSES parasti iešuj vienu reizi. Tad šuj tikai programmu kamēr viss pabeigts. Fināla softa versiju iešuj kopā ar LOCK bits, lai aizsargātu kodu pret ķiniešu kopētājiem. Ja tomēr ļooooti gribās čakarēt RESET kāju, tad labāk iegādāties ražotāja progrmmatoru, jo tāds verķis māk tikt galā ar sabojātām FUSēm.

  6. #16
    Senior Member
    Nov 2005
    Latvija, Kuldīga
    1,059

    Es ar savu ~mēnesi Arduino Nano klona pieredzi baigās gudrības nemētāšu..
    Bet- laikam vajag pieminēt, ka sačakarētas fuses var salabot ar programmatoru, kurš padod 12 (vai cik nu tur) V spriegumu uz Reset (ko nemāk darīt Mega). Tur arī atšķirība - ka tas nebūs parastais ieejas signāls no sensora, bet programmēšanas rest.
    Signalizācijas, videovērošanas ierīkošana Kuldīgā.
    Temperatūras, gaisa mitruma, atmosfēras spiediena u.c. mērījumi, to publicēšana internetā. Data logging.
    http://narodmon.ru/1191

  7. #17
    Senior Member
    Jun 2006
    Cēsu novads
    986

    Izmēģināju ar AVRDUDE visādus GUI, iepatikās Burn-O-Mat, pārējiem katram ar laiku izlīda kāds gļuks. Bet pēdējā laikā, tā kā strādāju iekš Linux ar Geany, tur pietiek vienreiz saglabāt vajadzīgo AVRDUDE komandrindu un turpmāk programmas iešūšana kontrolierī prasa akurāt vienu klikšķi un kādu sekundi programmēšanai. Tas - mazajiem atmeļiem, lielajiem lietoju bootloaderi.

  8. #18
    Moderator
    Jan 2009
    Rīga
    4,406

    Tiny13 redzu tikai specifiskā santīmčakarēšanas gadījumā kad taisa kaut ko lielos apjomos. 10-15 EUR par arduino pret 0.7 EUR par tiny13 (argusa cenās), reizēm ir no svara. Ikdienā iesaku Arduino Pro mini, bet vajadzēs iegādāties Sparkfun USB to serial adapteri. Par cik man ir aktuāli 3.3V (nākotnes MCU spožums vai posts???) tad tādi adapterīši sainiecīvā ir gaužām noderīgi. Lietotāju izstādājumos čali uztaisījuši savas platītes. Neliela shēmas modifikācija un var štancēt seriālās platītes priekš arduino pro mini.

    Kā jau tiko kungi pieminēja: tālākais ir mazās, bet svarīgās nianses.

  9. #19
    Senior Member
    Nov 2009
    Jēkabpils
    2,046

    Arduino softs priekš iešūsanas izmanto AVRDUDE.
    Aha, šito jau es nokonstatēju, ka viņš tā dara. Bija jāsaliek pareizie ceļi uz avrdude arduino Tiny konfigurāciju failos.
    Nečakarēšos ar Reset kāju, gribēju tikai saprast, čo pa čom. Tāpat TINY13 nepietiek kāju, vajag 6 bitus un analogo ieeju.

  10. #20
    Senior Member
    Jun 2006
    Cēsu novads
    986

    Tiny13 ir akurāt tas, ko var iebāzt dajebkur, kaut vai klozetpoda vākā, kā mēdz ironizēt Didzis. Piemēram, katrā ABS devējā (nezinu gan vai tajos, kuros kas tāds ir, stāv tieši Tiny13 bet varētu būt), auto ģeneratora sprieguma regulatorā (tur gan esmu redzējis funkcionāli identiskus PICus). Manam Huskvarnas elektriskajam ķēdes zāģim "soft start" un aizsardzība no rūpnīcas ir realizēta ar vienu simistoru un Attiny, neatceros kādu. Gandrīz jebkur, kur lieto 555, to varētu aizstāt ar tiny13 un nesalīdzināmi plašākām iespējām. Siliņš varētu vienā mierā uztaisīt taimeri ar nedēļas aizturi, ko viņš mēģināja dabūt gatavu uz 555.

+