Börja med ARM

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
RasmusB
Inlägg: 1006
Blev medlem: 24 augusti 2006, 23:32:13
Ort: Södertälje

Börja med ARM

Inlägg av RasmusB »

Tänkte att det börjar bli dags att bredda sig lite.

Har tidigare programmerat en del PIC, men under en kurs på universitetet programmerade jag en DSP-processor från TI och fick blodad tand för lite kraftigare doningar! :twisted: Som student är budgeten begränsad, men jag tror mig kunna skrapa ihop till följande prylar:

Olimex SAM7-EX256 utvecklingskort
Olimex ARM-USB-OCD JTAG allt-i-ett-pryl

Totalpris: Strax under 2000:- på lawicel-shop.

Speciellt programmeraren verkar tilltalande, gillar att den har inbyggd RS232 eftersom jag inte har serieport på laptopen. Som jag har förstått ska den funka till de allra flesta moderna ARM-baserade processorer?

Jag sitter oftast i Windows, så som utvecklingsmiljö tänkte jag använda Eclipse med YAGARTO-toolchain.

Så till frågorna...

Har jag missat något uppenbart (som att några av sakerna inte skulle funka ihop etc)?
Tycker ni att det är ett bra paket att börja lära sig ARM med?
Känner ni till något mer prisvärt alternativ i samma prisklass?
Finns det anledning att tro att jag skulle "växa ur" något av det jag nämnt på alltför kort tid?
Användarvisningsbild
chille
Inlägg: 2469
Blev medlem: 25 juni 2003, 20:54:41
Ort: Stockholm
Kontakt:

Inlägg av chille »

Du har inte funderat på en ARM9 istället kanske? Känns ju lite mer up-to-date än någon gammal ARM7. Finns en hel del billig(are) devkits att ta hem från USA om du kan tänka dig det.

Här är min favorit, men det finns även utan FPGA för $129. Tänk på att priserna som syns direkt på sidan är i 100-pack, du får klicka på "Pricing & options" för att få styckpris.
Användarvisningsbild
RasmusB
Inlägg: 1006
Blev medlem: 24 augusti 2006, 23:32:13
Ort: Södertälje

Inlägg av RasmusB »

Tack :) Ser ut att vara väldigt kompetenta prylar :) Men jag får känslan av att de mest är intressanta om man vill bygga en linuxburk till nåt, jag är mer intresserad av att skriva allt själv från grunden. Inte för att jag har något emot linux eller så men det är nog inte där jag vill börja :)

Däremot ser jag gärna fler förslag på ARM9:or, att jag valde det jag länkade till ovan var mest priset + att den har grafisk display och ljudanslutningar :) Kanske finns nåt liknande med en ARM9? Kollade på VirtualCogs förut - de har ett kort med Freescales i.MX21 ARM9... väldigt fräsiga funktioner i den, men lite för dyr att börja labba med tyckte jag när allt måste köpas som moduler...
Användarvisningsbild
ucadv
Inlägg: 203
Blev medlem: 29 januari 2007, 23:13:49

Inlägg av ucadv »

Det här ARM7 kortet kostar drygt 200 kr inkl frakt:

http://www.futurlec.com/ARM2103_Controller.shtml


Det är ingen större skillnad mellan ARM7 och ARM9 om du kodar i C ;)

/uc
remne
Inlägg: 241
Blev medlem: 11 februari 2007, 14:11:21
Ort: Linköping

Inlägg av remne »

Rent allmänt, du har inte kikat på AVR32 någonting? Vet inte riktigt vad skillnaden mellan dessa och ARM propparna är, men avr32 har ju fått riktigt bra kritik.. Kanske något som är värt att kika upp? :-)
Matte
Inlägg: 218
Blev medlem: 4 april 2007, 19:54:17
Ort: Stockholm

Inlägg av Matte »

ARM7 och ARM9 är två olika uC med olika andvändningsområden. Att hoppa från en pic till ARM e ett stort hopp och att sen hoppa hela vägen till ARM9. ARM9 är konstruerad för att köra OS på, 926 har tex MMU som krävs för linux. Dock betyder det inte att man inte kan köra utan OS eller att ARM7 inte skulle klara av OS men den hanterar den inte lika bra.

