Sida 1 av 5

Välja Mikroprocessor för utveckling av kontroll av hissar

Postat: 28 juli 2008, 15:20:14
av TheCalle
Hej

Jag är ny här på forumet men har läst en hel del inlägg och man märker ju direkt att det finns mycket kunskap här!

Jag håller på med ett projekt där jag ska koppla ihop upp till fyra stycken hissar så att de kan styras ifrån en och samma kontroll. Själva styrningen kommer att bestå utav, Upp, Ner och en "programmeringsknapp" där användaren ska kunna ställa in en max och en minhöjd för hissarna (det handlar om pelarhissar och inte hissar du åker i). Dessutom så kan hissarna höjas i olika hastighet beroende på hur tungt lastade de är, det är detta som är ett problem och därför behövs en mikroprocessor som kan hålla reda på hur snabbt hissarna går.

Det var lite om själva projektet, nu till mikroprocesson.
Jag behöver en mikroprocessor som har 25 st I/O portar, 3 timers, minne och hastighet vet jag inte exakt men skulle tro att något i stil med 16 KB minne och ca 16 mhz vore tillräckligt. Troligen är det mer än tillräckligt men det är ju skönt med lite extra marginaler :)

Det är ju som vanligt PIC eller AVR som det står mellan. Jag kommer att programmera i C och har viss men inte jättemycket mikroprocessorerfarenhet sen tidigare. Har inte användt PIC eller AVR tidigare så det blir lite nytt där hur som helst. Har iof tittat lite på TI olika varianter då jag har programmerat en DSP ifrån TI och känner till CodeComposer.

Instinktivt så känns det bättre med AVR, de verkar ha enklare utvecklingsmiljöer (när man programmerar i C) med programmerare och allt. Det är ju bara så som jag ser det, jag har ju inte testat ännu.
Priset på programmerare och microprocessor spelar inte så stor roll, de flesta verkar ligga inom rimliga priser i alla fall.

Är det någon som har något bra tips på mikroprocessor? Och vilken programmerare man behöver för att programmera den skulle vara trevligt att veta också!

Jag bor för närvarande i USA så ni behöver inte tipsa om några speciella svenska sidor eller produkter om de inte finns att få tag på i USA.

Och just det ja, detta kan bli en produkt (ingen massproduktion, kanske 100 per år eller så) i framtiden men jag antar att mer eller mindre alla mikroprocessorer kan användas i produktion.

Oj det blev lite längre än vad jag hade trott :)

tack på förhand

/Calle

Postat: 28 juli 2008, 15:28:44
av Matte
Tjena Calle,

En STM32 kanske? 32-bit ARM Cortex-M3 med 45 eller 90Mips.
16-512k flash osv.

De är rätt billiga och lätta att jobba med då det finns gott om kraft och pereferier för att expandera. + att den är oftast enklare att debugga.
Billig! svårt att få mera kraft för pengarna!

Nackdelen är att det är ett helvete att löda själv, jag har iaf problem med 0.5mm pitch. Troligen lättare att få hjälp här på forumet med PIC/AVR.

MVH
Mattias

Postat: 28 juli 2008, 15:37:49
av TheCalle
Tack för svaret Mattias, den verkar nästan lite för bra för mitt projekt :) Skulle nog föredra en mikroprocessor som är lite mer utbredd (dvs fler som kan hjälpa mig om jag får problem :)

Postat: 28 juli 2008, 16:15:55
av sodjan
> Det är ju som vanligt PIC eller AVR som det står mellan.

Är det ? Varför det ?
Varför inte en enkel PLC eller liknande styrsystem ?

> Jag kommer att programmera i C

Är det inte lite väl tidigt i projektet för att binda
upp sig mot ett visst språk ?

> Och just det ja, detta kan bli en produkt (ingen massproduktion, kanske 100 per år eller så)

Glöm inte att sådant som certifiering, paketering (box) o.s.v snabbt kan bli
väldigt dyrt. Mycket av det får du på köpet med (t.ex) vanliga PLC'er.
Eller i alla fall något färdigt kort med AVR/PIC för inbyggnad. Det kanske
är lite väl små serier för att börja bygga helt egna kretskort o.s.v.
Om du inte har "bra" kund som inte är så priskänslig och där helt egen
hårdvara från grunden ger speciella konkurrensfördelar. Så kan det ju vara
ibland... :-)

Postat: 28 juli 2008, 16:33:16
av TheCalle
En PLC skulle nog kunna fungera men jag är lite mer inställd på en mikroprocessor, har lite mer erfarenheter av dem. Iof har jag programmerat PLC:er oxå men bara i skolan för att testa på att programmera "ladder logik". Ska kolla lite mer på PLC men för tillfället är det mikroprocessor som gäller.

Angående programmeringsspråk så har jag testat på både assembler och C och jag är mycket bättre på att programmera C. Jag är iof öppen för att lära mig nya programmeringsspråk men trotts att detta är ganska enkel programmering så känns det bättre att programmera i ett språk jag redan behärskar någolunda. Och assembler tycker jag inte om :)

Just själva produktionen ska jag kolla upp lite mer noggrant innan jag sätter igång ordentligt. Det var bra att du påminde mig om det!

tack för svaret sodjan

Postat: 28 juli 2008, 17:06:19
av thepirateboy
Ett sätt är att slå på stort och använda en Atmega1281 eller liknande, då har du pinnar och minne så det räcker och blir över. Eftersom det handlar om så små serier spelar priset troligen mindre roll. Vill man använda en mindre MCU när man är klar är det inte så mycket jobb att byta modell om man använder AVR då modellerna är relativt lika i sin uppbyggnad.

