Hur använder man externt minne till en microcontroller?
Re: Hur använder man externt minne till en microcontroller?
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
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
Re: Hur använder man externt minne till en microcontroller?
Attans
Nåväl, inte hela världen. Får ladda in data via USB istället.
Tack för blixtsnabbt svar.
Tack för blixtsnabbt svar.
- prototypen
- Inlägg: 11108
- Blev medlem: 6 augusti 2006, 13:25:04
- Ort: umeå
Re: Hur använder man externt minne till en microcontroller?
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
Protte
Re: Hur använder man externt minne till en microcontroller?
För spi-flash/spi-eeprom/i2c-eeprom så kan man använda buspirate externt t.ex.
Re: Hur använder man externt minne till en microcontroller?
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.
Re: Hur använder man externt minne till en microcontroller?
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?
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?
Re: Hur använder man externt minne till en microcontroller?
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.
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.
Re: Hur använder man externt minne till en microcontroller?
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
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
- 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?
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
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
Re: Hur använder man externt minne till en microcontroller?
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.
Tack för alla tips.
Re: Hur använder man externt minne till en microcontroller?
Det finns seriella flash-minnen med 4MB i en lilla 8-pinnars krets.
