Fuzzillogic schreef op vrijdag 23 oktober 2009 @ 22:15:
Is er niet ook een verschil in robuustheid tussen een complexere ARM en simpelere AVR-core, en/of anderszins de mogelijkheid om out-of-spec te werken (meer vermogen door de GIO-pinnen, bij lagere voltages werken, of juist beter bestand zijn tegen hogere voltages, ESD-proof, etc)? Ik kan me voorstellen dat dat in veel situaties ook nog wel van belang kan zijn.
Ik denk dat als je daar op gaat letten dat vooral de ARM beter buiten zijn specs werkt. Als je als voorbeeld even een LPC23xx neemt, die core kun je dacht ik zonder problemen 2x zo hoog klokken als volgens de specs mag en dat is nog mogelijk ook want alle perhipials in de LPC23xx hebben hun eigen klokdivider dus het hele zaakje blijft nog werken ook, je moet alleen niet verwachten dat het bij 100*C nog stabiel is. Bij een AVR kun je zo ver overklokken wel vergeten, dan zijn je perhipials al gestopt. Aan de andere kant heb ik wel weer veel LPC's stuk zien gaan aan ESD...
Om even op mace in te haken, de keuze PIC/AVR vs ARM zal vooral afhangen van de rest van het ontwerp, voordelen voor een PIC/AVR zijn dan vooral de eenvoudigere hardware rondom de µC omdat de PIC/AVR gewoon op 5V kan werken en een ARM meestal 3.3V én 1.8V nodig heeft. Ander puntje is de goedkopere tools voor PIC/AVR.
Als je aan de andere kant bijvoorbeeld een Real time OS wilt gaan draaien is een ARM weer erg prettig omdat de architectuur gewoon weer beter is, vectored interrupts, een wat flexibelere stack + pointer, 32 bits adressen (erg prettig als je veel SRAM hebt) etc. Botweg gezegd kun je complexere problemen op ARM's meestal makkelijker oplossen.
Ik heb nu met PIC's, AVR's en ARM's gewerkt en over het algemeen moet ik zeggen dat AVR's mij het beste bevalt. PIC's heb ik alleen in ASM geprogrammeerd en daar werd ik niet echt vrolijk van, als je daar 4 variabelen moet gaan vergelijken zit je alleen maar na te denken of tijdelijke plekken in het geheugen en dan alles op de juiste manier aftrekken en flags checken enzo, komt je dan best wel de strot uit als je alles in C gewend was

ARM's zijn erg leuk en de mogelijkheden zijn prettig, alleen als je startup script bijvoorbeeld niet helemaal overeenkomt met je linker e.d. dan zit je zo tijd te klooien voordat je überhaupt doorhebt wat er nu eigenlijk mis is.. Niet dat je er niet van leert maar eigenlijk wil je je niet té veel verdiepen in de architectuur maar gewoon lekker code schrijven en testen

Tja ach voor alles is wel wat te zeggen.