Lagra program externt (PIC)

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Eelector
EF Sponsor
Inlägg: 656
Blev medlem: 3 juni 2003, 23:58:52
Ort: Trollhättan
Kontakt:

Lagra program externt (PIC)

Inlägg av Eelector »

Går det att låta pic-processorer hämta och köra sitt program från ett externt 24Cxxx minne?
Är det i så fall komplicerat att genomföra?
Användarvisningsbild
rickeboy
Inlägg: 678
Blev medlem: 13 augusti 2003, 09:12:17
Ort: Göteborg / Karlskrona
Kontakt:

Inlägg av rickeboy »

Ja det borde vara möjligt att göra... du skulle dock behöva skriva ett program i PICen som då hämtar grejorna från minnet... i skolan har jag en kurs som dem kallar Microprocessor teknik... där har vi en utbildnings"dator" med en 68HC11 som kör från ett externt minne...

Jag är inte helt hundra på detta och jag betvivlar det till 10000 men det kanske finns ngn möjligthet att göra så att PICen tror att det är sina egna adresser... PICen har ju odefinierade adresser som man kanske skulle kunna använda... jag vet dock INGET om att och det är bara en MKT VILD gissning...

I vilket fall som helst så ska det gå att köra ett "externt program"...
Helt enkelt ( :wink: ) skriva en rutin som hämtar och kör att...


//Rille
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Med dom vanliga PIC-typerna går det inte att göra. Men dte finns ju en del nya och intressanta varianter som det skulle kunna vara värt att kolla upp.

Köra den den direkt från ett seriellt eeprom tror jag definitivt är fullständigt uteslutet. Man skulle dock kunna tänka sig nån modell med en "boot-loader" där man i från mjukvara i PIC'en läser av eepromet och programmerar om delar av programminnet och sedan köra det. (Eller är det bara Atmel/AVR som supportar det?)
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Man skulle oxo kunna tänka sig att ha en p-kod-interpretator i det vanliga programminnet i PIC'en som hämtar vilka instruktioner som ska utföras ifrån det seriella eepromet.

Det blir nästan så som BasicStamp-prylarna fungerar.
Eelector
EF Sponsor
Inlägg: 656
Blev medlem: 3 juni 2003, 23:58:52
Ort: Trollhättan
Kontakt:

Inlägg av Eelector »

Okej, det är nog lite väl komplicerat misstänker jag.
Som total novis på PIC programmering så tänkte jag ta mig vatten över huvudet och försöka göra en klon av:
http://www.bmumford.com/photo/camctlr.html

Eftersom det blir rätt många io pinnar så tänkte jag fläska på med en 16F877, och då vore det smidigt med en ett externt "firmware"- chip att sätta direkt i min "Multiprogrammerare".

Vilken PIC skulle ni rekomendera till ett sådant projekt?
Önskemål:
- Kunna klara av att ställa tider med minst 0.1ms precision.
- 8 out tilll LCD (ev. 4 om det kniper)
- 1 out till kamera
- 2 out till blixtar
- 2 in för olika utbytbara triggers (ljud, rörelse m.m)
- 5-6 in för knappar
- Så strömsnål som möjligt.

Finns det något som passar? :)
Användarvisningsbild
rickeboy
Inlägg: 678
Blev medlem: 13 augusti 2003, 09:12:17
Ort: Göteborg / Karlskrona
Kontakt:

Inlägg av rickeboy »

Låter helt klart som ett kul projekt... antar att du vill ge dig på att för att din program kod inte får plats i PICen eller?

Hmm... man kanske skulle kunna ta in en del som matseng säger och köra den sen tar man in nästa del osv... hade inte blivit så effektivt dock...

EDIT: Okej du lyckades svara innan snabbt... hehe... kan nämna att du kommer behöva minst 5 till LCDn... obereonde... och minst 10 om du kör med 8:a bitars mode...

//Rille
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Med 8 K programminne och 33 I/O-portar behöver man nog inte oroa sig för att varesig minne eller portar tar slut i ditt projekt. Vad du riskerar är snarare att pinnarna på chippet nöts ut av allt flyttande mellan programmeraren och det kort du håller på att utveckla på.

