Portál AbcLinuxu, 2. června 2024 20:05

Programovanie AVR cez BlueTooth

1.8.2008 15:36 | Přečteno: 5389× | Elektronika | Výběrový blog | poslední úprava: 15.10.2008 20:42

Kupou noveho Laptopu som prisiel o moznost programovat AVR, pretoze novy uz nemal LPT a to bol dovod vyrobit nieco nove. v prvom okamziku som chcel spravit programator cez USB, ale potom ma napadlo ze mam nejake BT moduly, ktore by boli celkom vhodne pre tuto vec.

Celkovy princip je jednoduchy:
bluetoothovy modul vytvara seriove pripojenie medzi PC a programatorom, ten je v programatore pripojeny k procesoru AVR, ktory predstavuje akesi prepojenie seriovej linky na SPI cez ktore vie programovat AVR-ka.

Popis:

Ako komunikacny modul je vyuzity modul od firmy BlueGiga WT12 (jeho cena je okolo 1000kc), je mozne osadit aj modulom WT11 ktory ma dosah 100m (samozrejme je potrebne mat v PC tiez bluetooth so 100m dosahom aby to bolo vyuzitelne).

Bluetoothovy modul funguje v rezime SSP (ako virtualny seriovy port), komunikuje s procesorm ATmega8, ktory svoj HW SPI vyuziva pre programovanie inych AVR procesorov a zaroven je mozne procesor v programatore aj naprogramovat cez spominany SPI.

Program pre ATmega8 je napisany v C, pre jeho skompilovanie je potrebne AVRGCC.

Ovladaci program pre PC je len pre LINUX, ale nebol by problem ho upravit aj pre ine OS. ako komunikacny port hlada vzdy port /dev/rfcomm0 a zmenit je to mozne len v zdrojovom kode (zatial).

V Linuxe je potrebne bluetoothovy modul sparovat a vytvorit virtualny seriovy port, napriklad pridat do suboru /etc/bluetooth/rfcomm.conf:

rfcomm0 {
        bind yes;
        device 00:07:80:80:00:01;
        cannel 1;
        comment "AVRPROG";
}

Na programatore su dva konektory:

- 4 vyvodovy je pre pripojenie externeho napajania (ak je potrebne napajat aplikaciu z programovadla) a zaroven su dva vyvody pripojene k seriovej linke bluetooth modulu, je to vhodne k ladeniu programatora a pre prvotnu konfiguraciu BT modulu (nastavnie komunikacnej rychlosti na 115200, nastavenie nazvu bt zariadenia, pin kod, ...). v rezime konfiguracie BT modulu je potrebne nechat procesor v stave RESET (na vyvod SLAVE_RESET priviest log. "0")

1. GND
2. RXD
3. TXD
4. VCC

- 10 vyvodovy je obojsmerny programovaci (obojsmerny preto, lebo je mozne nim programovat procesor v programatore - reizm SLAVE, ale zaroven sa programuju externe zariadenia - rezim MASTER)

   master (slave)
1. SCK (SCK)
2. MISO (MOSI)
3. MOSI (MISO)
4. --
5. RESET (NC)
6. GND
7. VCC
8. CKOUT (NC) - zatial nieje vyuzity.
9. --
10. NC (SLAVE RESET)

V programatore je 3V LOW-DROP stabilizator (tvoreny tranzistormi T1, T2, T3) ktory napaja BT modul, takze programator je mozne napajat napatim 3 az 5V.

Ryhlost programovania nieje vysoka, je to zapricinene dlhymi pauzami medzi komunikacnymi ramcami posielanymi cez bluetooth

Bluetoothovy modul je mozne nahradit aj za obvod napriklad FTDI232 a nahradit bezdratovu komunikaciu za dratovu USB.

Subory:
schema eagle: btavr.sch
plosny spoj eagle: btavr.brd
zdrojove kody: btavr.tar.gz

