Vilka ingångar är man egentligen tvungen att styra på SRAM?
Re: Vilka ingångar är man egentligen tvungen att styra på SR
Bifogar nuvarande schema.
Om man vill vara säker på att /SWITCH ligger hög vid start, för att skilja SMI från bussen, så kan man väl lägga en pull-up resistor på RC7. Vid reset är ju RC7 ställd till ingång, jag tänker 10kOhm precis som _MCLR använder... Med utgångsläget öppen switch så har man iaf skyddat SMI:n.
Om man är i ett läge där man programmerat kassetten innan och sedan pluggar i den i spelet så har man, i kod-körningstid räknat, som kortast 1,3ms på sig innan konsolen läser minnet och kollar efter $55 på $0800. Jag har inte räknat med att hinna det så antingen får man hålla reset någon sekund, eller hur lång tid det nu tar, eller resetta på nytt efter att kassetten monterats.
Är det någon som har koll på hur lång tid det brukar ta innan en PIC kommer igång, det beror väl på oscillator och dylikt också? Läste att man kan starta på intern klockning och avvakta att den externa kommer igång men det kanske ändå blir svårt att hinna? Inte för att det skulle vara panik om man får resetta en gång extra.
TomasL:
Ja, jag hade tänkt lägga alla signaler till SRAM:et från PIC med hög impedans om inte programmering sker eftersom den funktionen finns så borde man väl inte behöva en switch-uppättning till? Kanske man ska vara noga med att använda Brown Out Detection (BOD) så att den resettar och ändrar I/O till ingångar när spänningen sjunker.
Om man vill vara säker på att /SWITCH ligger hög vid start, för att skilja SMI från bussen, så kan man väl lägga en pull-up resistor på RC7. Vid reset är ju RC7 ställd till ingång, jag tänker 10kOhm precis som _MCLR använder... Med utgångsläget öppen switch så har man iaf skyddat SMI:n.
Om man är i ett läge där man programmerat kassetten innan och sedan pluggar i den i spelet så har man, i kod-körningstid räknat, som kortast 1,3ms på sig innan konsolen läser minnet och kollar efter $55 på $0800. Jag har inte räknat med att hinna det så antingen får man hålla reset någon sekund, eller hur lång tid det nu tar, eller resetta på nytt efter att kassetten monterats.
Är det någon som har koll på hur lång tid det brukar ta innan en PIC kommer igång, det beror väl på oscillator och dylikt också? Läste att man kan starta på intern klockning och avvakta att den externa kommer igång men det kanske ändå blir svårt att hinna? Inte för att det skulle vara panik om man får resetta en gång extra.
TomasL:
Ja, jag hade tänkt lägga alla signaler till SRAM:et från PIC med hög impedans om inte programmering sker eftersom den funktionen finns så borde man väl inte behöva en switch-uppättning till? Kanske man ska vara noga med att använda Brown Out Detection (BOD) så att den resettar och ändrar I/O till ingångar när spänningen sjunker.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Vilka ingångar är man egentligen tvungen att styra på SR
Oj, jag som skrev lite medan jag tänkte och ändå får jag omdömet genomtänkt.
R4 är kanske bra ifall ICL'en av någon anledning matar ut högre spänning än vad transistorerna orkar ge.
Det verkar vara olika spänningsfall på olika schottkydioder, man får nog titta i databladen. "Bäst" är väl FET-transistorer, men det får nån annan fylla i hur man lämpligast kopplar.
Jag ser nu att SMI'n matas ju mycket riktigt endast från Fairchildsystemet. Fel av mig.
Eftersom portarna på PIC'en enligt TomasL är ingångar vid uppstart så är det väl läge för nån enklare pull-up på _SWITCH-signalen, om det inte till och med är tillräcklig inbyggd pull-up i PIC'en.
Jag tjatar igen om _WE-signalen på minnet, att den bör med diskreta komponenter styras så att den bara kan gå låg ifall "allt är rätt". Eftersom du inte har något behov av att kunna skriva första ögonblicket efter uppstart så gör det ju inget om det tar relativt lång tid för att det ska bli möjligt att dra _WE låg. Någon slags "resetkrets" är nog en bra idé här, jag vet inte om statussignalerna från ICL'en duger eller inte eftersom de "bara" jämför batteriet med 'vanliga' 5V-matningen. Om batteriet inte har så hög spänning så kommer ICL'en växla till 5V-matningen även när den är relativt låg, kanske så låg att PIC'en & co inte hunnit få tillräckligt bra spänning.
En enkel lösning är ju annars att ha en mekanisk omkopplare för skrivskydd. Sätt ett pullup-motstånd för _WE mot minnesmatningen och driv med nån opencollector-utgång via en strömbrytare/omkopplare. Det är ju inte det snyggaste sättet att lösa problemet men det kan väl ändå vara bra att kunna välja ifall minnet ska se ut som ram eller rom från Fairchildsystemet.