6 pinnar till LCD
1 pinne för att läsa av 6 st switchar (använder samma pinnar som LCD'n)
3 för kamera och blixtar
2 för triggingångar
=11 pinnar totalt.

Min favvokrets Atmel Mega8, har 23 I/O-pinnar, 8 K programminne, 3 ggr så mycket RAM och ryms i en 28 pinnas smalkapsel istället för en 40 pinnars fullstorlek. Men den största fördelen är att (alla) AVR-kretsar kan programmeras om enkelt medans den sitter kvar i konstruktionen (In Circuit Programming) via en 6 pinnas liten kontakt. Det är extremt smidigt. När man väl använd ICP en gång så ruttnar man av bara tanken på att hålla på och fluppa kresarna in och ut ut socklarna 100 ggr i timman.

Edit: Det ska erkännas att 877'an supportar programmering när den sitter i kortet den oxo, bara man har rätt programmerare.
Senast redigerad av matseng 13 december 2003, 23:36:33, redigerad totalt 1 gång.
Användarvisningsbild
mrmike
Inlägg: 301
Blev medlem: 29 oktober 2003, 20:40:12

Inlägg av mrmike »

Eller är det bara Atmel/AVR som supportar det?
Bootloader går att använda med vissa PICar

hmm, kanske ska gå över till avr...suck
Användarvisningsbild
rickeboy
Inlägg: 678
Blev medlem: 13 augusti 2003, 09:12:17
Ort: Göteborg / Karlskrona
Kontakt:

Inlägg av rickeboy »

6 pinnar till LCDn om han vill kunna läsa från den Ja... annars är det bara att sätta R/W pinnen för skrivning hela tiden... och då har han 5 pinnar han behöver... 4:a bitars data och Enable (puls eller vad man ska kalla den)...

//Rille
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Nej, det är fel fel fel. Det går åt 6 pinnar om du INTE vill läsa, 7 om du VILL läsa från LCD'n.

D4,D5,D6,D7, E och RS. Utan RS kan man inte styra displayen mellan data/tecken-mode och kommando-mode.
Användarvisningsbild
rickeboy
Inlägg: 678
Blev medlem: 13 augusti 2003, 09:12:17
Ort: Göteborg / Karlskrona
Kontakt:

Inlägg av rickeboy »

Damn... det stämmer ju faktiskt... :doh:

//Rille
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Fast jag har ju en tanke här i LCD-forumet om att kombinera E och RS på samma pinne. Om det fungerar som jag hoppas så kan man klara sig med 5 pinnar.

Men med ett enkelt shiftregister kan man klara sig med 2 pinnar ut från processorn.... Men det är fusk.
Användarvisningsbild
rickeboy
Inlägg: 678
Blev medlem: 13 augusti 2003, 09:12:17
Ort: Göteborg / Karlskrona
Kontakt:

Inlägg av rickeboy »

Jo vi får väl se hur det går :)

Jo jag har också sett den där 2 pins versionen... fusk.. hehe... tja... beror på hur man ser det... om man har en application som "kräver" att så är det väl ganska lungt tycker jag nog...

//Rille
Eelector
EF Sponsor
Inlägg: 656
Blev medlem: 3 juni 2003, 23:58:52
Ort: Trollhättan
Kontakt:

Inlägg av Eelector »

Jag har en Multiprogrammerare
Bild
som enligt uppgift skall klara att programmera 877:an i ICSP
Den har en kontakt med följande pinnar:

1. MCLR (fyrkant)
2. +5V, används enbart för själva chipet
3. GND
4. Data
5. Clock
6. Oscillator, använd ej för normal ICSP användning


Hur är 877:an när det gäller strömförbrukning?
Jag skulle vilja driva den på två seriekopplade 1.2V NiMH R6.
(om den nu accepterar så låg driftspänning)

Vill bara undersöka det finns andra pic:ar i microchips sortiment som är mer lämpade, innan jag lägger en samples-beställning :)

Tack för alla svar!

Edit: Fast det är klart, Atmel har väl också samples... :D
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Med din multiprogrammerare behöver du inte oroa dig för att det blir osmidigt att programmera den iallafall. Vilket borde innebära att det seriella eeprommet är ganska onödigt.

Med 16LF877 så kan du köra den ner till två volt. Fast LCD-displayen vill förmodligen ha 5 volt iallafall så du måste hur som helst förmodligen ha en step-up switchregulator som tar upp dina 2.4 volt till 5 volt.

Enligt databladet drar den typ 0.6 mA vid 3 volt och 4 Mhz, standbyströmmen är < 1 uA.
Skriv svar