Lämplig billig programmerare AVRISP MKII. Kompilator avr-gcc (WINAVR).

Postat: 28 juli 2008, 17:21:02
av TheCalle
Jo har kollat lite på den oxå. Men jag kommer aldrig på det här projektet att kunna utnytja hela dens potential, inte ens nära. Det känns lite som slöseri. Finns det någon modell som är lite under den men fortfarande bra?

Programmeraren kopplar man bara in till ett par pinnar på mikroprocesson och så kan man programmera den utan att behöva någon mer hårdvara eller`? (man har ju ett breadboard eller nåt med Vcc ect såklart, jag menar mer speciell hårdvara).

Och när du ändå tog upp det, är det mestadels initieringsrutiner som skiljer mellan de olika modellerna inom samma typ av mikroprocessorer, typ AVR? Jag menar om man vill flytta ett program ifrån en modell till en annan...

Och en annan fråga. behöver man en extern oscillator för AVR:erna?

Postat: 28 juli 2008, 17:44:40
av thepirateboy
ATmega324P har jag använt till flera projekt, en modern MCU med det mesta man behöver. Finns även som DIP tror jag, om man vill koppla på labbdäck.

Nej du behöver inget mer mellan programmerare och MCU.

Det som brukar skilja är namn på register och interruptvektorer.

Du behöver inte extern kristall. Kan dock behövas om du t ex använder UART:n då den interna RC-oscillatorn inte är så exakt.

Postat: 28 juli 2008, 17:53:00
av Icecap
Renesas M16C är en bra processor, mycket periferfunktioner t.ex. ett antal timer/counter (5 st typ A, 4 st typ B) och en massa annat. HEW med C-kompiler är gratis till 64KB källkod och dit har jag inte kommit än ens med mitt största projekt (som är stort!).

Postat: 28 juli 2008, 18:10:07
av TheCalle
64 kb är mer än nog för mitt projekt, skulle tro att 16 kb är mer än nog :)
Dock så känns ATmega324P som lite mer passande än M16C, men tack för tippset ändå. Hade inte ens hört talas om den tidigare :)

Är det något speciellt man behöver tänka på när man programmerar en AVR, eller är det bara att slänga in lite initieringsrutiner, en oöndlighets loopande mainfunktion och lite funktioner som den anropar?

När man sätter på strömmen till en programmerad AVR, startar den mainloopen av sig själv utan att man behöver göra något speciellt eller ska man skriva någon speciel rutin för att starta upp den? Antar att det behöver ligga på en viss plats i minnet men ordnar komilatorn det av sig själv eller?

(ni får gärna komma med fler tips på mikroprocessorer även fast atmegan just nu är den som ligger bäst till)

Postat: 28 juli 2008, 18:15:59
av marcla
Prossesorn startar automatiskt ditt program...
Det ända du behöver göra är att configurera Kristal och dy l.

Postat: 28 juli 2008, 18:16:36
av limpan4all
Jag föreslår ännu mera overkill.
LPC2368.
Den är billigare (halva priset) än MEGA128X varianterna och har mer av i stort sett allt.

Postat: 28 juli 2008, 18:24:52
av Micke_s
STM32 och ARM sköter du val av processorkälla i koden jfm PIC och AVR, mycket smidigare än någon config. Bättre PLL:er i STM32 jfm PIC/AVR.

Prisbilden
Atmega1281 (ATMEGA1281-16MU-ND)
9.49$ för 100st

STM32 (STM32F101RBT6)
5.65$ för 100st

Så STM32 är både billigare och kraftigare....

Om du bara ska debugga upp till 32k så finns "RLink Debugger/Programmer, STD" 1190kr exkl på lawicel, debuggar upp till 32k och programmerar hela chip.

Postat: 28 juli 2008, 18:29:53
av TheCalle
Jag tycker iof om overkill (bara att säga overkill är ju skoj!) men LPC2368 är nog lite i värsta laget, 70 mhz behöver jag absolut inte :shock:

Priset för en ATmega324P är under 5$ vilket är billigt nog, klart att billigare är bättre men det känns som om att ju mer overkill desto mer jobb med att få allt att fungera.

Val av processorkälla?

Tack för tippset ändå!

Postat: 28 juli 2008, 18:57:11
av björn
Håller med om att det kan vara väldigt onödigt att gå upp till mer avancerade uc även om dom är "billigare", oftast så är det mycket mer jobb med mjukvaran vilket gör att det inte är billigare i slutet ändå. En 8.bitars uc har (oftast) färre register och mindre komplicerad uppbyggnad vilket gör att utvecklingstiden är snabbare sålänge man inte behöver mer "fancy" funktioner (då går det enklare med en rejälare pjäs iom att dom har mer inbyggt).

Rätt processor till rätt jobb.

Själv vet jaginte om jag har några reckomendationer efter andras förslag men ATMega16 eller ATMega32 verkar väl ganska lagom.
Eller så går du vidare på din inslagna linje sedan tidigare och tittar på TI MSP430 serien (fortfarande lite overkill verkar det som men billiga och bra(?)), som det även finns GCC för C-kompilering till :)

EDIT: TI har dessutom ganska bra dokumentation om olika programmerare som man kan bygga själv, tex via serieport och BSL.