Vart ska jag börja? (Assembler programmering)

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Inlägg av Korken »

Det är "inställningar" som gör att du inte kan läsa/ändra programmet som är inlagt i µCn.
Man måste radera allt på den för att kunna göra något på den igen och det finns för att folk inte ska kunna sno någon annans kod, mer eller midre.
Alltså, har du tex en boot loader så kan du inte fixa µCn med den, du måste ha en "kraftigare" programmerare för att fixa det.

//Emil

Edit: La till lite
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Nu är här nog lite sammanblandningar på gång...

Det finns "code protection" som används för att skydda programmet. På en PIC hindrar dessa inte att man totalraderar med en vanlig enkel flashare som t.ex. WISP.

Det finns även bitar som kan göra det svårt att flasha om. På en PIC can man konfigurera MCLR/Vpp som ingång och då krävs det att man applicerar Vpp före Vdd så att processorn känner av att den skall flashas om innan den ställer denna pinne som vanlig ingång.

På AVR däremot finns det bitar söm gör att man måste ha en parallellflashare för att kunna flasha om. Antingen en riktig, eller en klabbkoppling för att kunna ge ett raderingskommando.

Problemet är mycket mindre på PIC, eftersom bl.a. WISP648 har inbyggt stöd för det som krävs. Det går även med lite trick att göra det på annat sätt. Man lägger helt enkelt på Vpp i förväg från en extern strömkälla så brukar det kunna fungera, Det handlar då om 1 pinne som det skall trixas med. AVR's parallellprogrammering kräver att man trixar med många pinnar.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Och anledningen till att det skiljer sig mellan AVR och PIC på just denna punkt,
är att AVR'en måste ha en oscillator igång under ICSP. PIC'arna är självklockade
via ICSP pinnarna och oscillatorn är stoppad under programmeringen.

Om man då t.ex har en AVR som man normalt kör med intern osciallator
(d.v.s att det saknas extern kristall) och man råkar av misstag ställa om den
till "extern-oscillator", så har man skägget i brevlådan. Kan man då inte
koppla in någon extern kristall, så får man gå via parr-programmering.

En PIC kan aldrig hamna i det läget som sagt, eftersom ingen oscillator
alls (varken intern eller med extern kristall) används under själva programmeringen.

Detta gör totalt sätt en PIC lite mer "fool-proof".

Med reservation för att jag har missupfattat "AVR-problemet" något...
Mindmapper
Inlägg: 7122
Blev medlem: 31 augusti 2006, 16:42:43
Ort: Jamtland

Inlägg av Mindmapper »

Köper du en STK500 så har du en parallellprogramerare och behöver aldrig stå med skägget i brevlådan. Låsbitarna är ett antal som man lär sig ganska fort när man studerar AVR studio. Dessa samt övriga "fuses" finns på en flik i AVR studio. Alla MCU'er har val som måste göras så detta är inte något unikt för AVR. De är beskrivna i manualerna för varje mcu dessutom. Atmel har en hel del annan bra information på sin AVR sida.

Det finns en hel del trådar här också där mycket är sagt om AVR/PIC.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Inlägg av Swech »

Problemet med AVR´s FUSE bitar är klart överdrivet...
javisst det kan hända, men det händer sällan.
AVR studio varnar om man försöker sätta bitarna så att detta kan inträffa.

Har kört AVR nu i många år och vi förbrukar > 10.000 / år
Det har ALDRIG hänt i vår produktion att någon fusebit har
blivit felaktig. Det är ju naturligtvis annorlunda om man
precis startar med en ny processorfamilj eller byter typ.
det kan gå snett... men det är iallafall inget problem såpass
stort att man bör avstå från AVR.

men.. debatten tenderar lätt att bli överhettad....
Man minns tillbaks till sin gamla Spectrum 48 VS Commodore 64
och därefter var det Atari - Amiga... o.s.v....

Swech
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Det har ALDRIG hänt i vår produktion att någon fusebit har blivit felaktig.

Nej, det är ju ganska självklart, jag utgår från att eran produktion kör
med avlusade och kontrollerade HEX filer. :-) :-)

Och jag tror inte heller att detta är någon anledning att avstå från AVR.

Jag försökte bara ge den tekniska bakgrunden till vad som *kan* hända
om man strular runt med AVR fuses. Och lösningen är naturligtvis att
vara speciellt noggran med just fusarna för oscillator val... :-)

