Lagra program externt (PIC)
Lagra program externt (PIC)
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?
Är det i så fall komplicerat att genomföra?
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 ( ) skriva en rutin som hämtar och kör att...
//Rille
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 ( ) skriva en rutin som hämtar och kör att...
//Rille
-
- Inlägg: 2360
- Blev medlem: 16 september 2003, 17:18:13
- Ort: Dubai, United Arab Emirates
- Kontakt:
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?)
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?)
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?
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?
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
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
-
- Inlägg: 2360
- Blev medlem: 16 september 2003, 17:18:13
- Ort: Dubai, United Arab Emirates
- Kontakt:
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.
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.
Jag har en Multiprogrammerare
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...
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...
-
- Inlägg: 2360
- Blev medlem: 16 september 2003, 17:18:13
- Ort: Dubai, United Arab Emirates
- Kontakt:
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.
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.