Sida 1 av 1

AVR bootloading via IR?

Postat: 5 september 2006, 11:45:03
av Spinky Spendrup
Jag håller på och pillar med en grej som använder en mega2560, om jag fattat rätt kan man göra en programuppdatering via en uart port på denna. Är det någon som gjort en applikation där man uppdaterar programmet via t ex IR? Förutom de uppenbara nackdelarna med bruten IR-länk så borde det väl fungera?

Postat: 5 september 2006, 12:45:57
av björn
Visst borde det funka, frågan är om man vill ha en så "lös"(osäker) förbindelse när man uppdaterar men det problemet har du ju redan tänkt på.
Så då e det nog bara till att sätta igång o skriva en bootloader :)

Postat: 5 september 2006, 18:38:27
av maxxflow
Det låter väldigt smidigt att man kan uppdatera via uart-port, men själv skulle jag nog använt kabel istället för IR.. Men det kanske inte passar för din applikation..?
Det är ju lite synd om IR-länken bryts.. Men det går att "försöka igen" ändå eller? För "mottagar-programmet" ligger alltid i µC:n eller? Så att det inte blir som med datorbios, att man får byta hela "chipet" om överföringen bryts...?

Postat: 5 september 2006, 19:04:00
av oJsan
Om bootloadern har krav på full duplex så kanske det blir lite trubbel. (för det går väl inte att köra IR-länk i full duplex va?)

Postat: 5 september 2006, 20:29:27
av maxxflow
Det borde väl gå med två IR-enheter som körs på olika våglängd?

Postat: 6 september 2006, 14:59:38
av Spinky Spendrup
oJsan skrev:Om bootloadern har krav på full duplex så kanske det blir lite trubbel. (för det går väl inte att köra IR-länk i full duplex va?)
Kan bli lite lurigt med full duplex i vår app, och det behövs nog inte heller. Vi ska försöka köra med IrDA och de kör ju enligt spec med halv duplex. I verkligheten så skulle ju en kabelansluten uppdatering också kunna brytas så jag tror problemet är lösbart oavsett länk, om man gör en bra hantering.

Postat: 7 september 2006, 00:51:01
av $tiff
Ska du ha en säker IR-överföring så får du antingen ha rejält överdimensionerade sändar/mottagare eller se till att sänd/mottagare inte rör sig eller får saker ivägen för överföringen, om du vill ha en säker sådan. I det senare fallet ser jag inte riktigt fördelen jämfört med kabel.
Alternativt kan du skriva dig värsta CRC-protokollet så du garanterat inte får över fel grejer.

Köp dig ett par radiomoduler sitället.

Postat: 7 september 2006, 01:35:23
av limpan4all
Om du inte menar att göra första programladdningen (ISP) så kan du göra vad som helst, MEN hur stabilt och bra det blir beror på hur väl du lyckas skriva din kod och oftast hur mycket RAM du har tillgängligt. Det "går" ju att använda TCP/IP över IRDA (även om det är korkat) så stabiliteten sätter inte hinder ivägen.

Postat: 7 september 2006, 17:54:33
av exile
Om du skriver en "egen" boot loader som alltid starar först. Den kan i sin tur kolla att "huvud" applikation är korret genom att köra en CRC på den, om CRC är felaktig så startas en BOOTloader annars staras "huvud" applikation