Det du ska tänka på med ARM7 och ARM9 är att de är rätt föråldrade, Interupterna är rätt spejsade och det är en rätt duktig latency på dom. tänk också på att ARM och då speciellt ARM9 är knepigare att konstruera hårdvara för. Du får tänka på att alla powersupply ben ska vara avstörda me en CAP, du behöver troligen en reset krets, i flera fall behövs dubbla supply spänningar. Tänk också på att IO pinnarna driver typ 2mA och inte 20mA så du kan glömma att driva nått direkt från en IO, de IOs som inte är ansluta bör jordas.

Om du är intresserad av ARM7 så kolla på ARMs nya Cortex-M3.
ST kommer att släppa de första chippen och verktygen i början på oktober och med lite tur börjar ELFA sälja dom rätt snart efter det.
uC heter STM32 och i den nya kärnan har interuptproblem blivit löst tillsammans med en kraftigt reducerad strömförbrukning(endast 25% av ARM7 per MIPS) den är snabbare och är lättare att jobba med då den inte kräver bootloader i ASM. Hårdvaran är också här lättare att designa....enkel wide supply voltage och varken kristall eller resetkretsar behövs. den klarar också av att sänka 20mA på alla pinnar.

Och av de testerna jag har sett lär den piska AVR32.
Användarvisningsbild
speakman
Inlägg: 4838
Blev medlem: 18 augusti 2004, 23:03:32
Ort: Ånge

Inlägg av speakman »

uCLinux går ju att köra utan MMU iof. :)
Användarvisningsbild
ucadv
Inlägg: 203
Blev medlem: 29 januari 2007, 23:13:49

Inlägg av ucadv »

har nån provat korten från embeddedARM som chille länkade till? Jag är lite sugen på att köpa ett.


Matte >>>
Tänk på att ARM7/ARM9/Cortex är ett IP som tillverkaren köper från ARM. Det är klart att Cortex med Thumb2 har bättre prestanda än ARM7, men sådant som dubbla matningsspänningar osv beror på tillverkarens (STMicro i ditt fall) kringkomponenter och inte på ARM :(
Det finns gott om ARMx chip från andra tillverkare som är singlesuppply (ner till 1v3!) eller orkar driva mer än 2mA

/uc
Användarvisningsbild
RasmusB
Inlägg: 1006
Blev medlem: 24 augusti 2006, 23:32:13
Ort: Södertälje

Inlägg av RasmusB »

Hehe fattas ju varken förslag eller åsikter :) Tack för all feedback, får se vad det blir för nåt :)
JJ
Inlägg: 366
Blev medlem: 16 maj 2005, 21:33:02

Inlägg av JJ »

Men än är det inte slut med åsikter och synpunkter!

Har du kollat på WinARM? Vad tyckte du om den isåfall?

Jag har jobbat lite med WinARM och den JTAG-grunkan du länkat till. Det funkade!

ARM verkar vara det som gäller. Varför köra AVR när man kan köra ARM med dubbla priset men tiodubbla prestandan? (Ett svar är givetvis att ARM inte finns hålmonterad om man är så funtad.)
Användarvisningsbild
RasmusB
Inlägg: 1006
Blev medlem: 24 augusti 2006, 23:32:13
Ort: Södertälje

Inlägg av RasmusB »

Bra det :)

Nej, inte kollat på winARM, är som sagt helt ny på ARM-fronten. :) Kul att se att det finns fler alternativ som inte kräver cygwin el. dyl., kände bara till yagarto :)

Har du provat att använda powersupply-funktionen och serieporten på JTAG-grejen, eller använder du bara själva JTAG-delen?
Matte
Inlägg: 218
Blev medlem: 4 april 2007, 19:54:17
Ort: Stockholm

Inlägg av Matte »

