Kan jag bygga egen Arduino med ATmega8-16UP kontroller?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Kan jag bygga egen Arduino med ATmega8-16UP kontroller?

Inlägg av sodjan »

Nej, jag *tror* inte att du kan plocka bort de där prylarna.
Men det finns ju ingen anledning till det heller.

Om du bränner in en bootloader så är väl tanken att ladda
programmet direkt till den. D.v.s att tanken borde vara att
köra USB direkt mot denna processor. Om du tänker flytta
processorn fram och tillbaka så förlorar man ju en stor del
av vinsten med att köra en stand-alone Arduino...

Då kan du lika gärna köra AVR direkt utan bootloader och
använda UNO'n som en vanlig "AVR-programmerare". D.v.s
att då flashar in dina applikationer direkt *istället* för
bootloadern.

> Atmegan328 har ingen usb...

OK.
Då är det ju mer prylar som krävs för att få en helt fristående
"Arduino" utan original hardvaran! Ja, det hela beror ju på vad
man egentligen vill uppnå med det hela.

> Men det går att köra med den interna oscillatorn om man vill...

Går det även när/om den sitter på Uno'n ?
Borre
Inlägg: 4606
Blev medlem: 14 juni 2007, 15:43:50
Ort: Hälsingland

Re: Kan jag bygga egen Arduino med ATmega8-16UP kontroller?

Inlägg av Borre »

Jo det går att flytta processorn till UNOn och programmera den med USB, om man nu tycker det är enklare. Han skulle lika gärna kunna välja alternativet "Upload using programmer" för att programmera den direkt med sketchen, när allt ändå är kopplat för att programmera bootloadern.

Ja det behövs mer hårdvara för att få en kopia av UNOn, ingen som sagt nå annat! Hade du bemödat dig med att läsa tråden hade du sett att han inte har någon användning av USBn och därav gör såhär. Det är därför han också tänker flytta processorn till UNOn vid programmeringen för att nyttja dess USB.

Det har jag inte provat om det går, hänger väl på om det är ett problem att kristallen fortfarande är ansluten fast den interna oscillatorn används.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Kan jag bygga egen Arduino med ATmega8-16UP kontroller?

Inlägg av Al_Bundy »

sodjan skrev:Nej, jag *tror* inte att du kan plocka bort de där prylarna.
Men det finns ju ingen anledning till det heller.
Menar du prylarna som komponenterna?
Om du bränner in en bootloader så är väl tanken att ladda
programmet direkt till den. D.v.s att tanken borde vara att
köra USB direkt mot denna processor. Om du tänker flytta
processorn fram och tillbaka så förlorar man ju en stor del
av vinsten med att köra en stand-alone Arduino...
Så när jag kör ISP på en ATmega328 via en UNO Rev 3, som också använder sig av ATmega328, så bränner jag samtidigt in bootloader + programmet?
Då kan du lika gärna köra AVR direkt utan bootloader och
använda UNO'n som en vanlig "AVR-programmerare". D.v.s
att då flashar in dina applikationer direkt *istället* för
bootloadern.
Behöver jag ingen bootloader?
Som jag hade tänkt nu är att jag endast skulle bränna in ett program på ATmega328 eller ATmega8(har dessa processorer också liggandes). Efter jag har bränt in programmet så ska jag kunna använda den som den där "bare bones arduino", dvs bara "chippet". Sen kopplar jag in de ingångar jag vill koppla in till pinnarna.
Men jag får olika uppfattningar hur man går till och detta blir lite förvirrande.
Jag hade hoppats på att man kunde bara ta en ATmega8/168/328 och trycka fast den på en Arduino UNO och sen ladda upp ett program som skrivs till ATmega8/168/328 -chippet. Efter det så kan man placera ATmega8/168/328 på en breadboard och köra det som vilken arduino som helst. Men tydligen så måste man köra ISP på ATmega8/168/328 och sen bränna in ett program.
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Kan jag bygga egen Arduino med ATmega8-16UP kontroller?

Inlägg av sodjan »

> Behöver jag ingen bootloader?

Behöver och behöver... :-)
När du kör en Uno som "ISP-programmerare" så används ju just ISP,
inte en bootloader. Det som programmeras in via ISP kan dock vara
t.ex en bootloader eller något annat "program", beroende på vad
man har för behov och vad man ska göra.