Eller var det så att jag hade fel (d.v.s rent tekniskt) ?
I så fall ber jag om ursäkt så klart!
EBD
Inlägg: 136
Blev medlem: 10 maj 2006, 18:50:48
Ort: Sundsvall

Inlägg av EBD »

AVR går utmärkt att programmera via ICSP utan oscillator. Däremot finns det åtminstone en fusebit som man ska vara försiktig med på vissa modeller med färre ben, och det är den som avaktiverar RESET-pinnen och gör den till en vanlig I/O, då måste man använda en annan metod för att programmera om den.
Mindmapper
Inlägg: 7122
Blev medlem: 31 augusti 2006, 16:42:43
Ort: Jamtland

Inlägg av Mindmapper »

Ja visst går det utmärkt att programmera med inbyggda oscillatorn. Problemet sitter i att låsa upp när man programmerat fel och låst. Tycker sodjans beskrivning ser bra ut, men jag är inte helt säker. Jag har inte trängt så djupt in i problematiken eftersom jag har tillgång till STK500 men mest använder AVRISP mk2.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Se "Final things To Remember" nästan längst ner på denna sida:
http://electrons.psychogenic.com/module ... OGuide.php
Där räknas upp minst tre sätt att blokera ISP (In System Programming) samt
att det finns ytterligare fuses om inte går att ändra alls via ISP.

Jag kan dock ha missat på just oscillator fuses, men jag är inte säker...

> Ja visst går det utmärkt att programmera med inbyggda oscillatorn.

Är det inte ett krav att just den interna oscillatorn också var vald via fuses vid
föregående programmering? Som jag förstår det så blir det problem om
man råkar ändra till extern oscillator/kristall. Men jag kan ha missförstått
det. Kanske att den switchar automatiskt till intern oscillator...
EBD
Inlägg: 136
Blev medlem: 10 maj 2006, 18:50:48
Ort: Sundsvall

Inlägg av EBD »

Det jag menade är att det går bra att programmera med ISP även om oscillator fuses är felaktigt satta. Programmeraren tillhandahåller klockan själv via SCK-pinnen om jag inte har helt fel.
Mindmapper
Inlägg: 7122
Blev medlem: 31 augusti 2006, 16:42:43
Ort: Jamtland

Inlägg av Mindmapper »

Jag letade lite info idag men hittade inte det jag egentligen ville veta. Men tydligen är det inga problem med de nya AVR-kretsarna där är det bara SPIEN och Reset fusebit som låser för programmering via ISP. Däremot de gamla 90s-kretsarna som inte hade inbyggd oscillator gick det inte få kontakt med kretsen via ISP om klockan var fel satt.
SmourF
Inlägg: 268
Blev medlem: 13 april 2004, 15:33:58
Ort: Jönköping
Kontakt:

Inlägg av SmourF »

jag tror jag förstår iaf, hehe, tackar för förklaringen :)

nu e de dags o sova, hade gott killar

MVH SmourF
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Inlägg av jesse »

Enligt min lärare så ska man försöka lära sig AVR, varför har jag inte riktigt förstått...
Om du ska köra AVR och vill lära dig assembler så finns en bra bok på svenska för nybörjare - den förklarar också microcontrollern i detalj.

Per Foyer - Mikroprocessorteknik

EDIT: Boken är kurslitteratur på högskolan.
Senast redigerad av jesse 10 april 2008, 18:12:02, redigerad totalt 1 gång.
Snouser
Inlägg: 107
Blev medlem: 15 november 2006, 22:07:55
Ort: Göteborg

Inlägg av Snouser »

Tack för alla svar, snart är jag nog expert på området :p

Någon som vet om jag kan använda sig utav AVR kittet som någon länkade till och programmera den så att den fungerar med denna RFID läsare?

http://www.elfa.se/elfa-bin/dyndok.pl?dok=12305.htm

Tack..
Snouser
Inlägg: 107
Blev medlem: 15 november 2006, 22:07:55
Ort: Göteborg

Inlägg av Snouser »

jesse skrev:
Enligt min lärare så ska man försöka lära sig AVR, varför har jag inte riktigt förstått...
Om du ska köra AVR och vill lära dig assembler så finns en bra bok på svenska för nybörjare - den förklarar också microcontrollern i detalj.

Per Foyer - Mikroprocessorteknik
Trevlig bok, ska se om jag kan få min skola och köpa en ett par sådana böcket.
Skriv svar