Epromemulator

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
AndersE
Inlägg: 54
Blev medlem: 27 september 2005, 16:07:17
Ort: Stockholm
Kontakt:

Epromemulator

Inlägg av AndersE »

Jag kör 8051 med externt kodminne i mina (större) projekt och att bränna en flash varje gång man ska testköra är jobbigt. Börjar dessutom bli mycket trött på alla fel som yttrar sig i projekten som visar sig vara på grund min befintliga emulator.

Sedan dök det upp en diskussion om Dual-port SRAM i en annan tråd, och jag har fått upp intresset igen för dem. (Om det visar sig att de går att få tag på till "rimligt" pris).

Har tänkt på det tidigare, och har en "nästan" färdig design.
Den går ut på att man kopplar en 89C52 att använda ena sidan av ett 64kB DPSRAM som externt minne, och tar HEX-data från PCn på serieporten.
All kod är i princip färdig, så jag behöver bara hitta ett lämpligt minne och göra layouten.
AndersE
Inlägg: 54
Blev medlem: 27 september 2005, 16:07:17
Ort: Stockholm
Kontakt:

Inlägg av AndersE »

Efter en snabbkoll på Farnell tappade jag precis motivationen... ...igen....

Ett 64k x8 DPSRAM kostar 750:- +M

:evil:
Användarvisningsbild
Hedis
Inlägg: 2493
Blev medlem: 8 december 2003, 15:10:44
Ort: Vänersborg
Kontakt:

Inlägg av Hedis »