Om du vill använda den nya processorn på en Arduino Uno, så behövs
bootloadern för att köra "vanliga" Arduino laddningar. Den bootloadern kan alltså
först ISP-programmeras in m.h.a t.ex en Uno och sedan flyttas processorn till
Uno'n för att få sitt Arduino program laddat "som vanligt" via bootloadern.

Sedan bör du kunna plocka processorn från Uno'n och köra den "lös"
i någon egen koppling.
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Kan jag bygga egen Arduino med ATmega8-16UP kontroller?

Inlägg av Icecap »

Det var då otroligt med problem eliten har med detta.

Nåväl: en "helt bar" ATmega kan bara programmeras medelst ISP eller parallellprogrammering. Alltså måste man ha en enhet som fungerar som ISP-programmeringsenhet, om det sedan är en Arduino eller AVRISP mk 2 eller annat har ingen betydelse.

Med hjälp av ISP-enheten kan du sedan programmera din ATmega. Om du sedan lägger in bootloadern så att du kan leka Arduino eller att du har kompilerat programmet i en kompiler som faktisk gör icke-Arduino kod har ingen större betydelse, funktionen kör ändå så länge du lägger in rätt programkod.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Kan jag bygga egen Arduino med ATmega8-16UP kontroller?

Inlägg av Al_Bundy »

sodjan skrev:> Behöver jag ingen bootloader?

Behöver och behöver... :-)
När du kör en Uno som "ISP-programmerare" så används ju just ISP,
inte en bootloader. Det som programmeras in via ISP kan dock vara
t.ex en bootloader eller något annat "program", beroende på vad
man har för behov och vad man ska göra.

Om du vill använda den nya processorn på en Arduino Uno, så behövs
bootloadern för att köra "vanliga" Arduino laddningar. Den bootloadern kan alltså
först ISP-programmeras in m.h.a t.ex en Uno och sedan flyttas processorn till
Uno'n för att få sitt Arduino program laddat "som vanligt" via bootloadern.

Sedan bör du kunna plocka processorn från Uno'n och köra den "lös"

i någon egen koppling.
Exakt så! :)
Och efter jag har laddat in programmet så kör jag bara "chippet" som en bare bones arduino med 16 mhz kristallen, 10 kOhm motståndet och dessa två 22 pF kondensatorerna :)))))))

Jag tänker följa denna manual som jag anser förklarar riktigt bra. Jag har ställt in själva IDE:n på mitt linux(ubuntu) och det verkar fungera. http://www.instructables.com/id/Burning ... /?ALLSTEPS

Men jag har ATmega8 också som jag tänkte använda som, ja nu har jag dåligt ordförråd igen, men jag säger H-brygga.
ATmega8 rymmer bara 8 KB i ROM och det är rätt lite, både nu och då. Men jag tror den uppfyller många möjligheter en också.

Jag hittade en manual hur man bränner över en bootloader till en ATmega8 och jag skulle också vilja lära mig det.
Men nu är det så att jag tänkte om det skulle gå att använda sig av en Arduino UNO Rev 3 som använder sig av ATmega328 processorn. Jag följer manualen ovan men blandar denna manual nedan för att bränna in bootloader till ATmega8.
http://todbot.com/blog/2009/05/26/minim ... h-atmega8/

Dock verkar denna manual beskriva att man kan ladda upp program via ISP. :|

Jag har redan Arduino Mega, men hittar ingen manual för Arduino ISP-programmera på ATmega328
Senast redigerad av Al_Bundy 21 oktober 2013, 17:28:46, redigerad totalt 1 gång.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Kan jag bygga egen Arduino med ATmega8-16UP kontroller?

Inlägg av Al_Bundy »

Icecap skrev:Det var då otroligt med problem eliten har med detta.

Nåväl: en "helt bar" ATmega kan bara programmeras medelst ISP eller parallellprogrammering. Alltså måste man ha en enhet som fungerar som ISP-programmeringsenhet, om det sedan är en Arduino eller AVRISP mk 2 eller annat har ingen betydelse.

