abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

včera 21:44 | Nová verze

Po půl roce od vydání verze 9.0 byla vydána verze 10.0 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab (Wikipedie). Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 0
22.9. 18:11 | Nová verze

Společnost Oracle oficiálně oznámila vydání Java SE 9 (JDK 9), Java Platform Enterprise Edition 8 (Java EE 8) a Java EE 8 Software Development Kit (SDK). Java SE 9 přináší více než 150 nových vlastností.

Ladislav Hagara | Komentářů: 0
22.9. 12:11 | Komunita

Na Humble Bundle lze získat hororovou počítačovou hru Outlast (Wikipedie) běžící také v Linuxu zdarma. Speciální akce končí v sobotu v 19:00.

Ladislav Hagara | Komentářů: 2
22.9. 10:33 | Humor

Mozilla.cz upozorňuje na Knihu Mozilly (Wikipedie), tj. velikonoční vajíčko ve Firefoxu. Zobrazit jej lze zadáním about:mozilla do adresního řádku. Aktuální verze Firefoxu obsahuje proroctví 15:1 "Dvojčata Mamonu se rozhádala a jejich souboje uvrhly svět do nové tmy. Zvířeti se ale tma hnusila. A tak se stalo mrštnější a silnější, šlo vpřed a jeho počty rostly. A zvíře přineslo oheň a světlo do tmy". Firefox 57 bude obsahovat proroctví 11:14. To je zatím jenom v angličtině. Pomoci lze s překladem do češtiny.

Ladislav Hagara | Komentářů: 10
22.9. 01:22 | Zajímavý projekt
Před měsícem byla spuštěna kampaň na podporu chytrého telefonu Librem 5, jenž by měl respektovat bezpečnost, svobodu a soukromí uživatelů. Cílem kampaně je vybrat alespoň milion a půl dolarů. Aktuálně je vybráno přes 600 000 dolarů, tj. 40 %. Kampaň poběží ještě další měsíc. Podporu projektu oznámilo KDE i GNOME.
Ladislav Hagara | Komentářů: 33
22.9. 00:55 | Komunita

Agentura DISA (Defense Information Systems Agency) publikovala (pdf) Ubuntu 16.04 Security Technical Implementation Guide (STIG) (zip), tj. doporučené bezpečnostní nastavení Ubuntu 16.04. Ubuntu se tak dostalo mezi unixové operační systémy a linuxové distribuce AIX, HP-UX, Oracle Linux, Red Hat a Solaris [reddit].

Ladislav Hagara | Komentářů: 2
21.9. 22:55 | Bezpečnostní upozornění

CSIRT.CZ informuje, že byly vydány nové bezpečnostní aktualizace, které opravují několik zranitelných míst v Sambě. Útočník může využít zranitelnosti s cílem získání přístupu k potenciálně citlivých informací. Uživatelům a správcům je doporučeno, aby zkontrolovali bezpečnostní opatření pro CVE-2017-12150, CVE-2017-12151 a CVE-2017-12163 a provedli potřebné aktualizace.

Ladislav Hagara | Komentářů: 0
21.9. 21:44 | Komunita

Společnost Red Hat aktualizovala svůj slib ohledně softwarových patentů. Slib nově zahrnuje i open source software pod permisivními licencemi.

Ladislav Hagara | Komentářů: 0
21.9. 08:55 | Komunita