Ursch :(

Om man kör typ 8st lösa flash/minnen som man sedan switchar mellan så fort som man hunnit lägga upp det man vill i minnet.

Ungefär som Fagge tänkte med skärmen. Minnen är ju både stora och billiga.
Blir lite mer kretsar på kortet bara.
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Det fungerar inte med kodminne! Anledningen är att man inte kan veta vad som händer härnäst (hopp osv) så byter man koden måste man resetta. Därför kan man fint klara sig med vanlig SRAM som man byter adress/data med en multiplexer. Finns färdigt i form av Dataman S4 fast liiiite dyr.....

DP-RAM-lösningen är bra...om man ska ändra i tabeller osv, alltså ej-programminne. Visst kan man dela programminne med tabell men om man enbart ändrar tabell osv är DP-RAM grejen, då kan man göra det "on the fly".

Om man i alla fall har tillgång till "hela" systemet kan man likaväl lägga in mjukvara som medger att man kan ändra i tabeller via en serieport eller dylikt, den serieport kan vara en extern (piggybag) vid brist eller en intern vid nog med resurser. Det kan medföra att man använder en extra pinne till att tillåta att det skrivs till minnet, denna extra pinne kan läggas i piggybagen om det behövs.

Det är även möjligt att synkronisera att man "låner" minnet lite snabbt mellan läsningar och skrivningar på samma sätt som beskrivit längst uppe, detta ger effekten av DP-RAM till en lägre kostnad men med mer komplicerat hårdvara.
Användarvisningsbild
Hedis
Inlägg: 2493
Blev medlem: 8 december 2003, 15:10:44
Ort: Vänersborg
Kontakt:

Inlägg av Hedis »

För min del så skall jag inte ändra i programkod, enbart tabeller.
Så jag klarar mig utan reset mellan varje ändring.

En fin funktion som jag sett på någon emulator för mappningsbruk är en "trace" funktion.
Man läser alltså av adress-bussen för att se vart i epromet som µC i styrboxen är och läser och på så sätt se vilken adress som skall användas för att påverka just det värdet som tex. bränslet baseras på i nuläget.
Det borde gå ganska enkelt att lösa. (iaf. hårdvarumässigt, datorns mjukvarubit kan jag tyvärr ingenting om)

Som jag ser det så är DP-RAM eller flera parallella minnen med separerade CS enda alternativet för mitt bruk.
Att ha två minnen som man skiftar mellan skulle ju kunna fungera.
Frågan är då vad man har för att skifta adress och databussarna med.
24 reläer skulle ju fungera... (ironi :wink:)

Edit: Efter lite sökning med Google.....
Hit-Me Prisförslag någon ? :lol:
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Man använder 74244'or och 74245'or till att switcha adress- och databussar. (eller LS- eller vilken version man vill använda).

Att kunna trace är inte så svårt men det blir ju en hyvens massa data man ska hålla reda på, man blir nog tvunget att ha en filtreringsfunktion där man kan styra att "fånga alla läsninger mellan adress x och adress y" och sedan ha variabel x och y, då skulle man snabbt kunna hitta rätt adressområde men initialt blir det grymma mängder data.
Joe
Inlägg: 1809
Blev medlem: 3 mars 2006, 17:00:50
Ort: Södermanland

Re: Epromemulator

Inlägg av Joe »

Vilken härligt gammal tråd!

Nån som har ett bra förslag för att billigt emulera ett 2732 eprom online? dvs med direktändring.
Känns onödigt med en massa 245'or, nån 32'a osv..

Funderade på en uC men då klarar man nog inte 450ns acess time och DPR är inte billiga..
FPGA, PLD, osv då? Skulle de klara av acess tiden? Kanske en sån där propeller?
Har dessa TRI-state portar eller åker man på en sån extra?

Kan skicka en HALT signal till befintliga processorn som troligtvis är en 6802 på 1MHz för att låta "minnet" starta upp först.

Är även önskvärt med en USB anslutning då dagens laptop's inte ens har en serieport..
Senast redigerad av Joe 30 november 2009, 22:16:28, redigerad totalt 1 gång.
nifelheim
Den första
Inlägg: 2489
Blev medlem: 27 mars 2008, 22:31:16
Ort: stockholm

Re: Epromemulator

Inlägg av nifelheim »

hitta en till

http://cgi.ebay.co.uk/Dataman-S4-Progra ... 51006r5435

den gick ju för dryga femhundringen, men du missade den med några dagar :wink:
Användarvisningsbild
MiaM
Inlägg: 12938
Blev medlem: 6 maj 2009, 22:19:19

Re: Epromemulator

Inlägg av MiaM »

Om man håller sig till att "dubbelport"-funktion bara behöver funka ihop med vissa förbestämda mikroprocessorer/mikrokontrollers så skulle man kunna nyttja sig av processorns klocksignal och ge processorn access till minnet när processorn verkligen accessar minnet, och annars låta någon form av emuleringskontroll ha tillgång till minnet.

Rakt av ur minnet minns jag att t.ex. 6502 är så simpel att man kan bygga ett dubbelprocessorsystem genom att invertera klockan till ena processorn (ungefär, iaf, och så tillkommer att man på nåt sätt måste kunna köra separata program i varje processor, till exempel genom att klockan går in på en adresspinne på eprom'et eller genom att processorn kan läsa av klockans tillstånd via en inport och koden därmed kan avgöra vilken av de två processorer den körs i, eller hur man nu vill göra). Med just 6502-serien så går det alltså bra att låta något annat accessa minnet på ena halvan av en klockcykel. (Jämför med att C64, VIC-20 o.s.v. låter videokretsen accessa ram-minnet under denna halva (på C64 så "stjäls" även några cykler från processorns ordinarie 'halva', det är också därför bilden släcks när C64 pratar med t.ex. bandspelaren).

Hur det ligger till med 8051 har jag däremot tyvärr inte en aning om. Finns det inte nån halt-pinne som man eventuellt kan dra i innan man från "nåt annat" accessar minnet? Det förutsätter förstås att man kan acceptera att processorn kör lite långsammare när man accessar minnet...
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Epromemulator

Inlägg av Icecap »

Med DP-RAM är det bara samtidig skrivning som inte går, man kan skriva i ena porten och andra porten kan läsa utan problem, det är dock lite intressant hur det fungerar med ett halvt program i...

Därför resetter man målprocessorn under uppdateringen.
Joe
Inlägg: 1809
Blev medlem: 3 mars 2006, 17:00:50
Ort: Södermanland

Re: Epromemulator

Inlägg av Joe »

Har funderat vidare, men man kommer inte undan någon "skiljevägg".
Planerar på att använda ett statisk ram så man inte behöver skriva till minnet vid varje uppstart.
Tänkte mig 74541 istället för 74244, någon 74245 behöver jag inte då kommunikationen är enkelriktade; Adress till minne och Output från minnet.

Tänkte använda OE som trigger för att synka in den yttre skrivningen.

Men 74541 hade ingen vidare liten footprint, någon som har förslag på något? Helst med galvanisk avskiljning..
7416240 är en bit på vägen men ändå "stor"
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Epromemulator

Inlägg av Icecap »

Öhhh... "Planerar på att använda ett statisk ram så man inte behöver skriva till minnet vid varje uppstart."

Du menar att du kommer att ha batteri back-up alltså?
Joe
Inlägg: 1809
Blev medlem: 3 mars 2006, 17:00:50
Ort: Södermanland

Re: Epromemulator

Inlägg av Joe »

Nix, ett F RAM eller FeRam.
Då slipper jag batterier!
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Epromemulator

Inlägg av Icecap »

Ah... men då menar du en "non-volatile" SRAM - vilket i övrigt är en bra lösning.
SRAM är inte non-volatile.
Joe
Inlägg: 1809
Blev medlem: 3 mars 2006, 17:00:50
Ort: Södermanland

Re: Epromemulator

Inlägg av Joe »

Jo skulle nog ha varit tydligare och skrivit icke-flyktigt minne..

Tillbaka till frågan, ingen som vet av en line driver / buffer med liten footprint? eller annan krets som gör samma jobb.
Skriv svar