Hur använder man externt minne till en microcontroller?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
hyperion
Inlägg: 1309
Blev medlem: 8 maj 2009, 21:19:20
Ort: Nynäshamn

Re: Hur använder man externt minne till en microcontroller?

Inlägg av hyperion »

Jag har inte använt extern EEPROM tidigare och undrar om man kan skriva in data till det externa minnet i samband med att man programmerar PIC:en?

I så fall, hur?

Jag vill lägga in en hel del bitmappar som PIC:en sedan skall läsa in och visa på en större grafisk display.

/Danne
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 47727
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hur använder man externt minne till en microcontroller?

Inlägg av TomasL »

Nej, det är omöjligt.
Användarvisningsbild
hyperion
Inlägg: 1309
Blev medlem: 8 maj 2009, 21:19:20
Ort: Nynäshamn

Re: Hur använder man externt minne till en microcontroller?

Inlägg av hyperion »

Attans :( Nåväl, inte hela världen. Får ladda in data via USB istället.

Tack för blixtsnabbt svar.
Användarvisningsbild
prototypen
Inlägg: 11108
Blev medlem: 6 augusti 2006, 13:25:04
Ort: umeå

Re: Hur använder man externt minne till en microcontroller?

Inlägg av prototypen »

Lite otydligt, ska du bara programmera så kan du väl göra det i en fristående programmerare? Att bara läsa så finns det seriella minnen
Protte
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: Hur använder man externt minne till en microcontroller?

Inlägg av Micke_s »

För spi-flash/spi-eeprom/i2c-eeprom så kan man använda buspirate externt t.ex.
Användarvisningsbild
hyperion
Inlägg: 1309
Blev medlem: 8 maj 2009, 21:19:20
Ort: Nynäshamn

Re: Hur använder man externt minne till en microcontroller?

Inlägg av hyperion »

Aaaarrrg, buspirate säger du. Tackar, ska kolla upp det. Ja alltså planen är att använda 24LC256 från Microchip som är ett i2c EEPROM på 256kbit för att lagra bitmapparna till det grafiska användargränssnittet. Dock kan det ju vara bra om man ganska enkelt kan uppdatera filerna i EEPROM så det kanske ändå blir enklast att skicka data till PIC:en via USB och låta PIC:en skriva in filerna till externa EEPROM-kretsarna.
Användarvisningsbild
Icecap
Inlägg: 26807
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Hur använder man externt minne till en microcontroller?

Inlägg av Icecap »

De "enklaste" bör väl vara att µC'n kan prata med EEPROM'et. Sedan kan man kommunicera med µC'n via t.ex. serieport och då kunde ge kommandon som skriver i EEPROM'en. Att skulle kunde bygla loss EEPROM'et för att använda ytterligare en programmeringsenhet för att skriva i EEPROM känns inte helt friskt.

Men jag undrar lite: "bitmapparna till det grafiska användargränssnittet"
Har du tänkt igenom detta ordentligt? Inte att det är fel med grafisk användargränssnitt men vilken typ?
Är det en massa bilder bara eller ska det skrivas värden i dom?

Om det ska skrivas värden i dom (bild på något med ett värde i bilden, kan t.ex. vara en panna med temperaturen i) blir det inte helt enkelt att skapa det hela på ett rätt sätt, ska det se hyfsat ut vid uppdateringen ska bilden laddas in, texten skriva i och sedan ska det hela skickas till displayen. Detta kräver att det finns RAM (arbetsminne) nog för att lösa detta.

Har du en strategi för att spara grafiken för varje bild samt vilka värden som ska skrivas ut och var de ska skrivas ut?
Användarvisningsbild
hyperion
Inlägg: 1309
Blev medlem: 8 maj 2009, 21:19:20
Ort: Nynäshamn

Re: Hur använder man externt minne till en microcontroller?

Inlägg av hyperion »

Planen är att lagra in både "bilder" och font som bitmap data. Det skall inte skrivas in värden i bitmap filerna således. Programmet läser in och skickar bitmap data till displayen utan att modifiera bitmap datan. Gjorde ett test nyligen med en grafisk VFD med lägre upplösning och det gick väldigt bra tyckte jag. Dock behöver jag högre upplösning och då även mer minne.

Detta är en liten videosnutt av det testet:

Anledningen till att jag vill försöka göra en egen "display controller" är för att jag behöver kunna scrolla text snyggt och mjukt en pixel åt gången, och alla displayer jag testat (som alla har inbyggd funktion för scroll) har inte gått att avbryta scrollfunktionen på. Så om jag vill ha text som scrollar på nedre delen av displayen men samtidigt kunna uppdatera andra delar av displayen i så nära real-time som möjligt, så kan jag inte använda inbyggda scrollfunktionen.

Bra information och tips, tack. Är n00b så vi får se hur det här går men jag tror det ska gå. Håller med om att det var en konstig tanke att programmera EEPROM minnet separat. Är så insnöad i testningsfasen nu så jag tänkte det vore smidigt att i ett steg programmera både PIC:en och EEPROM minnet. Men sen när allt är klart vill jag ju såklart kunna uppdatera data i EEPROM utan att behöva programmera om PIC:en så antingen seriellt eller USB till datorn och ett enkelt VB program blir nog lösningen på detta för min del.
Användarvisningsbild
MiaM
Inlägg: 13730
Blev medlem: 6 maj 2009, 22:19:19

Re: Hur använder man externt minne till en microcontroller?

Inlägg av MiaM »

Om man vill kunna programmera ett externt eeprom och bara har anslutningar för att in-circuit-programmera mikrokontrollern så kan man gå omvägen att först programmera in ett specialprogram i mikrokontrollern som bara programmerar eepromet, starta mikrokontrollern och låta den "göra sin grej" = programmera eeprom'et, och när den är klar så lägger man in det program man egentligen tänkt ha i mikrokontrollern.

Det funkar väl inte så smidigt att göra så om det är mycket data som ska in i eeprom'et, men det funkar vettigt om det bara är nån slags initialisering/"nollställning" av eeprom'et man vill göra och koden för att göra det inte ryms ihop med det 'riktiga' programmet i mikrokontrollern.


***************************


En sak som kan röra till en nybörjares förståelse för bussar o.s.v. är också att med "större" processorer (som t.ex. i en PC) och ett tillräckligt omfattande operativsystem så kan man göra så att sådant som egentligen inte är minne ändå verkar vara minne. Minnesmappade filer t.ex. ser ut som ram-minne, och där ser operativsystemet till att flytta data mellan ram-minnet och hårddisken så att programmet 'tror' att det finns lika mycket ram-minne som filens storlek
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4767
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Hur använder man externt minne till en microcontroller?

Inlägg av Swech »

256 kbit minne är ju inte mer än 32 kbyte.
Den platsen bör du ha i PIC redan om du har en lite biffigare modell
Du kan lagra dina data direkt i Koden så att säga

Swech
Användarvisningsbild
hyperion
Inlägg: 1309
Blev medlem: 8 maj 2009, 21:19:20
Ort: Nynäshamn

Re: Hur använder man externt minne till en microcontroller?

Inlägg av hyperion »

Ja vi får se hur jag gör. Ska läsa på lite mer och testa mig fram tänkte jag. Vet inte ens hur mycket minne jag tillslut behöver då jag inte skapat grafiken än. Tror dock att det kommer behövas mer än 32kbyte vilket innebär flera minneskretsar, eller en större.

Tack för alla tips.
Användarvisningsbild
Icecap
Inlägg: 26807
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Hur använder man externt minne till en microcontroller?

Inlägg av Icecap »

Det finns seriella flash-minnen med 4MB i en lilla 8-pinnars krets.
Skriv svar