Do 22. září probíhá v Mountain View konference XDC2017 (X.Org Developer's Conference). Na programu je řada zajímavých přednášek. Sledovat je lze online. K dispozici je záznam přednášek ze včerejšího dne.

Ladislav Hagara | Komentářů: 0
20.9. 17:33 | Nová verze

Byla vydána nová stabilní verze 1.12 (1.12.955.36) webového prohlížeče Vivaldi (Wikipedie). Z novinek vývojáři zdůrazňují možnost zobrazení metadat u digitálních fotografií, vylepšený panel stahování a omezení sytosti barvy zdůraznění (YouTube). Nejnovější Vivaldi je postaveno na Chromiu 61.0.3163.91.

Ladislav Hagara | Komentářů: 40
Těžíte nějakou kryptoměnu?
 (5%)
 (3%)
 (17%)
 (75%)
Celkem 560 hlasů
 Komentářů: 22, poslední 29.8. 11:23
    Rozcestník

    Jednočip ATtiny2313 pod Linuxem

    17. 6. 2005 | Petr Tomášek | Hardware | 20497×

    Firma ATMEL vydala novou verzi oblíbeného jednočipu. Co je potřeba vědět, abyste pro něj mohli v Linuxu programovat.

    Proč?

    Asi před rokem vyšel na serveru AbcLinuxu článek Jana Martínka o programování jednočipů ATMEL pod linuxem: Jednočipy pod Linuxem.

    Tento článek byl jistě pro mnohé začátečníky výborným seznámením s jednočipy. Od doby jeho vzniku se však změnila jedna věc. Jednočip AT90S2313, který je v článku použitý, přestala firma ATMEL vyrábět, a dnes je možné koupit jen jeho náhradu ATtiny2313. Ta má za stejné peníze několik příjemných vylepšení, bohužel však není s AT90S2313 kompatibilní a doposud chybí její podpora v některých vývojářských balíčcích (bohužel právě těch, které užívá zmíněný článek).

    V tomto mini-howto bych proto rád popsal, jak nefunkční programy nahradit a jak obejít zmíněnou nekompatibilitu.

    Upload programu

    V citovaném článku se k nahrávání programu do mikročipu používá program uisp. Ten si bohužel prozatím s tiny2313 neumí poradit (nová verze jednočipu by měla používat zápis do flashe po blocích na rozdíl od zápisu po bytech u AT90S2313). Řešením je použít program avrdude.

    S tímto programem je ovšem spojeno několik malých zádrhelů. Prvním z nich je, že ve standardní distribuci chybí podpora právě pro to zapojení programátoru, které používá uisp. Jelikož má ale avrdude tu sympatickou vlastnost, že se zapojení programátoru dá nastavit v konfiguračním souboru a není nutné jej znovu kompilovat, pomoc je snadná: Stačí přidat do souboru /etc/avrdude tyto řádky:

    programmer
      id    = "dapa";
      desc  = "Direct Parallel... as found in uisp...";
      type  = par;
      reset = 16;
      sck   = 1;
      miso  = 11;
      mosi  = 2;
    ;

    Program je potom do jednočipu možné nahrát následujícím příkazem:

    avrdude -c dapa -p t2313 -U flash:w:helloworld.hex

    Pokud používáme k nahrávání Makefile z článku, stačí nahradit řádku s příkazem uisp za něco takovéhoto (připomínám, že kvůli struktuře souboru Makefile musí být prvním znakem na řádce tabulátor):

    load: $(PROJECT).hex
      avrdude -c dapa -p t2313 -U flash:w:$(PROJECT).hex

    Nastavení oscilátoru

    Jednou z novinek, která se v ATtiny2313 objevila, je, že jednočip nepotřebuje už nutně externí krystal, neboť má v sobě integrován interní oscilátor. Špatnou zprávou ovšem je, že nám to rozhodí časování sériového portu. Při nastavení od výrobce totiž jednočip tepe pouze rychlostí 4/8Mhz, tj. 500kHz.

    Abychom zapnuli externí krystal jako zdroj hodinového taktu, je potřeba nastavit takzvané pojistky ("fuses"). Pro krystal s taktem větším, než 8MHz a pro zařízení s pomalým náběhem proudu by nastavení (s pomocí programu avrdude) vypadalo takto:

    avrdude -c dapa -p t2313 -U lfuse:w:0xff:m

    Jinými slovy "nižší byte pojistky" (Fuse Low Byte) je nastaven na hodnotu 0xff, což vykoná přesně to, co potřebujeme (standardní hodnota od výrobce je 0x62). POZOR, při každém experimentování s pojistkami se doporučuje důkladně prostudovat příslušný datasheet k jednočipu. Jinak bychom si také mohli vypnout programování přes sériové rozhraní, nebo udělat z pinu RESET další vstupně-výstupní linku. Pak bychom už do jednočipu bez speciálního programátoru žádný program nenahráli. Chtěl bych také upozornit na to, že tyto pojistky jsou u každého typu jednočipu jiné a je vždy třeba nahlédnout do příslušné dokumentace.

    Kompilace

    Avr-gcc zatím bohužel (pokud vím) nemá pro ATtiny2313 podporu. Nová verze avr-gcc by měla být nekompatibilní se starší (například by měla přestat fungovat makra sbi() a cbi()), takže pokud máte již nějaké projekty pro AVR-ka rozdělané, nemusel by přechod na novější verzi být tím pravým.

    Naštěstí jsou si AT90S2313 a ATtiny2313 do velké míry podobné, takže některé jednodušší programy budou fungovat tak, jak jsou, u složitějších stačí provést drobné změny.

    Nejpodstatnější změnou pro čtenáře zmíněného článku je fakt, že ATMEL v novém ATtiny2313 používá modernizované sériové rozhraní (které nazývá jako USART, oproti předchozímu UART). Zde je několik problémů s kompatibilitou.

    Zaprvé má USART jinak pojmenované registry, dva má dokonce navíc. To je možné obejít tím, že si registry sami nadefinujeme, například takto:

    #define UCSRA USR
    #define UCSRB UCR
    #define UBRRL UBRR
    
    #define UCSRC _SFR_IO8(0x03)
    #define UBRRH _SFR_IO8(0x02)
    
    // UCSRA
    #define UPE 2
    #define U2X 1
    // UCSRB
    #define MPCM  0
    #define UCSZ2 2
    // UCSRC
    #define UMSEL 6
    #define UPM1  5
    #define UPM0  4
    #define USBS  3
    #define UCSZ1 2
    #define UCSZ0 1
    #define UCPOL 0

    Co se týče vlastního kódu, zůstává vše při starém, až na způsob, jakým USART inicializujeme. Nový způsob může vypadat asi nějak takto:

      sbi(UCSRB, TXEN); // UCR -> UCSRB
      sbi(UCSRB, RXEN);
      sbi(UCSRC, UCSZ0);  // 8bit přenos...
      sbi(UCSRC, UCSZ1);
      UBRRH = 0;	// 9600 baudu, POZOR, nejdříve je třeba
      UBRRL = 59;	// nastavit UBRRH, potom teprve UBRRL!

    Jiné náhrady

    Jinou možností, jak zmíněnou nekompatibilitu obejít, je použít jiný jednočip: Konrétně ATmega8 je jen o málo dražší a přitom má daleko lepší parametry, než ATtiny2313. Je však třeba upozornit na to, že některé problémy nalezneme i u toho jednočipu: konkrétně je také nutno vypnout interní oscilátor a stejně tak používá ATmega8 již zmodernizovanou verzi sériového rozhraní.

           

    Hodnocení: 87 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    17.6.2005 00:25 --.----...--.-. | skóre: 6 | blog: blog
    Rozbalit Rozbalit vše dakujem
    Dakujem za clanok.

    Chystam sa na leto spachat nieco pre mikrokontrolery, pretoze aktualny stav nie je bohvie co a je to aj jedna z veci preco musim mat este win na hdd. Este nemam presnu predstavu, ale mal by tam byt hlavne programator a simulator pre 51 a AVR. Dostupne compilery su vcelku dobre, tak tie nebudem robit. No a samozrejme, ak by sa mi to podarilo, spravim clanok o postupe vyvoja a implementacie programov pre mikrokontrolery. Snad mi to vyjde...

    Inac pre PIC uz je spravene IDE.
    Chtěl bych upozornit jen na malou nepřesnost. Už před čtyřmi měsíci jsem našel na internetu jak uisp, tak avr-gcc s podporou ATtiny2313.
    Petr Tomášek avatar 20.6.2005 19:49 Petr Tomášek | skóre: 37 | blog: Vejšplechty
    Rozbalit Rozbalit vše Re: ATtiny2313
    Dobrý den!

    Děkuji za upozornění, v době, kdy jsem hledal já (pár měsíců to bude, kolik přesně vám neřeknu), ještě v oficiálních vydáních podpora nebyla. Přesto doufám, že článek může být inspirací třeba v nějaké podobné situaci ;-)
    20.6.2005 20:52 CalebCZ
    Rozbalit Rozbalit vše Re: ATtiny2313
    Dobrý den,

    tak mohu potvrdit, že program uisp už čip ATtiny2313 podporuje. Sehnal jsem verzi 20050207 (boužel už nevím kde, LOL) a řekl bych, že vše funguje jak má. Na officiálních stránkách je k dispozici poslední release 20040311, ale už by měl podporovat také ATtiny2313.

    Další moje zkušenost je, že avrdude má vetší problémy s komunikací než uisp (mám asi tak 1,75 m dlouhel kabel :-)). Ale uisp je naprosto v pohodě...tak nevím.

    Našel jsem jeden odkaz k věci: zde .-)

    Přeji pěkný den, PIC.
    21.6.2005 17:38 J.M.
    Rozbalit Rozbalit vše Re: ATtiny2313
    verze 20050207 je na: http://savannah.nongnu.org/download/uisp/
    17.6.2005 17:00 nebuzerujte s nickem
    Rozbalit Rozbalit vše usart ;-)
    co se tyce uart vs usart tak uart = universal asynchronous receiver/transmitter usart = universal synchronous/asynchronous receiver/transmitter
    18.6.2005 15:56 CalebCZ
    Rozbalit Rozbalit vše Poděkování
    Chtěl bych poděkovat za článek. Ušetřil mě dalších spoustu hodin browzdání na netu.

    Pokud by kdokoliv z Vás chtěl napsat nějaké užitečné návody na programovaní jednočipů (samozřejmě v souvislosti s linuxem) určitě to spoustě lidem pomůže :-) Například na HW.cz linuxové věci moc neřeší.

    Když už jsme u toho, docela by se hodily i clanky jak v linuxu ovladat napr. USB či LPT port. Článek na ovládání RS232 jsem tady už našel.

    Přeji hodně úspěchů nejen s dalšími články .-)
    19.6.2005 23:54 kovacj@netkosice.sk
    Rozbalit Rozbalit vše pozor
    pozor na makra sbi a cbi, boli odstranene z kniznic a ak mate aktualnu verziu, prekladac sa moze tvarit kyslo :] staci si ich nadefinovat odznova, ved su to len makra...
    Billy avatar 2.9.2007 23:01 Billy
    Rozbalit Rozbalit vše Re: pozor
    pozor na makra sbi a cbi, boli odstranene z kniznic a ak mate aktualnu verziu, prekladac sa moze tvarit kyslo :] staci si ich nadefinovat odznova, ved su to len makra...
    Prosim te a jak mam nadefinovat ty makra?
    18.9.2009 01:04 neasi
    Rozbalit Rozbalit vše Re: pozor
    #ifndef cbi
        #define cbi(sfr, bit) (sfr &= ~_BV(bit))
    #endif
    #ifndef sbi
        #define sbi(sfr, bit) (sfr |= _BV(bit))
    #endif
    
    23.6.2005 09:49 Petr Slansky | skóre: 30 | blog: slansky
    Rozbalit Rozbalit vše SP12
    GPL programator SP12 ma take podporu pro Linux i ATtiny2313: http://www.xs4all.nl/~sbolt/e-spider_prog.html#linux_version
    26.6.2005 14:51 CalebCZ
    Rozbalit Rozbalit vše Problém s kompilací
    Dobrý den,

    tak jsem se odhodlal, že si nainstaluju vše potřebné pro kompilaci zdrojáků na ATtiny2313. Měly by to být tyto 3 programy: binutils, gcc a avr-lib.

    Když jsem zjistil, že v rpm (mám MDK 10.1) žádná vyhovující verze není, byl jsem donucen ke stažení zdrojáků:

    binutils-2.16.1.tar.bz2

    gcc-3.4.4.tar.bz2

    avr-libc-1.2.3.tar.bz2

    Postupoval jsem podle návodu na instalaci avr-libc (online manuál).

    Nejprve instalace binutils, poté gcc a nakonec avr-libc. Přesně podle návodu, takže při konfiguraci mimojiné i parametr --target=avr.

    Instaloval jsem do adresare $HOME/local/avr. Vse krome avr-libc se nainstalovalo (takže počítám, že dobře). Avr-libc mě při make (i ./domake) vyhodil asi tři errory ohledně assembleru (že už nějaké makro bylo definováno nebo co)...Navíc jsem si při konfiguraci všimnul hlášky, že avr-gcc nepodporuje ATtiny2313 (přitom dám-li avr-gcc --target-help, je tam i MCU attiny2313).

    Netuším co s tím. Děsně mě to se.... Takovej mamut jako gcc se zkompiluje a malej šmejd avr-libc dělá problémy. Progoogloval jsem snad celou sobotu a stejně jsem s tim nepohnul.

    Mohl by mě někdo pls poradit?

    Děkuji a PIC.
    27.6.2005 12:19 CalebCZ
    Rozbalit Rozbalit vše Re: Problém s kompilací
    Dobrý den,

    Tak už jsem to vyřešil...doufám. Řešení je asi dost neprofesionální a nelinuxovské (ale co chtít od lamky) :-)

    Včera jsem "zabil" celý den řešením tohoto problému. Měl jsem jediný problém a to při kompilaci avr-libc-1.2.3. Jak bylo uvedeno v návodu, je potřeba nejprve nainstalovat binutils, pak gcc a nakonec avr-libc.

    Bohužel avr-libc šlo zkompilovat jen tehdy, pokud jsem měl nainstalovány binutils-2.15 a gcc-3.4.4. (jinak to při překladu hlásilo chybu). Při ./configure jsem si ale všimnul hlášky, že avr-gcc nepodporuje ATtiny2313 a ještě mnoho dalších (novějších). Zkusil jsem i něco přeložit s parametrem attiny2313, ale linker nenašel soubor myslím, že attn2313.o. Opravdu nikde nebyl.

    Nastalo otravné hledání kombinace binutils, gcc a následné kompilace avr-libc (vždy instalace binutils ve verzích 2.15, 2.16 a 2.16.1, poté kompilace gcc ve verzích 3.4.4 a 4.0.0 a nakonec zkouška, zda se avr-libc přeloží). Naštěstí, jsem si pomocí checkinstall vytvořil rpm balíčky, takže testování bylo snadnější, ale gcc jsem musel vždy kompilovat pro momentální verzi nainstalovaných binutils. Snad jsem to popsal, tak, že se v tom nezamotáte .-)

    Výsledek byl, jak už jsem zmínil, že avr-libc se podařilo přeložit jen při avr-binutils-2.15 a avr-gcc-3.4.4. Podpora ATtiny2313 nebyla k dispozici. To mě opravdu nepotěšilo :-)

    Nakonec jsem se rozhodl, že si nainstaluji nejnovější verzi avr-binutils-2.16.1 (už jsem je měl v rpm z předešlého testování) a avr-gcc-4.0.0. Avr-libc by zkompilovat sice nešlo, ale díky tomu, že jsem si už před tím udělal rpm balíček avr-libc-1.2.3 ("postaveného" na avr-binutils-2.15 a avr-gcc-3.4.4) nebyl žádný problém. Soubory se nahrály kam měli :-) O podpoře ATtiny2313 se mě mohlo jen zdát, neboť nebyl k dispozici soubor attn2313.o

    Tak jsem začal pátrat na internetu po tomhle souboru a našel jsem ho v rpm balíčku pro 64-bit SuSE Linux (alespoň myslím, že to byl 64-bit). Poté další hlednání, jak balíček rozbalit, ale neinstalovat. Nakonec jsem se ke kýženému souboru (vlastně souborům) dostal. Vše co nebylo v mém nainstalovaném avr-libc jsem přidal z tohoto balíčku. Mno a teď to vypadá, že vše funguje jak má. Zdroják si přeložím i pro ATtiny2313, slinkuji (nebo jak to nazvat) a vytvořím intel hex. Ten úspěšně nahraji do čipu a ten pracuje jak ma. Uffff to bylo vyčerpávající....jestli jste došli až sem, tak gratuluji .-)

    PIC
    16.11.2005 11:15 skywaker
    Rozbalit Rozbalit vše nemam programator
    zdravim.

    v skole som sme sa ucili programovat 8051 a ja by som chcel prejst na AVRka. konkretne som chcel 2313 ale ked tato sa nevyraab uz tak skusim Attiny2313 ovsem neamm nan programator .... nevie niekto o nejakom programatore na seriovy port? a taktiez aby to nepotrebovalo dodatocny procesor ma to byt jednoduche. nasiel som schemu SDK2313 v aradio 2003/2 ale ten je na obycajnu 90s2313 da sa to pouzivat aj na novy attiny? a ako je podpora serioveho portu v linuxe? inac dalsim problemom je ze nemam assembler a program na zapis do procaka. dakujem za pomoc.lukas. (pracujem v opensuse 10.0, ale keby strebalo dam si slackware 10.2 :) lukas.
    16.11.2005 11:16 skywaker
    Rozbalit Rozbalit vše Re: nemam programator
    a moja adresa je (vesi.lukas@post.sk)
    19.8.2006 07:32 Martin
    Rozbalit Rozbalit vše Re: Jednočip ATtiny2313 pod Linuxem
    Já jsem použil programátor SP12 pod windows 98 mi to funguje normálně ale pod win XP to nejde.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.