Med hjälp av ISP-enheten kan du sedan programmera din ATmega. Om du sedan lägger in bootloadern så att du kan leka Arduino eller att du har kompilerat programmet i en kompiler som faktisk gör icke-Arduino kod har ingen större betydelse, funktionen kör ändå så länge du lägger in rätt programkod.
Du menar att jag kan programmera in ett program på processorn via ISP precis som bootloadern?
Användarvisningsbild
SeniorLemuren
Inlägg: 8403
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Kan jag bygga egen Arduino med ATmega8-16UP kontroller?

Inlägg av SeniorLemuren »

Jorusåatte det verkar som om pengen ramlat ner nu efter sådär 80 inlägg. :) Gött!
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Kan jag bygga egen Arduino med ATmega8-16UP kontroller?

Inlägg av Al_Bundy »

Men alla säger olika hela tiden.
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Kan jag bygga egen Arduino med ATmega8-16UP kontroller?

Inlägg av Icecap »

Näpp, det säger ganska lika. Det är bara du som uppfattar olika.

Exempel: Man tar en ATmega-nånting. Kopplar in kristall (inte 16mhz men 16MHz! 16 millihertz är väldigt långsamt!), lite avkoppling och spännngsregulator om det behövs. Alltså en helt vanlig µC-koppling. För enkelhetens skull sätter man dit den 6-pinniga ICSP-anslutning.

Sedan skriver man programmet i t.ex. AVR studio, kompilerar och får en fil med hex-kod. Den laddar man sedan in i kretsen (flasher) via en ICSP-enhet, själv har jag en AVRISP mk 2 men det finns många, däribland en Arduino med ett program för detta.

Detta har alltså inget med Arduino att göra! Det är bara så man använder µC i gemen.

Andra vägen man kan gå är att göra allt ovan av bygge, sedan tar man o flasher in bootloadern från Arduino - och bygger på USB-kommunikationen också och *BIONNG* har du en Arduino-klon.

Sedan kan du skriva samma program men på Arduinosättet och trycka in i din µC och det fungerar - när du har debuggad det. Debuggningen behövs i vilket fall som helst, oavsett väg.

Det jag roar mig ganska mycket över är att jag har alla fördelar med att ha standard C som programmeringsspråk, samma enkelhet med programmeringen - och en 50MHz 32-bitars µC med 256kB programminne, 64kB RAM och 8kB EEPROM. Programmeringen sker via ett program som övervakar datum/tid på hex-filen och som automatisk flasher in den om det är vald.

Alla "smarta" funktioner är mest bara larv, detta med pin-input o allt är bara ett par macron som gör det, det är minst lika enkelt att ställa riktningsregistret direkt och läsa/skriva portpinnar direkt.

Är man beroende av att delay() fungerar är man antingen en inte-helt-kunnig programmör eller har ett extremt konstigt problem, att initiera ett LCD finns det otroligt gott om rutiner till på nätet, att skriva till det likaså men jag anar att saker som att använda interrupt, systemtimer och dylikt inte är på bordet när det dukas fram Arduino.

I Renesas RX-serien finns det högar av timers, interrupts o skit och det finns en anledning: rätt använd blir programmeringen mer stabil och välfungerande. Såklart är det mer komplicerat om man t.ex. ska styra 8 Capture-ingångar samtidig som det finns systemtimers o allt annat som tuggar på men det är ju inte konstigt.

Mitt senaste projekt har just 8 capture-ingångar, 8 utgångar till lite allmän användning, 5 UART som alla är aktiva samtidig, systemtimer som "faslåsas" till den 1-sekund interrupt jag får från RTC-kretsen, sedan kommer det interruptstyrd I²C kommunikation samt styrning av en LED-skärm.

Och ja, det är "stort" och definitivt omöjligt med Arduino, helt enkelt för att det inte finns pinnar, minne och hastighet nog men det är också olika världar. Men vill "eliten" visa sitt värde är det i den liga ni ska spela.

Och det projekt jag beskriver är ingalunda stort på riktigt, det finns folk här som gör riktigt tunga grejer...
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Kan jag bygga egen Arduino med ATmega8-16UP kontroller?

Inlägg av Al_Bundy »

Tack icecap.

Vi får se hur det blir när jag får hem processorn och UNOn. Ska blir intressant.