ucadv skrev: Matte >>>
Tänk på att ARM7/ARM9/Cortex är ett IP som tillverkaren köper från ARM. Det är klart att Cortex med Thumb2 har bättre prestanda än ARM7, men sådant som dubbla matningsspänningar osv beror på tillverkarens (STMicro i ditt fall) kringkomponenter och inte på ARM :(
Det finns gott om ARMx chip från andra tillverkare som är singlesuppply (ner till 1v3!) eller orkar driva mer än 2mA

/uc
Japp, du har helt rätt ARM är ett företag precis som STM Och jag är ingen expert på olika tillverkare av ARM uCs. Men en ARM9 bygger på en harward arkitektur och oftast 100MIPS+ vilket innebär att kärnan behöver en del ström vilket gör att man gärna undviker att ha en intern spänningsref och eftersom man fortfarande inte vill ha 1-2V på IO så kräver många dubbel supply.
*andas*

Jag tycker det är toppen att du hittat en MCU med singel supply på 1.3V men vad ska du kontrollera med den? 1.3V IO är det inte många kringkomponenter som kör med.
Då föredrar jag isåfall att ha dual supply och slippa nivåkonverterarna på utgångarna?
Sen får jag be om ursäkt för formuleringen av de 20mA, klart att det finns nån som sänker mer än 20mA, finns det dom som gör 8051or för Ghz så finns det nog nån som gör ARM9 som klarar 20mA sänk. :-)

Thumb2 inget med prestandan att göra utan är endast till för att komprimera koden för att den ska ta mindre plats i flash.
Prestanda vinsten kommer främst från harward-arkitekturen och en bättre disponerad kärna. Du kan vinna lite prestanda indirekt iom att en size-optimerad kod måste switcha mellan ARM och Thumb instruction set i ARM7/ARM9.
Användarvisningsbild
ucadv
Inlägg: 203
Blev medlem: 29 januari 2007, 23:13:49

Inlägg av ucadv »

THUMB2 liksom THUMB är en 16-bitars instuktionsuppsättning. Annars är ARMs normala ISA 32 bitars och kallas helt enkelt för ARM (det finns även en ARM26 från stenåldern). Du byter från ARM till THUMB för att minska kodstorleken, men samtidgt får du färre och mindre effektiva instruktioner att välja mellan. T.ex är "A = A + B << 4" endast en instruktion i ARM men två i THUMB. eftersom varje instruktion tar en klocka så blir prestandan lidande när man kör i TUHMB. THUMB2 ska innehålla ett smartare urval av 16-bitars instuktioner. Dessa ska i praktiken ge nästan samma prestanda som ARM, men fortfarande halva kodstorleken:

Bild
Matte
Inlägg: 218
Blev medlem: 4 april 2007, 19:54:17
Ort: Stockholm

Inlägg av Matte »

Precis, fast THUMB2 är en kombination av ARM+Thumb så instruktionerna är 16 eller 32bitar, alltså ligger det en blandning av 16 och 32 bitars instruktioner i flash. Det man slipper med Thumb2 är att byta mellan de olika instruktion sätten.
Sen är troligen storlek och prestanda vinsterna av "best case" typ alltså kod endast i thumb/ARM. tex gör man inte 100st "A = A + B << 4"i rad i thumb mode utan då offrar man en instruktion i början för att byta till ARM kod och sen då man är klar byter man till thumb. Den stora vinsten ligger i att man slipper dessa två instruktioner för bytet och alltid kan andvända den mest optimala instruktionen 16 eller 32 bitar.

Men tolka mig rätt Thumb2 är grymt bra och ger stora vinster i storlek kontra ARM och prestanda kontra Thumb.
Användarvisningsbild
RasmusB
Inlägg: 1006
Blev medlem: 24 augusti 2006, 23:32:13
Ort: Södertälje

Re: Börja med ARM

Inlägg av RasmusB »

Olimex SAM7-EX256 utvecklingskort
Olimex ARM-USB-OCD JTAG allt-i-ett-pryl

Blev de här prylarna till slut :) Finns både billigare och mer kompetenta utvecklingskort, men jag gillade att det fanns så pass mycket tillbehör på kortet från början. Blir roligare att komma igång när man kan få konkreta resultat på en display eller liknande från dag 1 :)

Ett till argument är att det här utvecklingskitet blir lätt att släpa med i laptopväskan, behövs ingen nätadapter etc. om det funkar som jag hoppas... ;)

Tack för alla tips! :)
Skriv svar