V uvedenom programe este mozu byt nejake chyby, nieje ani dokonceny (napriklad chyba podpora pre pracu s EEPROM v procesore) pisal som ho fakt narychlo, takze problemy niesu vylucene. Ake kolvek pripomienky a navrhy, .. mi mozte reportovat v diskusii pod blogom.

priklad pouzitia programovadla:

btavr erase load file.srec wrflash verify wrfusel 0xef wrfuseh 0xd1 wrlock 0x03
btavr rdflash save program.bin
btavr rdfuses
btavr help

aktualne podporovane procesory:
ATmega8, 16, 32, 64, 128, 48, 88, 168, 48p, 88p, 168p, 328
dalsie procesory dopisat nieje problem, rovnako ako aj spravit podporu do inych hotovych programov.

poznamka: schema zapojenia ako aj programy su pod licenciou GPL!

       

Hodnocení: 100 %

        špatnédobré        

Obrázky

Programovanie AVR cez BlueTooth, obrázek 1 Programovanie AVR cez BlueTooth, obrázek 2 Programovanie AVR cez BlueTooth, obrázek 3 Programovanie AVR cez BlueTooth, obrázek 4

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

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

1.8.2008 16:22 Blab
Rozbalit Rozbalit vše Re: Programovanie AVR cez BlueTooth
Odpovědět | Sbalit | Link | Blokovat | Admin
Pěkné,navíc dobře vyřešené galvanické oddělení :-) . Já jsem při stejném problému šel klasickou cestou : http://www.ladyada.net/make/usbtinyisp/download.html , funguje standardně s AVRDUDE.
2.8.2008 08:16 ondracch | skóre: 19 | blog: Mozková kreč
Rozbalit Rozbalit vše Re: Programovanie AVR cez BlueTooth
UniProg má i galvanické oddělení a díky virtualnímu procesoru naprogramovaném do řídícího MCU programuje velmi rychle (zlomky sekundy).
Proč myslíš, že nemůžeš žít jinak? Pořád Tvořím...
Petr Tomášek avatar 1.8.2008 16:43 Petr Tomášek | skóre: 39 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Programovanie AVR cez BlueTooth
Odpovědět | Sbalit | Link | Blokovat | Admin
Vypadá to dobře, akorát nebylo by jednodušší dodělat podporu pro avrdude, místo psaní vlastního programátoru? Podpora EEPROM a všech možných zařízení by byla zadarmo ;-)
multicult.fm | monokultura je zlo | welcome refugees!
vlk avatar 1.8.2008 18:04 vlk | skóre: 23 | blog: u_vlka
Rozbalit Rozbalit vše Re: Programovanie AVR cez BlueTooth
to mas pravdu, ale nejak sa mi nechcelo hrabat v avrdude ... ale asi by to zato stalo. ja som to totiz potreboval mat extremne rychlo spravene a ten vlastny programek bol napisany rychlo (sice to tak aj vyzera) :)
You don't exist, Go away !
Petr Tomášek avatar 2.8.2008 10:04 Petr Tomášek | skóre: 39 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Programovanie AVR cez BlueTooth
No, třeba by stálo za to přímo naprogramovat STK500v2 protokol, tak jak to děla třeba avrdoper a není se třeba v avrdude vubec hrabat ;-)
multicult.fm | monokultura je zlo | welcome refugees!
andree avatar 1.8.2008 19:59 andree | skóre: 39 | blog: andreeeeelog
Rozbalit Rozbalit vše Re: Programovanie AVR cez BlueTooth
Odpovědět | Sbalit | Link | Blokovat | Admin
vobec som nepozeral do vnutornosti, a mozno to bude uplne odveci poznamka, ale nepomohlo (k vyrieseniu pomalosti kvoli medzeram medzi ramcami BT) by nejake cacheovanie dat na strane toho programatora? alebo ma ten chip malu ram? :) pytam sa len preto, lebo BT ma radovo rychlejsi prenos oproti serial portu, tak je divne aby to ten bt spomaloval :o)
vlk avatar 1.8.2008 21:09 vlk | skóre: 23 | blog: u_vlka
Rozbalit Rozbalit vše Re: Programovanie AVR cez BlueTooth
prva verzia bola ze som len posielal co ma vyslat na SPI a hned som cakal co z SPI prislo, a tam programovanie trvalo asi 5min/8kB procesor!!!

