Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 4 of 4

Thread: Noob question about Eeprom "emulation"

  1. #1
    Junior Member
    Join Date
    Apr 2020
    Posts
    6

    Noob question about Eeprom "emulation"

    Hello guys, first of all: I'm a musician that learned programming in c via YouTube with the goal of programming a good midi controller for myself. So please keep in mind that I will not understand hex numbers or specific language. I'm also not a native English speaker, I live in Germany.
    I've been programming my pedal for over a year now and it's getting quite complex, and that's great. To be easily able to command audio software on my computer I switched from arduino to teensy and it works fine.
    My pedal has a 16x2 lcd display and I would love to be able to define what kind of message the buttons and the poti will send, if the buttons are momentary, latching or exclusive latching, or even a package of commands, etc, without connecting it to a computer, using the buttons and the poti only and the lcd screen as reference. And there is where the eeprom becomes interesting, cause normally this button information (variables) are written in the main code and that's why the Chip won't forget them if I power cycle it. So if I want to change this variables without the computer and then have this information stored after a power cycle I'll need to store them in the eeprom, right? In a sum this would mean a minimum of 780 numbers, that's not that much to consider sd cards.
    So NOW comes the real question: eeprom normally means a certain number of write cycles, then it's broke. Does this also apply to emulated EEPROM? As I understood the word "emulated" this is not really eeprom, it's flash but works as eeprom. So I thought maybe it doesn't have the write number limitation. I'm aware that it would take a long time to achieve the 10000 times, but 780 variables are also a lot...

    I just realised that I wrote quite a lot for a simple question, but often when I ask programming related stuff in forums and social media groups people say they need more information to answer my questions...

    However, have a nice day and thanks for reading until this point of the post! ;-)

  2. #2
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    12,405
    Hi, not noted what Teensy? But emulated is used on T_LC or T_4.x.

    The T_3.x have onboard support and Flash usable as EEPROM. The others above are emulated lacking that direct FLASH access on chip, but in the end it works the same to map rewrites across a larger set of flash area to do wear leveling as possible.

    The T_LC has less flash to work with so it can reach max re-write sooner than the others that have larger area to spread the wear leveling over.

    Given code started over a year ago it would seem to be a T_4.0 and the presented EEPROM maps some 50::1 with wear leveling area IIRC - and with rewrite life of 10K or 100K of the elements under the 50X wear level scheme casual re-write when setting change a couple times a day should not be a concern.

    Paul made a post in the recent week or so with more details.

    <edit>: quickly found that post :: pjrc.com/threads/63217-Increase-write-endurance-on-Teensy-4-0

  3. #3
    Junior Member
    Join Date
    Apr 2020
    Posts
    6
    Hey defragster, thanks for replying! But I didn't really get the point. What means wear leveling? And the question was if there is such thing as an eeprom maximal rewrite thing in the case it's an emulated eeprom. Now I'm working with an lc, but it can't store 780 variables in it's eeprom, only 124 or so. Therefore I'm searching an alternative, and as the price for the 3.2 and the 4.0 is nearly the same I was wondering which one I should take. The eeprom from the 3.2 seems to be bigger though...

  4. #4
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    12,405
    Not made clear but with 128 bytes EEPROM - that would be a Teensy LC? There is not a fixed assurance of EEPROM life ...

    The p#2 linked thread give some details on wear leveling process - probably a more general definition on wikipedia. When presenting those 128 bytes - there is actually more FLASH underlying that so writing and rewriting the same location doesn't actually write to the same physical FLASH location repreatedly - it is moved across the EEPROM in some pattern so as to not wear out a single location prematurely.

    With price and EEPROM fitting your needs/budget - either would work. So look at the end project needs to determine the best fit for higher speed, or lower power or other difference between them.

    Other items on this table may help in choosing: pjrc.com/teensy/techspecs.html

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •