
Val av microcontroller
Jag är ny på AVR, och jag tycker det är mycket smidigt att använda. Jag använder Winavr och GCC, programerar i C. Jag köpte ett starterkit "stk500" och en handfull avr-kretsar. Det var ganska enkelt att komma igång med. Det finns ett forum som handlar helt om AVR, med många Tutorials(avrfreaks.net), det har hjälpt mig mycket.
Jag är inte speciellt insatt i programering eller AVR-kretsar, men med hjälp av tutorials på ovannämda site så har jag lyckats få igång en LCD,timers, AD-omvandling och lite sådant utan några större strul.
Mitt avr-användande härstammar från mina intressen i modellflyg och foto, och jag ser det mer som ett hjälpmedel för att få mina grejor där att funka. Därför har jag inte satt mig in i att använda assembler och läsa datablad "pärm-pärm"(en del har jag dock tvingats läsa
)
Jag gjorde nyss en servodriver, för att kunna fälla ut landningsstället på ett av mina modellflygplan i slowmotion, istället för med full fart som det blir med "on/off" spaken på sändaren.
Man skulle kanske kunna säga att jag kan köra bilen utan att veta vad som finns under huven. Kanske kommer det framtida projekt som kräver att jag sätter mig in i hur en AVR fungerar, och vad assembler är.
//Alexander
Jag är inte speciellt insatt i programering eller AVR-kretsar, men med hjälp av tutorials på ovannämda site så har jag lyckats få igång en LCD,timers, AD-omvandling och lite sådant utan några större strul.
Mitt avr-användande härstammar från mina intressen i modellflyg och foto, och jag ser det mer som ett hjälpmedel för att få mina grejor där att funka. Därför har jag inte satt mig in i att använda assembler och läsa datablad "pärm-pärm"(en del har jag dock tvingats läsa

Jag gjorde nyss en servodriver, för att kunna fälla ut landningsstället på ett av mina modellflygplan i slowmotion, istället för med full fart som det blir med "on/off" spaken på sändaren.
Man skulle kanske kunna säga att jag kan köra bilen utan att veta vad som finns under huven. Kanske kommer det framtida projekt som kräver att jag sätter mig in i hur en AVR fungerar, och vad assembler är.
//Alexander
-
- Inlägg: 7122
- Blev medlem: 31 augusti 2006, 16:42:43
- Ort: Jamtland
Kan också rekomendera att titta lite i forumets wiki. Där finns lite intro till mikrcontrollers.
http://www.elektronikforumet.com/wiki/i ... 6rteckning
http://www.elektronikforumet.com/wiki/i ... 6rteckning
Ranstam: Intressant. Helt klart intressant. Det är ju så jag har tänkt att använda det. Som ett hjälpmedel för att mina grejor att fungera. Jag ska titta närmare på det du nämt.
sodjan: Mitt mål nu är inte att lära mig att om programmering utan att få det hela att fungera i en raket. Sen om intresse och tid finns så kanske jag lär mig det hela lite mer från grunden. Jag tänkte att den ska lagra data med en frekvens med 100 Hz och kunna göra det i 8-10 min (göra klar raketen för start, ta sig från platsen, kolla över omgivningen en sista gång, få klartecken från alla, andas ut, avfyra och flyga. det kan ta en stund), hur mycket minne kan man tänkas behöva då? hur snabb behöver den vara? jag måste säga att jag gillar att ni talar klarspråk med nybörjare som mig!!
MiSTer: Den här tråden ska inte mynna ut i den rakettråd men ett tips är ju alltid att börja smått och läs så mycket som du kan. www.flashback.info har ett kemi/pyroteknik-forum som jag tycker är bra. På http://www.nakka-rocketry.net/ finns allt du behöver veta för att få en raket x km uppåt. Vad ska du göra med elektroniken i luften? Vad är själva funktionen? Ett tipa kan ju vara hagelbrakare med underkalibrig "ammunition" men då måste man ju göra grejerna väldigt små.
strombom: visst har jag det. På det kära youtube! Här har jag den bästa jag har gjort. Den kommer ju inte så högt, bara 80 meter, men de bästa projekten ligger i framtidien.
Om du besöker min användare så kommer det upp lite allt möjligt som jag har sysslat med. Allt har ju inte alltid gått som det det var tänkt...
http://www.youtube.com/user/Weegas36
sodjan: Mitt mål nu är inte att lära mig att om programmering utan att få det hela att fungera i en raket. Sen om intresse och tid finns så kanske jag lär mig det hela lite mer från grunden. Jag tänkte att den ska lagra data med en frekvens med 100 Hz och kunna göra det i 8-10 min (göra klar raketen för start, ta sig från platsen, kolla över omgivningen en sista gång, få klartecken från alla, andas ut, avfyra och flyga. det kan ta en stund), hur mycket minne kan man tänkas behöva då? hur snabb behöver den vara? jag måste säga att jag gillar att ni talar klarspråk med nybörjare som mig!!

MiSTer: Den här tråden ska inte mynna ut i den rakettråd men ett tips är ju alltid att börja smått och läs så mycket som du kan. www.flashback.info har ett kemi/pyroteknik-forum som jag tycker är bra. På http://www.nakka-rocketry.net/ finns allt du behöver veta för att få en raket x km uppåt. Vad ska du göra med elektroniken i luften? Vad är själva funktionen? Ett tipa kan ju vara hagelbrakare med underkalibrig "ammunition" men då måste man ju göra grejerna väldigt små.
strombom: visst har jag det. På det kära youtube! Här har jag den bästa jag har gjort. Den kommer ju inte så högt, bara 80 meter, men de bästa projekten ligger i framtidien.
Om du besöker min användare så kommer det upp lite allt möjligt som jag har sysslat med. Allt har ju inte alltid gått som det det var tänkt...
http://www.youtube.com/user/Weegas36
Säg att du vill lagra data i 16 bitars upplösning (2 bytes), då har du nog marginal. Datamängden från accelerometern blir då 2 * 100 byte / sekund * 10 * 60 sekunder = 120 000 bytes / 10 minuter.
De EEPROM jag länkade till hade max 256kbit eller 32kbyte, så det räcker ju inte riktigt, minnena som Sodjan länkade till verkar ligga i samma storleksordning. Man kan använda flera stycken i värsta fall.
Att använda SD-kort som någon nämnde går såklart också, men det kan vara lite krångligare.
Jag har för mig att många AVR-kretsar kan skriva till sitt eget FLASH-minne, det kan vara ett alternativ, det finns kretsar med upp till 256kbyte, om inte mer.
Det finns även något som kallas SPI-FLASH, det kanske är värt att titta på. Exempel:
http://search.digikey.com/scripts/DkSea ... 10SU2.7-ND
De EEPROM jag länkade till hade max 256kbit eller 32kbyte, så det räcker ju inte riktigt, minnena som Sodjan länkade till verkar ligga i samma storleksordning. Man kan använda flera stycken i värsta fall.
Att använda SD-kort som någon nämnde går såklart också, men det kan vara lite krångligare.
Jag har för mig att många AVR-kretsar kan skriva till sitt eget FLASH-minne, det kan vara ett alternativ, det finns kretsar med upp till 256kbyte, om inte mer.
Det finns även något som kallas SPI-FLASH, det kanske är värt att titta på. Exempel:
http://search.digikey.com/scripts/DkSea ... 10SU2.7-ND
> lagra data med en frekvens med 100 Hz
Alltså i så fall 10 ms mellan varje värde. Normala standard EEPROM
har en "write-cycle" på 5-10 ms beroende på modell och fabrikat, så
med dom ligger du på gränsen för vad de klarar. Dessutom, om varje
värde är > 8 bitar, så är det 2 eller fler skrivningar/mätvärde.
De FRAM som jag länkade till har ingen sådan fördröjning vid skrivning,
de skriver i, så att säga "full fart" och 100 skrivningar/sek är inget problem
alls. De har även en i praktisken obegränsad "endurance", d.v.s maximalt
antal skrivningar innen det är "utslitet".
Sedan kan man fundera på andra lösningar med olika sorts minneskort,
men då ökar komplexiteten i programvaran (och sannolikt vikten på
hela lösningen) en del.
Man kan använda sig av olika "tricks" för att spara minne. Som att t.ex inte
lagra mätpunkter om de inte har ändrats (mer en en viss marginal) från
föregående mätpunkt. Då tillkommer lagring av någon slags klocka
också i och för sig, så om man sparar något eller inte beror på karaktären
på mätdatat över tiden. Ytterliggare än annan metod är att bara lagra
skillnaden mellan två mätpunkter, men då måste man ha någon teknik
för att lagra värden med olika längd, om det ska vara någon mening med
den metoden. Om du inte behöver just 16 bitars lagring så kan du även
packa data lite bättre.
> Jag har för mig att många AVR-kretsar kan skriva till sitt eget FLASH-minne,
Har inte det samma problem som standard EEPROM, d.v.s att det kan
bli lite svårt att skriva 100 gånger/sekund ?
> Det finns även något som kallas SPI-FLASH, det kanske är värt att titta på. Exempel:
Skrivtiden (75 us/byte) är OK. "Sector erase" (som måste utföras innan
programmering) tar i och för sig drygt 1 sek/sector (2 sek för hela minnet),
men det borde kunna göras innan själva flygningen.
Fördelen med Ramtrons FRAM är att man kan skriva/läsa helt dynamiskt
till vilken adress som helst, ingen "erase" behövs innan man skriver. D.v.s
ungefär som ett vanligt RAM minne, med skillnad att de inte "tappar minnet"
när spänningen slås av.
En fråga...
Varför måste du lagra värden medan du andas ut, kollar omgivningen
och får klartecken ? Är det inte själva *flygningen* som är intressant ??
Alltså i så fall 10 ms mellan varje värde. Normala standard EEPROM
har en "write-cycle" på 5-10 ms beroende på modell och fabrikat, så
med dom ligger du på gränsen för vad de klarar. Dessutom, om varje
värde är > 8 bitar, så är det 2 eller fler skrivningar/mätvärde.
De FRAM som jag länkade till har ingen sådan fördröjning vid skrivning,
de skriver i, så att säga "full fart" och 100 skrivningar/sek är inget problem
alls. De har även en i praktisken obegränsad "endurance", d.v.s maximalt
antal skrivningar innen det är "utslitet".
Sedan kan man fundera på andra lösningar med olika sorts minneskort,
men då ökar komplexiteten i programvaran (och sannolikt vikten på
hela lösningen) en del.
Man kan använda sig av olika "tricks" för att spara minne. Som att t.ex inte
lagra mätpunkter om de inte har ändrats (mer en en viss marginal) från
föregående mätpunkt. Då tillkommer lagring av någon slags klocka
också i och för sig, så om man sparar något eller inte beror på karaktären
på mätdatat över tiden. Ytterliggare än annan metod är att bara lagra
skillnaden mellan två mätpunkter, men då måste man ha någon teknik
för att lagra värden med olika längd, om det ska vara någon mening med
den metoden. Om du inte behöver just 16 bitars lagring så kan du även
packa data lite bättre.
> Jag har för mig att många AVR-kretsar kan skriva till sitt eget FLASH-minne,
Har inte det samma problem som standard EEPROM, d.v.s att det kan
bli lite svårt att skriva 100 gånger/sekund ?
> Det finns även något som kallas SPI-FLASH, det kanske är värt att titta på. Exempel:
Skrivtiden (75 us/byte) är OK. "Sector erase" (som måste utföras innan
programmering) tar i och för sig drygt 1 sek/sector (2 sek för hela minnet),
men det borde kunna göras innan själva flygningen.
Fördelen med Ramtrons FRAM är att man kan skriva/läsa helt dynamiskt
till vilken adress som helst, ingen "erase" behövs innan man skriver. D.v.s
ungefär som ett vanligt RAM minne, med skillnad att de inte "tappar minnet"
när spänningen slås av.
En fråga...
Varför måste du lagra värden medan du andas ut, kollar omgivningen
och får klartecken ? Är det inte själva *flygningen* som är intressant ??
-
- Inlägg: 138
- Blev medlem: 12 maj 2007, 11:24:24
- Ort: Sjöbo
Om 100 Hz får det hela att bli lite mer komplicerat så kan jag ta ett annat värde. Med 50 Hz får jag också helt ok mätvärden. Mina "krav" är inte skrivna i blod jag kan anpassa mycket för att det ska bli så enkelt som möjligt.
Självklart är det bara flygningen som är intressant. Det är väl det att jag tänker lite enkelspårigt eftersom jag inte känner mig så säker på ämnet. Man skulle ju kunna ha så att all data som är mer än 5 s gammal tas bort tills man får ett värde som överstiger 2 g varefter all data sparas. Det var bara en tanke som skulle vara användbar men i nuläget har jag ingen aning om hur man skriver kod för det.
Fågor:
1. Klarar vanliga komponenter 50 g? 50 g är ju ganska mycket och finns det någon risk att något går sönder bara av accelerationen som accelerometern klarar?
2. På freeescales hemsida står det att "min" accelerometer har en kännslighet av 40 mV/g. Vad skickar accelerometer för signaler till controllern? Är det bara en spänningsstyrka som controllerns får tolka, får man ha en till enhet som mäter spänning eller skickar accelerometer helt andra signaler?
3. Finns det komponenter som man bara kan koppla till AVR och inte till PIC och tvärt om? Om jag väljer AVR, finns det då en risk att jag inte kan använda min tänkta accelerometer?
4. Det känns som att AVR är det som passa mina syften bäst och jag funderar på att köpa ett starterkit stk500 som Ranstam gjorde. Någon kommentar på det? Vart kan man köpa en sån till ett förmånligt pris?
5. Jag känner mig ganska överöst med förkortningar, programmeringstermer och namn på komponenter. Finns det någon sida/textfil som är bra att läsa som allra första text. Den som göra att man förstå vad det handlar om. T.ex som går igenom vad en kristall gör, hur ett minne fungerar och andra bra saker för den helt nye.
tack för hjälpen så långt!
Självklart är det bara flygningen som är intressant. Det är väl det att jag tänker lite enkelspårigt eftersom jag inte känner mig så säker på ämnet. Man skulle ju kunna ha så att all data som är mer än 5 s gammal tas bort tills man får ett värde som överstiger 2 g varefter all data sparas. Det var bara en tanke som skulle vara användbar men i nuläget har jag ingen aning om hur man skriver kod för det.
Fågor:
1. Klarar vanliga komponenter 50 g? 50 g är ju ganska mycket och finns det någon risk att något går sönder bara av accelerationen som accelerometern klarar?
2. På freeescales hemsida står det att "min" accelerometer har en kännslighet av 40 mV/g. Vad skickar accelerometer för signaler till controllern? Är det bara en spänningsstyrka som controllerns får tolka, får man ha en till enhet som mäter spänning eller skickar accelerometer helt andra signaler?
3. Finns det komponenter som man bara kan koppla till AVR och inte till PIC och tvärt om? Om jag väljer AVR, finns det då en risk att jag inte kan använda min tänkta accelerometer?
4. Det känns som att AVR är det som passa mina syften bäst och jag funderar på att köpa ett starterkit stk500 som Ranstam gjorde. Någon kommentar på det? Vart kan man köpa en sån till ett förmånligt pris?
5. Jag känner mig ganska överöst med förkortningar, programmeringstermer och namn på komponenter. Finns det någon sida/textfil som är bra att läsa som allra första text. Den som göra att man förstå vad det handlar om. T.ex som går igenom vad en kristall gör, hur ett minne fungerar och andra bra saker för den helt nye.
tack för hjälpen så långt!
1: Nära nog alla komponenter klarar G-kraften, det är monteringen som behöver omtanke. Ytmonterat är bra pga. låg vikt, lätt att limma osv.
2: "spänningsstyrka" finns inte, den ger ett spänningsNIVÅ som du måste förstärka till lagom nivå.
3: Nej. Och jag ville till och med föreslå en Renesas-processor.
4: Verkar som att du generellt behöver "mer choklad på skjortan" om mikroprocessorer och då duger nog STK500 också.
5: ... känner ej till det.
Lite som du MÅSTE tänka över: krav är krav! Om dina krav inte är skrivna i blod (man brukar väl rista dom i sten?) är det inte krav(!), då är det önskemål. Krav är något som SKA uppfyllas, önskemål är trevliga att få uppfyllda.
Så ställ upp vad du har av KRAV och sedan vad du har av önskemål.
Med tanke på G-kraften vill jag starkt avråda från lösa minnesenheter, ingen SD-kort eller liknande, montera heller ett (eller flera) fett EEPROM eller extern flash-minne som kan monteras på kretskortet.
2: "spänningsstyrka" finns inte, den ger ett spänningsNIVÅ som du måste förstärka till lagom nivå.
3: Nej. Och jag ville till och med föreslå en Renesas-processor.
4: Verkar som att du generellt behöver "mer choklad på skjortan" om mikroprocessorer och då duger nog STK500 också.
5: ... känner ej till det.
Lite som du MÅSTE tänka över: krav är krav! Om dina krav inte är skrivna i blod (man brukar väl rista dom i sten?) är det inte krav(!), då är det önskemål. Krav är något som SKA uppfyllas, önskemål är trevliga att få uppfyllda.
Så ställ upp vad du har av KRAV och sedan vad du har av önskemål.
Med tanke på G-kraften vill jag starkt avråda från lösa minnesenheter, ingen SD-kort eller liknande, montera heller ett (eller flera) fett EEPROM eller extern flash-minne som kan monteras på kretskortet.
1. Vibrationerna är förmodligen värre än själva accelerationen från raketen. Använd så små och lätta komponenter som möjligt så tror jag nog att det håller. Bofors har ju lyckats få in elektronik i sina "kanonkulor", jag tror det handlar om 20000 g där 
2. Läs gärna igenom databladet för kretsen några gånger. Där finns bland annat ett kopplingsexempel som visar hur man kan koppla den till en mikrokontroller. I det här fallet är det en spänning som motsvarar accelerationen. I accelerometrar från Analog Devices vet jag att man även kan få ut accelerationen i form av en pulsbreddsmodulerad signal, man får alltså mäta tiden på en puls för att räkna ut accelerationen.
3. PIC och AVR är ganska lika, kan du koppla en sensor till en PIC kan du med största sannolikhet koppla den till en AVR också. Däremot finns det mängder av varianter av båda fabrikaten med olika funktioner, till exempel analog-digital-omvandlare osv.
4. Det trevliga med AVR är att man kan programmera den i GCC... STK500 finns att köpa på bland annat www.lawicel-shop.se och www.swcab.nu
5. Här har du grunden till alltihop
http://www.sparkfun.com/commerce/presen ... owerSupply
http://www.sparkfun.com/commerce/presen ... BEE-2-Code
http://www.sparkfun.com/commerce/presen ... scillators
http://www.sparkfun.com/commerce/presen ... BEE-4-UART
osv...

2. Läs gärna igenom databladet för kretsen några gånger. Där finns bland annat ett kopplingsexempel som visar hur man kan koppla den till en mikrokontroller. I det här fallet är det en spänning som motsvarar accelerationen. I accelerometrar från Analog Devices vet jag att man även kan få ut accelerationen i form av en pulsbreddsmodulerad signal, man får alltså mäta tiden på en puls för att räkna ut accelerationen.
3. PIC och AVR är ganska lika, kan du koppla en sensor till en PIC kan du med största sannolikhet koppla den till en AVR också. Däremot finns det mängder av varianter av båda fabrikaten med olika funktioner, till exempel analog-digital-omvandlare osv.
4. Det trevliga med AVR är att man kan programmera den i GCC... STK500 finns att köpa på bland annat www.lawicel-shop.se och www.swcab.nu
5. Här har du grunden till alltihop

http://www.sparkfun.com/commerce/presen ... owerSupply
http://www.sparkfun.com/commerce/presen ... BEE-2-Code
http://www.sparkfun.com/commerce/presen ... scillators
http://www.sparkfun.com/commerce/presen ... BEE-4-UART
osv...
Eh, är det inte bara själva flygtiden du är intreserad av?
Den är väl inte 8-10 minuter, eller? Det borde ju räcka med att mäta från strax före start. Kanske en tunn ledare i utblåset från motorn som brinner av när den startas. I och med att tråden brinner av så går en pinne hög på mikrokontrollern och mätningen startar. Det borde åt minstone vara några tiondelar mellan motorstart och take off, eller?
Den är väl inte 8-10 minuter, eller? Det borde ju räcka med att mäta från strax före start. Kanske en tunn ledare i utblåset från motorn som brinner av när den startas. I och med att tråden brinner av så går en pinne hög på mikrokontrollern och mätningen startar. Det borde åt minstone vara några tiondelar mellan motorstart och take off, eller?
-
- Inlägg: 7122
- Blev medlem: 31 augusti 2006, 16:42:43
- Ort: Jamtland