Jag valde arduino gör det finns mycket support och det är enkelt att programmera. Jag hoppas du förstår. Många brukar hävda att det är lika lätt att programmera arduino som avrstudio.

Det jag tycker är dåligt med uno är att det verkar inte som att man kan bränna in en bootloader om man trycker fast den tomma processorn på uno:n och sen bränner in bootloadern. Men vi ser väll. :)
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Kan jag bygga egen Arduino med ATmega8-16UP kontroller?

Inlägg av Icecap »

Det är inte dåligt med Uno'n, det är lika med alla µC! Det är dina förväntningar som är åt pipsvängen till, sannolikt för att du inte förstår hur det fungerar i µC-världen. Och ändå är du den självutnämnda elit... ser du ironin?

Det finns en anledning till att det säljs ICSP-enheter till snart sagt alla µC-familjer. Till PIC är PICkit 2 & 3 mycket populära, till AVR är AVRISP mk 2, STK500 och Butterfly populära. Till Freescale finns det liknande grejer och de finns faktisk till otroligt många familjer.

Så ta bort dina skugglappar och inse att Arduino är en lite µC med små resurser till ett högt pris. Man kan lika bra koppla själv - som du ju gör fast du kallar den "Barebone Arduino" i ren okundskap - och programmera via ICSP. Det är inte en "barebone Arduino", det är en helt vanlig µC-koppling, inget annat.

Att Ardunio's variant av C är mer logisk får stå för dig, jag skulle påstå annat men du har väl vant dig och ser inget annat pga. skugglapparna.

Förstå mig rätt: Arduino är helt OK som instegsmodell men när nu denna självutnämnda elit inser att de inte kan speciellt mycket av vad som verkligen händer och hur man kan göra och sedan kommer att vilja designa ett system med lite musklar blir det kris, helt enkelt av okunskap.

Men OK, lite kred åt Arduino: det kan vara enklare att installera och använda än t.ex. AVR Studio. Där fattas lite i form av ett komplett paket som bara kan installeras och allt fungerar direkt - men det är det enda som jag kan ge det.

Då all källkod finns fritt tillgänglig till Arduino kan man enkelt kopiera den programdelar in om man koppla sig in på en shield, även om man kompilerar i AVR Studio. Alla dessa delay() o skit som ovana programmörer använder finns i AVR Studio också så det är inget speciellt.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Kan jag bygga egen Arduino med ATmega8-16UP kontroller?

Inlägg av Al_Bundy »

Om du vill övertyga mig att det är enklare eller lika enkelt med arduino som avrstudio så måste du visa det. :)

När jag tittar på koden i avrstudio så ser jag kinesiska i kod.

När jag tittar på koden i arduino så ser jag en pythonprogrammerares vision hur pedagogik ska skrivas i kod.
Användarvisningsbild
säter
Inlägg: 35221
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Kan jag bygga egen Arduino med ATmega8-16UP kontroller?

Inlägg av säter »

Al_Bundy skrev:Men jag har ATmega8 också som jag tänkte använda som, ja nu har jag dåligt ordförråd igen, men jag säger H-brygga.
Hur fungerar det, kan man bränna samma hex-fil till ATmega8 som till ATmega328?
Eller finns det möjlighet att välja processor vid kompileringen?
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Kan jag bygga egen Arduino med ATmega8-16UP kontroller?

Inlägg av sodjan »

> Du menar att jag kan programmera in ett program på processorn via ISP precis som bootloadern?

Ja, varför inte ???
Bootloadern är ju bara "ett program". Det är absolut inget
speciellt konstigt med den, förrutom att det är ett program
som har en väldigt speciell uppgift. ISP funktionen hos en
vanlig programmerare ser ingen som helst skillnad mellan
bootloadern och vilket annat program som helst...

> Det jag tycker är dåligt med uno är att det verkar inte som att man kan bränna in en
> bootloader om man trycker fast den tomma processorn på uno:n och sen bränner in bootloadern.

Om man förstår hur det fungerar så förstår man att det självklart är så.
Processorn som sitter i en Arduino *MÅSTE* ha en bootloader, hela
Arduino-konceptet bygger på det...
Skriv svar