View previous topic :: View next topic |
Author |
Message |
artohautala
Joined: 17 Nov 2011 Posts: 187
|
interrupt during write_eeprom |
Posted: Sun Feb 09, 2014 6:57 am |
|
|
I want to know is int_ext interrupt posible during write_eeprom ?
I'm measuring short 1 ms random pulses that makes interrupts to
B0/INT pin and I don't want to loose any of them... maybe write_eeprom
function last several milliseconds
Chip I'm using is 16f8777a
best regards
-arto- |
|
|
dyeatman
Joined: 06 Sep 2003 Posts: 1934 Location: Norman, OK
|
|
Posted: Sun Feb 09, 2014 8:13 am |
|
|
.. _________________ Google and Forum Search are some of your best tools!!!!
Last edited by dyeatman on Sun Feb 09, 2014 9:58 am; edited 2 times in total |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19548
|
|
Posted: Sun Feb 09, 2014 9:08 am |
|
|
Also, remember that the interrupt _flag_ will still be set, and the interrupt serviced immediately after the EEPROM write finishes, so, provided the repeat rate of the interrupt never exceeds the time it takes for a single EEPROM write to occur, they won't be 'missed', just the servicing will be delayed.
The EEPROM write takes 8mSec 'worst case', 4mSec 'typical'.
Best Wishes |
|
|
artohautala
Joined: 17 Nov 2011 Posts: 187
|
|
Posted: Sun Feb 09, 2014 9:30 am |
|
|
dyeatman wrote: | The problem has been discussed here many times before.
You can't have interrupts during EEPROM writes.
Using FRAM will solve the problem, no 1ms write delay.
Available from most electronics suppliers. |
Thank you for your good answer ... in my case delayed writing to EEPROM is no problem ...
I was only worried missing those 1 ms random pulses ...
have fun and thank's
-arto- |
|
|
dyeatman
Joined: 06 Sep 2003 Posts: 1934 Location: Norman, OK
|
|
Posted: Sun Feb 09, 2014 9:35 am |
|
|
You misunderstand. I am not talking about delayed writing to EEPROM.
I am talking about the MANDATORY time it takes to complete the EEPROM
write cycle. As was stated earlier it can take upwards of 4MS which is a
huge amount of time. During that time you must have interrupts disabled.
If two or more interrupts occur during that time you WILL miss all but the
first one. FRAM writes are instantaneous. _________________ Google and Forum Search are some of your best tools!!!!
Last edited by dyeatman on Sun Feb 09, 2014 10:21 am; edited 2 times in total |
|
|
artohautala
Joined: 17 Nov 2011 Posts: 187
|
|
Posted: Sun Feb 09, 2014 9:42 am |
|
|
Ttelmah wrote: | Also, remember that the interrupt _flag_ will still be set, and the interrupt serviced immediately after the EEPROM write finishes, so, provided the repeat rate of the interrupt never exceeds the time it takes for a single EEPROM write to occur, they won't be 'missed', just the servicing will be delayed.
The EEPROM write takes 8mSec 'worst case', 4mSec 'typical'.
Best Wishes |
OK
it don't matter in my case if writing to EEPROM is delayed ...
but if during writing to EEPROM there is two
1 ms pulses do I miss one pulse ?
lot of thank's for your professional answer ... I really respect it
-arto- |
|
|
artohautala
Joined: 17 Nov 2011 Posts: 187
|
|
Posted: Sun Feb 09, 2014 10:05 am |
|
|
dyeatman wrote: | You misunderstand. I am not talking about delayed writing to EEPROM.
I am talking about the MANDATORY time it takes to complete the EEPROM
write cycle. As was stated earlier it can take upwards of 4MS which is a
huge amount of time. During that time you must have interrupts disabled.
If two or more interrupts occur during that time you WILL miss all but the
first one. FRAM writes are instantaneous. |
OK!
so if I don't want to loose any 1 ms pulses during write to pic EEPROM
I have to use FRAM? no pic internal EEPROM ?
Sorry I do not understand what FRAMs are... and how to use them ...
is this OK:
disable_interrupts(GLOBAL);
write_eeprom ( something ... )
enable_interrupts(GLOBAL);
?
in this case I loose pulses during writing to EEPROM ? except one pulse entered during writing ?
pls tell me how to use FRAM!
best wishes
-arto- |
|
|
dyeatman
Joined: 06 Sep 2003 Posts: 1934 Location: Norman, OK
|
|
Posted: Sun Feb 09, 2014 10:11 am |
|
|
Unfortunately all EEPROM has this limitation so yes internal or external has the same problem.
Because of this I have used FRAM for many applications. FRAM is
essentially exactly the same as EEPROM (in many cases a drop in
replacement) but writes occur in one clock cycle rather than 4+ms.
http://en.wikipedia.org/wiki/Ferroelectric_RAM
One additional note, EEPROM has a limited number of write cycles before
they "burn out". FRAM is virtually unlimited.
Here is a great Ramtron document on FRAM
http://documents.rs-components.com/EITC/UK/electronics/an304.pdf
Here is an FRAM that allows SPI writes at up to 40MHZ speeds.
http://www.cypress.com/?docID=44769 _________________ Google and Forum Search are some of your best tools!!!!
Last edited by dyeatman on Sun Feb 09, 2014 10:36 am; edited 1 time in total |
|
|
artohautala
Joined: 17 Nov 2011 Posts: 187
|
|
Posted: Sun Feb 09, 2014 10:36 am |
|
|
dyeatman wrote: | Unfortunately all EEPROM has this limitation so yes internal or external has the same problem.
Because of this I have used FRAM for many applications. FRAM is
essentially exactly the same as EEPROM (in many cases a drop in
replacement) but writes occur in one clock cycle rather than 4+ms.
http://en.wikipedia.org/wiki/Ferroelectric_RAM
One additional note, EEPROM has a limited number of write cycles before
they "burn out". FRAM is virtually unlimted. |
OK
I understand that EEPROM is nonvolatile memory and maybe 100 000 write cycles is maxĂmum and that's why in PC:s they use random access ...
and FRAM is like dynamic RAM ... and fast ...
what chip of FRAM I have to use to solve a problem ?
What chip FRAM you are used?
serial or parallel ....
in my hardware there's a broblem that it's ready ....
and I did not thought that little problem at all when I did printed circiuti board
... but maybe I can do some "prototyping " to my hardware ...
have fun
all the best for you
-arto- |
|
|
dyeatman
Joined: 06 Sep 2003 Posts: 1934 Location: Norman, OK
|
|
Posted: Sun Feb 09, 2014 10:42 am |
|
|
I originally started with (and still like) Ramtron but there are better ones out
now like the one from Cypress I provided the link to above. I prefer and use
SPI.
Parallel is obviously the fastest but, at high speeds, an SPI write can be
accomplished in us rather than ms.
Size is purely depending on how much data you need to store. If you have
very little use the smallest size.
It appears Ramtron has been bought out by Cypress anyway... _________________ Google and Forum Search are some of your best tools!!!! |
|
|
artohautala
Joined: 17 Nov 2011 Posts: 187
|
|
Posted: Sun Feb 09, 2014 10:49 am |
|
|
dyeatman wrote: | I originally started with (and still like) Ramtron but there are better ones out
now like the one from Cypress I provided the link to above. I prefer and use
SPI.
Parallel is obviously the fastest but, at high speeds, an SPI write can be
accomplished in us rather than ms.
Size is purely depending on how much data you need to store. If you have
very little use the smallest size.
It appears Ramtron has been bought out by Cypress anyway... |
OK
lot of thank's
-arto- |
|
|
dyeatman
Joined: 06 Sep 2003 Posts: 1934 Location: Norman, OK
|
|
Posted: Sun Feb 09, 2014 10:53 am |
|
|
I understand your dilemma. I have been caught flatfooted when a problem
cropped up after a design was finalized. Now, I always do a prototype and
test extensively before the final. I have avoided a number of bad situations
(and egg on my face) this way. _________________ Google and Forum Search are some of your best tools!!!! |
|
|
artohautala
Joined: 17 Nov 2011 Posts: 187
|
|
Posted: Sun Feb 09, 2014 11:13 am |
|
|
dyeatman wrote: | I understand your dilemma. I have been caught flatfooted when a problem
cropped up after a design was finalized. Now, I always do a prototype and
test extensively before the final. I have avoided a number of bad situations
(and egg on my face) this way. |
HI
OK,
I did prototype too but my project is so complicated ...
my project is just for fun and just for hobby ...
it measures backround radioactive radiation and shows it in big LCD display pulses in 1 second and 1 minute
and pulses minimum and maximum...
and there are menus to control all things...
and same pulses in big (about 7 centimeters) 7 segment displays...
if you are intersted I'll be happy to send photos and software listings for you... and shematic and print layouts
we are great people
-arto- |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19548
|
|
Posted: Sun Feb 09, 2014 12:28 pm |
|
|
I too like FRAM.
However you might consider not using an interrupt at all!....
If you instead of connecting the pulses to the interrupt, feed them to a clock input for one of the timers supporting external clocks, the timer will simply count the pulses. It'll do this whether or not the EEPROM is updating.
The count will be the number of pulses, whether one, two, ten or twenty arrives while the write is taking place....
Best Wishes |
|
|
artohautala
Joined: 17 Nov 2011 Posts: 187
|
|
Posted: Sun Feb 09, 2014 1:04 pm |
|
|
Ttelmah wrote: | I too like FRAM.
However you might consider not using an interrupt at all!....
If you instead of connecting the pulses to the interrupt, feed them to a clock input for one of the timers supporting external clocks, the timer will simply count the pulses. It'll do this whether or not the EEPROM is updating.
The count will be the number of pulses, whether one, two, ten or twenty arrives while the write is taking place....
Best Wishes |
OK yeah
good idea ... !
I will think it tomorrow ... but now I have to go to sleep ...
clock in finland is now 21:01 PM and tomorrow is very busy working day...
lot of thanks and best life for you !
-arto- |
|
|
|