teraz tu medzi pamat vyuzivam, ale len pre velkost jednej programovanej stranky, ktora je velka bezne 32 - 256B (podla procesora) a ta rychlost je uz velmi slusna, aj ked v porovnani s LPT programatorom je to asi 3x pomalsie, no je to pouzitelne :)
You don't exist, Go away !
andree avatar 1.8.2008 21:14 andree | skóre: 39 | blog: andreeeeelog
Rozbalit Rozbalit vše Re: Programovanie AVR cez BlueTooth
aha, tak to by mozno za to stalo odsledovat, ci sa stihne vypraznit cache, alebo to je niecim inym este.. aj ked je otazka, ci to za pripadne zlepsenie este stoji, no :)
Petr Tomášek avatar 2.8.2008 10:06 Petr Tomášek | skóre: 39 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Programovanie AVR cez BlueTooth
Ještě taková otázka, na jaké rychlosti běží UART mez BT modulem a AVR? Velmi často to u těchto modulů bývá standardně nastaveno na nějakých 19600kbps...
multicult.fm | monokultura je zlo | welcome refugees!
vlk avatar 2.8.2008 14:39 vlk | skóre: 23 | blog: u_vlka
Rozbalit Rozbalit vše Re: Programovanie AVR cez BlueTooth
115200 .. skusal som aj 230400 ale rychlostne sa to skoro vobec nezmenilo
You don't exist, Go away !
4.8.2008 18:05 peterh
Rozbalit Rozbalit vše Re: Programovanie AVR cez BlueTooth
Odpovědět | Sbalit | Link | Blokovat | Admin
No viem si predstavit aj lepsie vyuzitie toho bluetooth modulu :).
Usbasp s avrkom (staci atmega8) vyjde tak na 70Sk, na galvanicke oddelenie snad existuju nejake chrobaky..
Ale ako napad je to...sialene.
vlk avatar 5.8.2008 08:27 vlk | skóre: 23 | blog: u_vlka
Rozbalit Rozbalit vše Re: Programovanie AVR cez BlueTooth
hehe :p
ale asi si nebol nuteny programovat firmware do svetelnych tabul a liezt po konstrukcii 10m nad zemou s laptopom ... potom by si asi dal co kolvek za nieco take
mne islo skor o pohodlnost ... galvanicke oddelenie sa uz len zviezlo :)
You don't exist, Go away !
Petr Tomášek avatar 6.8.2008 22:13 Petr Tomášek | skóre: 39 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Programovanie AVR cez BlueTooth
Odpovědět | Sbalit | Link | Blokovat | Admin
P.S. ještě detail: nebylo by lepší použít nějaký levnější BT modul? Např. od Raysonu BTM-112, resp. BTM-222 stojí kolem 300kč...
multicult.fm | monokultura je zlo | welcome refugees!
vlk avatar 8.8.2008 20:35 vlk | skóre: 23 | blog: u_vlka
Rozbalit Rozbalit vše Re: Programovanie AVR cez BlueTooth
jasne, urcite by sa dalo ... ale ja som mal len tieto :)
You don't exist, Go away !
23.12.2010 13:08 kelso
Rozbalit Rozbalit vše Re: Programovanie AVR cez BlueTooth
Odpovědět | Sbalit | Link | Blokovat | Admin
zdravim, bolo by mozne obnovit subory na stiahnutie, alebo dat nejaky link odkial by som ich stiahol? dik
vlk avatar 11.4.2012 23:35 vlk | skóre: 23 | blog: u_vlka
Rozbalit Rozbalit vše Re: Programovanie AVR cez BlueTooth
Odpovědět | Sbalit | Link | Blokovat | Admin

'trosku' som ten programator rozvrtal, a cely projekt najdete tu:

http://code.google.com/p/avrprog/

You don't exist, Go away !

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.