R4 är kanske bra ifall ICL'en av någon anledning matar ut högre spänning än vad transistorerna orkar ge.
Det verkar vara olika spänningsfall på olika schottkydioder, man får nog titta i databladen. "Bäst" är väl FET-transistorer, men det får nån annan fylla i hur man lämpligast kopplar.
Jag ser nu att SMI'n matas ju mycket riktigt endast från Fairchildsystemet. Fel av mig.

Eftersom portarna på PIC'en enligt TomasL är ingångar vid uppstart så är det väl läge för nån enklare pull-up på _SWITCH-signalen, om det inte till och med är tillräcklig inbyggd pull-up i PIC'en.
Jag tjatar igen om _WE-signalen på minnet, att den bör med diskreta komponenter styras så att den bara kan gå låg ifall "allt är rätt". Eftersom du inte har något behov av att kunna skriva första ögonblicket efter uppstart så gör det ju inget om det tar relativt lång tid för att det ska bli möjligt att dra _WE låg. Någon slags "resetkrets" är nog en bra idé här, jag vet inte om statussignalerna från ICL'en duger eller inte eftersom de "bara" jämför batteriet med 'vanliga' 5V-matningen. Om batteriet inte har så hög spänning så kommer ICL'en växla till 5V-matningen även när den är relativt låg, kanske så låg att PIC'en & co inte hunnit få tillräckligt bra spänning.
En enkel lösning är ju annars att ha en mekanisk omkopplare för skrivskydd. Sätt ett pullup-motstånd för _WE mot minnesmatningen och driv med nån opencollector-utgång via en strömbrytare/omkopplare. Det är ju inte det snyggaste sättet att lösa problemet men det kan väl ändå vara bra att kunna välja ifall minnet ska se ut som ram eller rom från Fairchildsystemet.
Re: Vilka ingångar är man egentligen tvungen att styra på SR
Ja, alla I/O är ingångar, jag lusläste databladet så det verkar stämma.
Jag har haft RAM kopplat direkt till /WE i tidigare konstruktioner på cirka 130 cartridges, det har inte varit några problem vad jag vet. Men kanske man kan hänga på en pull-up så det inte hinner bli tokigheter vid uppstart innan PIC:en har startat och ställt in portar och signaler rätt...
Så även till switcharna så att de isolerar SMI vid uppstart innan saker och ting ligger rätt.
Försökte mig på att sätta in modernare styrning på batterikontrollen, jag vet inte om man behöver pull-up resistorerna även med p-ch MOSFET, status-utgångarna är "open drain". och behöver antagligen dras åt ena eller andra hållet (jag är inte så bra på det där). Fördelen med en MOSFET är väl att man inte får något spänningsfall, eller har jag förstått saken fel?
ICL7673 inuti: http://www.intersil.com/content/dam/Int ... fn3183.jpg
Nytt schema:
Jag har haft RAM kopplat direkt till /WE i tidigare konstruktioner på cirka 130 cartridges, det har inte varit några problem vad jag vet. Men kanske man kan hänga på en pull-up så det inte hinner bli tokigheter vid uppstart innan PIC:en har startat och ställt in portar och signaler rätt...
Så även till switcharna så att de isolerar SMI vid uppstart innan saker och ting ligger rätt.
Försökte mig på att sätta in modernare styrning på batterikontrollen, jag vet inte om man behöver pull-up resistorerna även med p-ch MOSFET, status-utgångarna är "open drain". och behöver antagligen dras åt ena eller andra hållet (jag är inte så bra på det där). Fördelen med en MOSFET är väl att man inte får något spänningsfall, eller har jag förstått saken fel?
ICL7673 inuti: http://www.intersil.com/content/dam/Int ... fn3183.jpg
Nytt schema:
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Vilka ingångar är man egentligen tvungen att styra på SR
Jag har inte tillräckligt koll på FET-trissor så jag har inte en susning om de är rättvända/rättkopplade.
Nån annan?
Jag ser en bugg, och det är att du kommer på sin höjd kunna ha kretsen påslagen i nån månad, sen tar batteriet slut. När kretsen är påslagen så går 0,3mA ström genom R6 som får sin matning från batteriet, och om jag räknar rätt så kommer det ta 26-31 dagar för batteriet att bli urladdat (räknat på 190-225mAh). En extremt ful lösning på det skulle kunna vara att sätta en diod i serie med ett motstånd från +5V till batteriets plus, och "ladda" med 0,3mA. 4,7k ohm och en valfri diod, t.ex. 1N4148, borde funka. Fast då är det rätt viktigt att 4,7k-motståndet inte ligger lågt i tolerans samtidigt som R6 ligger högt i tolerans för då blir det verkligen en riktig laddström in i batteriet och det är nog ingen höjdare. Motstånd med riktigt låg tolerans eller nästa större värde istället för 4,7k eller nästa lägre värde för R6 så borde det vara löst.
Men enklast är väl ändå att ha mycket större värde på R6? Med 100k så bör batteriet räcka ett år, och med 1M så borde det räcka 10 år. Se bara till att du inte har andra banor i närheten som kan läcka kapacitivt så att störningar inte gör att Q2 råkar dras igång lite till och från när kretsen är igång. Jordbanor (eller matningsspänningsbanor) på båda sidor av banan som går mellan pinne 6 på ICL 7673, gate'n på Q2, ena änden på R6 och eventuellt till _CS1.
Det kanske går bra ändå med _WE, men hur många av/på-cykler har du provat på de konstruktionerna?
Det finns ett smärre problem med R6/R4, och det är att _CS1 kommer aldrig få högre spänning än batterispänningen. Det kanske i normalfallet är tillräckligt för att räknas som en etta, men det vore ju dumt om det börjar funka dåligt för att batteriet är kass.
Jag rekommenderar att du skippar hela kopplingen med R4 / _CS1 och ansluter CS2 direkt till vanliga +5V-matningen. Då kommer minnet vara aktivt när +5V finns tillgängligt.
Fast då kommer du ju tillbaka till problemet med vad som kan hända med _WE när strömmen slås av/på, eftersom du inte använder de "snygga" PBAR/SBAR för att styra CS...
Kretsen med 74x00 som driver (en obefintlig?) _CE (=_CS1, fast den matas ju redan från ICL'en ?!?) behövs inte. Minnet drar 10mA med båda CS1/CS2 aktiva, och minnet påverkar inte bussen förrän _OE dras låg, och likaså lyssnar inte minnet på bussen om inte _WE är låg. 10mA lär du väl ha "över" så att säga?
Jag skulle nog lösa WE-grejen såhär: OBS att den ska ha en icke-inverterad WE som insignal, så du får invertera inkommande _WE en vända först.
När +5V saknas så är WE och givetvis även +5V låga, varpå både Q11 och Q12 är strypta och därmed får _WE spänning från Vmem via R15.
När +5V just slås på så är C11 ej laddad och Q11 drivs då via R11 och ser därmed till att Q12 inte kan få någon basström så länge som C11 inte blivit laddad.
Efter en stund så är C11 laddad, R12 håller då basen på Q11 låg och Q11 är strypt. Därmed kan WE via R13 ge basström på Q12 så att _WE kan gå låg.
När +5V slås av så kommer R11 och C11 via dioden motarbeta drivning till basen på Q12. R12, R13 och R14 måste vara tillräckligt mycket mer högohmiga än R11 för att detta ska fungera. Vid vilken spänningssäkning på +5V detta kommer aktiveras beror på förhållandet mellan å ena sidan R11 och å andra sidan R12, R13 och R14 räknade parallellkopplade.
Kopplingen får väl inget pris för elegans, jag skulle med fördel errsätta R11, R12, C11 och dioden med en riktig resetkrets.
Men det här är som sagt min "paranoia" för oönskat skräp på _WE.
En riktig resetkrets kan ju annars mata _CS1 så slipper man krångla med diskret transistorgrindning av _WE

Jag ser en bugg, och det är att du kommer på sin höjd kunna ha kretsen påslagen i nån månad, sen tar batteriet slut. När kretsen är påslagen så går 0,3mA ström genom R6 som får sin matning från batteriet, och om jag räknar rätt så kommer det ta 26-31 dagar för batteriet att bli urladdat (räknat på 190-225mAh). En extremt ful lösning på det skulle kunna vara att sätta en diod i serie med ett motstånd från +5V till batteriets plus, och "ladda" med 0,3mA. 4,7k ohm och en valfri diod, t.ex. 1N4148, borde funka. Fast då är det rätt viktigt att 4,7k-motståndet inte ligger lågt i tolerans samtidigt som R6 ligger högt i tolerans för då blir det verkligen en riktig laddström in i batteriet och det är nog ingen höjdare. Motstånd med riktigt låg tolerans eller nästa större värde istället för 4,7k eller nästa lägre värde för R6 så borde det vara löst.
Men enklast är väl ändå att ha mycket större värde på R6? Med 100k så bör batteriet räcka ett år, och med 1M så borde det räcka 10 år. Se bara till att du inte har andra banor i närheten som kan läcka kapacitivt så att störningar inte gör att Q2 råkar dras igång lite till och från när kretsen är igång. Jordbanor (eller matningsspänningsbanor) på båda sidor av banan som går mellan pinne 6 på ICL 7673, gate'n på Q2, ena änden på R6 och eventuellt till _CS1.
Det kanske går bra ändå med _WE, men hur många av/på-cykler har du provat på de konstruktionerna?
Det finns ett smärre problem med R6/R4, och det är att _CS1 kommer aldrig få högre spänning än batterispänningen. Det kanske i normalfallet är tillräckligt för att räknas som en etta, men det vore ju dumt om det börjar funka dåligt för att batteriet är kass.
Jag rekommenderar att du skippar hela kopplingen med R4 / _CS1 och ansluter CS2 direkt till vanliga +5V-matningen. Då kommer minnet vara aktivt när +5V finns tillgängligt.
Fast då kommer du ju tillbaka till problemet med vad som kan hända med _WE när strömmen slås av/på, eftersom du inte använder de "snygga" PBAR/SBAR för att styra CS...
Kretsen med 74x00 som driver (en obefintlig?) _CE (=_CS1, fast den matas ju redan från ICL'en ?!?) behövs inte. Minnet drar 10mA med båda CS1/CS2 aktiva, och minnet påverkar inte bussen förrän _OE dras låg, och likaså lyssnar inte minnet på bussen om inte _WE är låg. 10mA lär du väl ha "över" så att säga?
Jag skulle nog lösa WE-grejen såhär: OBS att den ska ha en icke-inverterad WE som insignal, så du får invertera inkommande _WE en vända först.
När +5V saknas så är WE och givetvis även +5V låga, varpå både Q11 och Q12 är strypta och därmed får _WE spänning från Vmem via R15.
När +5V just slås på så är C11 ej laddad och Q11 drivs då via R11 och ser därmed till att Q12 inte kan få någon basström så länge som C11 inte blivit laddad.
Efter en stund så är C11 laddad, R12 håller då basen på Q11 låg och Q11 är strypt. Därmed kan WE via R13 ge basström på Q12 så att _WE kan gå låg.
När +5V slås av så kommer R11 och C11 via dioden motarbeta drivning till basen på Q12. R12, R13 och R14 måste vara tillräckligt mycket mer högohmiga än R11 för att detta ska fungera. Vid vilken spänningssäkning på +5V detta kommer aktiveras beror på förhållandet mellan å ena sidan R11 och å andra sidan R12, R13 och R14 räknade parallellkopplade.
Kopplingen får väl inget pris för elegans, jag skulle med fördel errsätta R11, R12, C11 och dioden med en riktig resetkrets.
Men det här är som sagt min "paranoia" för oönskat skräp på _WE.
En riktig resetkrets kan ju annars mata _CS1 så slipper man krångla med diskret transistorgrindning av _WE
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Vilka ingångar är man egentligen tvungen att styra på SR
Kör med en riktig resetkrets i stället, till exempel någon ur microchips MCP1xx serie, så blir det enklare både på kort och i schema
http://www.microchip.com/ParamChartSear ... 10&lang=en
http://www.microchip.com/ParamChartSear ... 10&lang=en
Re: Vilka ingångar är man egentligen tvungen att styra på SR
MOSFET:arna sitter rätt, frågan är bara om det krävs en resistor - vilket det verkar göra då dessa S_ och P_ är open drain utgångar (jfr open collector). Det går nog att peta i högre resistorer för att dra upp gate-signalen, jag hittade inget exempel där man använt mosfet istället för bjt. På schemat i databladet står det en "note 4" vid R3 som är resistorn vid basen på en bjt som sitter före pull-up (vilka i mitt schema heter R6 och R7). Vid denna notering skriver de sedan ">1Mw" där W är stort men nedsänkt, har ingen aning om vad som avses men jag har sett att man på andra ställen i nyligen lästa datablad använt W istället för Ohm där det självklart varit så att det är Ohm som avses. T.ex. "Restistance of blablabla is limited to 100 W" eller liknande.
Jag har funderat på att lägga till en strömbrytare för batteriet, det finns egentligen ingen mening med att den ligger och håller minnet när man blivit klar med det aktuella projektet. Initialt behövdes det för att behålla minnet när man flyttar kassetten från datorn till tv-spelet - eftersom jag gärna ville ha SRAM på hela minnet.
Jag vet inte säkert om jag behöver transistor/fet kopplingen men eftersom ICL:en ger 38mA eller 30mA från batteri som max så är det väl säkrast när minnet drar 10mA typiskt men max 60mA. Så i batteribackupläge kanske man helt kan skippa "trissan", det kanske inte är sannolikt att den hinner dra iväg till 60mA i läget när den växlar från batteri till aktivt läge, max ström drar den väl när minnet körs i full fart.
CE2 direkt till vanliga +5... den går alltså låg när strömmen stryps och batteribackupen går gå, tror jag glömde flytta på den, du nämnde det förut...
Det betyder att man inte måste dra /CE hög, man hamnar redan i standby i det läget, matningen från ICL:en till /CE borde kunna plockas bort. Vilket påminner mig om att det var därför jag satte 100k från ICL:en - för att /CE skulle kunna dras hög av 74LS00:an när P_ gått låg vid normal spänning.
När SABA gjorde sin Schack cartridge i slutet på 70-talet så antar jag att de inte behövde bekymra sig om batteribackup och huruvida SRAM:et riskerade att störas vid uppstart och avstängning. Strömmen slogs av och efter uppstart så skrevs nollor in på minnet... Så läget är väl annorlunda här. De få konstruktioner där jag använt FeRAM istället så är det möjligt att störa ut minnesbitar genom att misshandla kassetten en aning (ström på och av snabbt). Den FeRAM cartridge jag skickat över Atlanten till min kompis i New York (Pac-Man som vi skickar när vi klått rekordet) hade faktiskt tappat minnet senast - det kanske beror på något sådant här...
Vad gäller denna /WE-koppling så är jag inte riktigt med, ska läsa ett par gång till, det kommer det ta ett tag att förstå, för att inte tala om att hitta (på) lämpliga värden på komponenterna, resetkrets lät intressant, ska kolla på den länken, frågan är vilket spänningsområde man då ska ha? Har aldrig pysslat med något sådant tidigare.
Jag har en grind över på 74LS00:an så att invertera /WE är inget problem. Syftet är att ha kontroll på /WE så man inte släpper in skräp vid avstängning och uppstart?
Jag har funderat på att lägga till en strömbrytare för batteriet, det finns egentligen ingen mening med att den ligger och håller minnet när man blivit klar med det aktuella projektet. Initialt behövdes det för att behålla minnet när man flyttar kassetten från datorn till tv-spelet - eftersom jag gärna ville ha SRAM på hela minnet.
Jag vet inte säkert om jag behöver transistor/fet kopplingen men eftersom ICL:en ger 38mA eller 30mA från batteri som max så är det väl säkrast när minnet drar 10mA typiskt men max 60mA. Så i batteribackupläge kanske man helt kan skippa "trissan", det kanske inte är sannolikt att den hinner dra iväg till 60mA i läget när den växlar från batteri till aktivt läge, max ström drar den väl när minnet körs i full fart.
CE2 direkt till vanliga +5... den går alltså låg när strömmen stryps och batteribackupen går gå, tror jag glömde flytta på den, du nämnde det förut...
Det betyder att man inte måste dra /CE hög, man hamnar redan i standby i det läget, matningen från ICL:en till /CE borde kunna plockas bort. Vilket påminner mig om att det var därför jag satte 100k från ICL:en - för att /CE skulle kunna dras hög av 74LS00:an när P_ gått låg vid normal spänning.
När SABA gjorde sin Schack cartridge i slutet på 70-talet så antar jag att de inte behövde bekymra sig om batteribackup och huruvida SRAM:et riskerade att störas vid uppstart och avstängning. Strömmen slogs av och efter uppstart så skrevs nollor in på minnet... Så läget är väl annorlunda här. De få konstruktioner där jag använt FeRAM istället så är det möjligt att störa ut minnesbitar genom att misshandla kassetten en aning (ström på och av snabbt). Den FeRAM cartridge jag skickat över Atlanten till min kompis i New York (Pac-Man som vi skickar när vi klått rekordet) hade faktiskt tappat minnet senast - det kanske beror på något sådant här...
Vad gäller denna /WE-koppling så är jag inte riktigt med, ska läsa ett par gång till, det kommer det ta ett tag att förstå, för att inte tala om att hitta (på) lämpliga värden på komponenterna, resetkrets lät intressant, ska kolla på den länken, frågan är vilket spänningsområde man då ska ha? Har aldrig pysslat med något sådant tidigare.
Jag har en grind över på 74LS00:an så att invertera /WE är inget problem. Syftet är att ha kontroll på /WE så man inte släpper in skräp vid avstängning och uppstart?
Re: Vilka ingångar är man egentligen tvungen att styra på SR
Äsch, går nog inte att ha de där MOSFET:arna jag hittade, risken är väl att man får spänning från "primary" bort till batteriet genom dioden i denna.
Men någon sort utan denna sortens skyddande diod kanske?
Men någon sort utan denna sortens skyddande diod kanske?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Vilka ingångar är man egentligen tvungen att styra på SR
Jag vet inte varför men ibland verkar W förekomma istället för ohm-symbol i vissa texter.
Om du fixar så att batteriströmväxlarkretsen inte äter någon ström så borde en switch till batteriet inte behövas.
60mA max men 10mA typiskt låter som att en liten avkopplingskonding (som du ändå lär vilja ha) kan göra att minnet inte drar mer än 30mA max genom ICL'en.
Jag upprepar att 74x00-kretsen behövs som sagt inte, du behöver inte generera nån CE-signal utan minnet kan vara enable'at hela tiden det finns +5V och det räcker alltså att du styr _WE och _OE.
Vad gäller resetkrets så ändrar jag mig igen. Jag håller med TomasL om idén att köra med en riktig/färdig krets, men det viktiga här är ju inte att generera en resetpuls vid strömpåslag utan det viktiga är att garanterat hela tiden dra en signal åt ett håll så länge +5V inte är "tillräckligt bra". Oftast så lär väl en resetkrets fixa detta, men det är bra att läsa på i databladet om vad som händer på utgången från kretsen medan strömmen slås av/på.
Jag googlade lite på chansning och LTC2917/LTC2918 verkar ha garanterad funktion vid minst 0,8V matningsspänning och kan ställas i ett 5V-läge där den "larmar" när spänningen går under 4,6-4,75V (LTC2918) eller ställbart 4,6-4,75 , 4,35-4,5 eller 4,1-4,25 (LTC2917). Kretsen drar max 50/80 µA, så det borde gå att låta den drivas direkt från Vbatt utan att påverka batteriets livslängd så värst. Det verkar väl rätt vettigt att låta _RST på den här styra CE2 på minnet (istället för att koppla direkt vanliga +5V), då avväljs minnet automagiskt så fort spänningen blir för dålig. OBS att du måste givetvis fundera på hur mycket spänningsfall batteriomkopplarkretsen ger, jag skulle tro att det är bra att ha LTC2917 där man kan välja lägre än 4,75V som worst-case-nivå för okej spänning.
OBS, jag har inte konstruerat med denna krets och vet inte alls vad den kostar eller om den ens finns att köpa idag, det var bara ett exempel jag fann när jag googlade.¨
Syftet med mitt förra förslag kring _WE är alltså att inte få in skräp vid av/på-slag. Detta går lika bra att undvika genom att ha koll på _CE1 eller CE2, och därför föreslår jag resetkretsen kopplad till CE2.
Om du fixar så att batteriströmväxlarkretsen inte äter någon ström så borde en switch till batteriet inte behövas.
60mA max men 10mA typiskt låter som att en liten avkopplingskonding (som du ändå lär vilja ha) kan göra att minnet inte drar mer än 30mA max genom ICL'en.
Jag upprepar att 74x00-kretsen behövs som sagt inte, du behöver inte generera nån CE-signal utan minnet kan vara enable'at hela tiden det finns +5V och det räcker alltså att du styr _WE och _OE.
Vad gäller resetkrets så ändrar jag mig igen. Jag håller med TomasL om idén att köra med en riktig/färdig krets, men det viktiga här är ju inte att generera en resetpuls vid strömpåslag utan det viktiga är att garanterat hela tiden dra en signal åt ett håll så länge +5V inte är "tillräckligt bra". Oftast så lär väl en resetkrets fixa detta, men det är bra att läsa på i databladet om vad som händer på utgången från kretsen medan strömmen slås av/på.
Jag googlade lite på chansning och LTC2917/LTC2918 verkar ha garanterad funktion vid minst 0,8V matningsspänning och kan ställas i ett 5V-läge där den "larmar" när spänningen går under 4,6-4,75V (LTC2918) eller ställbart 4,6-4,75 , 4,35-4,5 eller 4,1-4,25 (LTC2917). Kretsen drar max 50/80 µA, så det borde gå att låta den drivas direkt från Vbatt utan att påverka batteriets livslängd så värst. Det verkar väl rätt vettigt att låta _RST på den här styra CE2 på minnet (istället för att koppla direkt vanliga +5V), då avväljs minnet automagiskt så fort spänningen blir för dålig. OBS att du måste givetvis fundera på hur mycket spänningsfall batteriomkopplarkretsen ger, jag skulle tro att det är bra att ha LTC2917 där man kan välja lägre än 4,75V som worst-case-nivå för okej spänning.
OBS, jag har inte konstruerat med denna krets och vet inte alls vad den kostar eller om den ens finns att köpa idag, det var bara ett exempel jag fann när jag googlade.¨
Syftet med mitt förra förslag kring _WE är alltså att inte få in skräp vid av/på-slag. Detta går lika bra att undvika genom att ha koll på _CE1 eller CE2, och därför föreslår jag resetkretsen kopplad till CE2.
Re: Vilka ingångar är man egentligen tvungen att styra på SR
Googlade lite snabbt och W för ohm verkar vara en gammal tysk kvarleva: "Wiederstands werte"
Men det verkar också kunna vara ett teckenuppsättningsproblem (om man inte använder unicode så måste ju ohmega komma från en annan font, och där verkar det som om den har samma ascii-kod som W).
http://en.wikipedia.org/wiki/Ohm#Ohm_symbol
Men det verkar också kunna vara ett teckenuppsättningsproblem (om man inte använder unicode så måste ju ohmega komma från en annan font, och där verkar det som om den har samma ascii-kod som W).
http://en.wikipedia.org/wiki/Ohm#Ohm_symbol
Re: Vilka ingångar är man egentligen tvungen att styra på SR
Jag måste invertera CPU-READ innan jag kan ha den till /OE... Tyckte det verkade som en bra idé att att bara ha aktiv /CE vid läs eller skriv signal.
Funderade också på om det räcker med en kondensator för att täcka upp max-strömmen till minnet, man kanske skulle chansa på det, det underlättar en hel del. Jag kommer väl inte köra den på sitt max ändå men jag kan ju mäta när jag får hem DIL-versionen och börjar experimentera på kopplingsplatta.
Så med en sådan LTC*-krets som nämns så avaktiverar man istället hela kretsen när spänningen är på väg ner, kör man den på CE2 så innebär det i praktiken att man drar den i standby-läge lite tidigare än ICL-kretsen och att den hålls där lite längre efter att 5V nått rätt nivå.
LTC2917 verkade bra, finns på eBay (ska ju inte bygga en massa av denna) för 8-9 dollar. Jag lade in den, tog bort externa batteristyrningen, nu är jag väl mest nyfiken på hur man ska dimensionera lämplig kondensator till minnet för att ta de eventuella strömtopparna? Har lagt 100nF som en platshållare.
Man kanske borde ha någon 10µF kondensator på matningen till PIC:en också, jag tycker det verkar vara väldigt låga värden på allt jag sett i datablad och så?
När jag nu ändå behöver invertera CPU-READ så är det väl lika bra att behålla den försiktiga /CE-versionen?
Nuvarande plan:
Funderade också på om det räcker med en kondensator för att täcka upp max-strömmen till minnet, man kanske skulle chansa på det, det underlättar en hel del. Jag kommer väl inte köra den på sitt max ändå men jag kan ju mäta när jag får hem DIL-versionen och börjar experimentera på kopplingsplatta.
Så med en sådan LTC*-krets som nämns så avaktiverar man istället hela kretsen när spänningen är på väg ner, kör man den på CE2 så innebär det i praktiken att man drar den i standby-läge lite tidigare än ICL-kretsen och att den hålls där lite längre efter att 5V nått rätt nivå.
LTC2917 verkade bra, finns på eBay (ska ju inte bygga en massa av denna) för 8-9 dollar. Jag lade in den, tog bort externa batteristyrningen, nu är jag väl mest nyfiken på hur man ska dimensionera lämplig kondensator till minnet för att ta de eventuella strömtopparna? Har lagt 100nF som en platshållare.
Man kanske borde ha någon 10µF kondensator på matningen till PIC:en också, jag tycker det verkar vara väldigt låga värden på allt jag sett i datablad och så?
När jag nu ändå behöver invertera CPU-READ så är det väl lika bra att behålla den försiktiga /CE-versionen?
Nuvarande plan:
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Vilka ingångar är man egentligen tvungen att styra på SR
> innan PIC:en har startat och ställt in portar och signaler rätt...
En sak kan vara att ställa PORT registret rätt *först* innan TRIS
sätts till utgång för att undvika spikar på pinnarna.
Angående resetkretsar så har jag nog några rullar med någon sorts spänningvakt. Se t.ex:
http://www.tradera.com/100-st-voltage-r ... _199370491
Man behöver ju inte använda regulatordelen...
Jag tror att jag har några andra med olika tröskelvärden, jag kan kolla senare idag om det är intressant.
En sak kan vara att ställa PORT registret rätt *först* innan TRIS
sätts till utgång för att undvika spikar på pinnarna.
Angående resetkretsar så har jag nog några rullar med någon sorts spänningvakt. Se t.ex:
http://www.tradera.com/100-st-voltage-r ... _199370491
Man behöver ju inte använda regulatordelen...
Jag tror att jag har några andra med olika tröskelvärden, jag kan kolla senare idag om det är intressant.
Re: Vilka ingångar är man egentligen tvungen att styra på SR
Ja, när _CS1 inte behövs till något annat så kan den ju lika gärna styras av 74x00 eftersom du ändå behöver invertera CPU-READ.
Ett tips kan väl kanske vara att i schemat ändra så att det inte står _CE utan _CS1 på utgången från 74x00.
En lite rörig grej är att samma spänning heter både Vbatt och VCC.
Jag vet inte hur kretskortscadverktyget du använder fungerar, men det är väl bra att vara tydlig med signalnamnen o.s.v. så ska väl verktyget kunna se till att layouten stämmer hyggligt med schemat, väl?
Ett tips kan väl kanske vara att i schemat ändra så att det inte står _CE utan _CS1 på utgången från 74x00.
En lite rörig grej är att samma spänning heter både Vbatt och VCC.
Jag vet inte hur kretskortscadverktyget du använder fungerar, men det är väl bra att vara tydlig med signalnamnen o.s.v. så ska väl verktyget kunna se till att layouten stämmer hyggligt med schemat, väl?
Re: Vilka ingångar är man egentligen tvungen att styra på SR
Minneskretsen använder namnen /CE och CE2 så jag har hållt mig till det, anledningen att det står *CS* i schemat är att det egentligen är ett annat sorts minne som jag bytt namn på (vad det nu var). Orkade inte hålla på med att göra en ny komponent bara för den detaljen. Men det kunde kanske vara smart att följa namnen som inte går att ändra på, samma gäller väl Vmem (har jag någon Vbatt?).
Jag kör med SoftCad's Eagle, den är lite klumpig ibland men jag börjar bli van. En global databas för komponenter hade kanske inte varit dumt så man slapp hålla på och fixa egna standardgrejor hela tiden.
Jag ska köra lite tester på kopplingsplatta och det är väl dags att börja peta med firmware nu - lika bra att det hamnar i en annan tråd om det kör ihop sig.
Tackar så mycket för hjälpen, kul att det är så gott om hjälpsamt folk.
Jag kör med SoftCad's Eagle, den är lite klumpig ibland men jag börjar bli van. En global databas för komponenter hade kanske inte varit dumt så man slapp hålla på och fixa egna standardgrejor hela tiden.
Jag ska köra lite tester på kopplingsplatta och det är väl dags att börja peta med firmware nu - lika bra att det hamnar i en annan tråd om det kör ihop sig.
Tackar så mycket för hjälpen, kul att det är så gott om hjälpsamt folk.
Re: Vilka ingångar är man egentligen tvungen att styra på SR
Sorry, menade Vmem och inte Vbatt
Aha, då förstår jag varför CE och CS blandats. Vilket du använder spelar väl ingen roll, bara det blir samma överallt.
(För övrigt så är ju layouten nästan samma för de flesta åttabitarsminnen, både statiska ram och eprom. I gamla mikroprocessorbyggen så förekom det ibland ett par byglar för att växla några få signaler för att samma sockel skulle kunna användas till en hel klase olika varianter på eprom/ram).

Aha, då förstår jag varför CE och CS blandats. Vilket du använder spelar väl ingen roll, bara det blir samma överallt.
(För övrigt så är ju layouten nästan samma för de flesta åttabitarsminnen, både statiska ram och eprom. I gamla mikroprocessorbyggen så förekom det ibland ett par byglar för att växla några få signaler för att samma sockel skulle kunna användas till en hel klase olika varianter på eprom/ram).
Re: Vilka ingångar är man egentligen tvungen att styra på SR
Snyggade till schemat med dessa förslag, nu undrar jag väl då mest hur stor konding man bör ta till för minnet för att klara eventuella strömmar över 38mA...