거의 무제한의 읽기 / 쓰기 작업 기능을 갖춘 비 휘발성 메모리 IC 필요


12

마이크로 컨트롤러 기반 프로젝트에서 누적 된 수를 추적하는 데 사용할 메모리 솔루션이 필요합니다.

누적 카운트로, 마이크로 컨트롤러는이 메모리 위치를 사용하여 이벤트 발생 횟수를 유지합니다. 정전 중에 카운트를 유지해야하므로 비 휘발성 메모리가 필요합니다.

또한 카운트 증가 이벤트가 자주 발생하므로 메모리에 많은 쓰기가 있으므로 EEPROM을 사용하는 것이 주저합니다.

선호되는 통신 인터페이스는 I2C이지만 다른 대안도 환영합니다.

머리 꼭대기에서 나는 전원 차단시 코인 셀과 같은 백업 배터리로 전원을 공급받을 수있는 옵션으로 SRAM 저전력 휘발성 메모리 IC를 구상합니다.


15
F-RAM이 필요합니다.
Hearth

3
... 무엇이 문제입니까?
Curd

2
I2C 쓰기 작업 도중 전원이 꺼지면 어떻게해야합니까? 카운트가 손상되지 않도록 어떻게 확신 할 수 있습니까? 임박한 전원 손실을 감지 할 수 없으면 RAM 기반 카운터를 일반적인 EEPROM에 복사 할 수 없다면이 문제는 생각보다 어렵습니다.
Elliot Alderson

5
'빈번한'빈도는 얼마나됩니까? 단일 변수의 경우 작은 크기의 EEPROM조차도 어리석게 높은 내구성을 갖습니다. 마지막 쓰기에 실패한 경우 마지막 x 카운트를 백업 할 수도 있습니다.
hekete

나는 100 백만 사이클을 약속 한 구식 비 FLASH EE 메모리를 기억합니다.
analogsystemsrf

답변:


21

사용 가능한 크기 순으로 세 가지 비 휘발성 메모리 유형이 필요에 맞습니다.

  • 평평한 EEPROM / FLASH를 착용하십시오.
  • 배터리 백업 SRAM.
  • 프레임.

비용면에서 FRAM이 가장 좋습니다. 쓰기를 완료하기위한 백업 커패시터를 포함하여 칩 내부 만 있으면됩니다. 그러나 사용 가능한 크기는 낮습니다.
배터리 백업 SRAM은 크기가 크고 재료가 비쌉니다.
마모 레벨링 EEPROM은 마모 레벨링을 처리하기 위해 펌웨어가 필요합니다.


1
감사. @Hearth가 제안한대로 FRAM을 확인했으며 내 요구에 가장 잘 맞는다고 생각합니다. I2C 변형을 찾을 수 있기를 바랍니다. 또한 누산기 변수는 길이가 32 비트이면됩니다. 따라서 크기는 큰 문제가 아닙니다.
Cerezo

3
@GH_eng I²C FRAM 칩 . 메모리가 갈수록 상당히 비싸지 만 (상대적으로 새로운 기술이기 때문에) 대체품이 필요할 때 더 많은 비용이들 것입니다.
Hearth

3
MRAM도 있습니다
DKNguyen

1
@GH_eng TI MSP430FR *은 FRAM에 내장되어 있다고 생각합니다. MCU에 대해서는 이미 제한되어있을 수 있습니다.
detly

21

다음은 여전히 ​​대량 생산중인 제품에서 수행 한 작업입니다.

  • 모든 매개 변수와 카운터를 RAM에 유지
  • 전원 공급 장치 전압 임계 값 검출기에 인터럽트 라인 연결
  • 인터럽트가 트리거되면 전력을 소비하는 모든 것 (대부분의 주변 장치, LED 등)을 끄고 모든 RAM을 백업하여 플래시하십시오.

저전압 트리거와 전원 관리 IC가 작동하여 모든 것을 셧다운하는 시간 (순서대로) 사이에는 약 10-20ms의 시간이있었습니다. 이것이 작동하는지의 여부는 전원 공급 장치의 에너지 저장 장치에 달려 있지만 작은 공급 장치조차도이를 느리게하여 작은 데이터 세트를 안정적으로 작성할 수 있습니다.


1
@Hilmer 꽤 영리합니다! 알아 둘만 한. 아마도 EEPROM 및 MCU의 입력 전에 배치 된 저수지 CAP는 시간 지연을 추가로 증가시킵니다. 단점은 아마도 PCB에서 더 많은 구성 요소 일 것입니다.
Cerezo

당시에는 PCB 부동산을 포함한 가장 저렴한 솔루션이었습니다. 물론 그것은 당신의 세부 사항에 달려 있습니다 : 우리는 여분의 GPIO 라인을 가지고 있었으므로 무료였습니다. 나머지는 단지 몇 개의 젤리 빈 (작은 저렴한 SMD 부품)
Hilmar

당신이 도움이 될만큼 충분히 큰 공급 장치에 elcap을 넣어서 귀찮은 부작용을 일으키기에는 너무 크지 않으면 서 10-20ms를 늘릴 수 있습니다.
마스트

@ 마스트 : 아마도 너무 비싸고 다른 솔루션으로 더 나아질 수 있습니다
Hilmar


5

RTC 클럭 칩 또는 모듈을 사용할 수있는 것처럼 들립니다. 여기에는 배터리 백업, 사용자 데이터를위한 추가 SRAM이 있으며 I2C 인터페이스가 제공됩니다.

또는 배터리 지원 SRAM이있는 MCU를 사용하여 시작하므로 외부 부품이 필요하지 않습니다.


예를 들어 DS1307, DS1338입니다.
filo

1
불행히도 보드에 사용 된 RTCC는 DS3231M입니다. 내부 예비 데이터 레지스터가없는 DS1307 RTCC와 동일한 핀 구성. 통합 오실레이터로 인해 이것을 선택하십시오. 나는 완전한 회로 리뷰를 느낀다 :(!
Cerezo

5

Cypress는 비 휘발성 SRAM이라고 합니다. 정전시 자동으로 백업되는 것은 표준 SRAM입니다. 정전시 비 휘발성 메모리에만 쓰므로 내구성이 훨씬 뛰어납니다. 직렬 및 병렬 버전으로 제공됩니다. 가장 작은 것이 64Kb이므로 약간 과잉 일 수 있습니다.

정상 작동 상태에서 nvSRAM은 표준 신호 및 타이밍을 사용하는 기존의 비동기 SRAM처럼 작동합니다. nvSRAM은 병렬 랜덤 액세스 읽기 및 쓰기를 20ns의 속도로 수행합니다.

정전시, nvSRAM은 SRAM 데이터의 사본을 비 휘발성 메모리에 자동으로 저장하며, 여기서 데이터는 20 년 이상 보호됩니다. SRAM과 비 휘발성 메모리 간의 전송은 완전히 병렬이므로 사용자 개입없이 8ms 이내에 작업을 완료 할 수 있습니다.

전원을 켜면 nvSRAM이 데이터를 다시 SRAM으로 되돌리고 시스템 작동이 중단 된 지점부터 계속됩니다. nvSRAM은 또한 사용자 제어 소프트웨어 STORE 및 RECALL 시작 명령과 대부분의 버전에서 사용자 제어 하드웨어 STORE 명령을 제공합니다.

NVSRAM 블록 다이어그램



그 물건은 훌륭하다!
Tomachi

4

단일 4 바이트 변수의 경우 EEPROM이 완전히 좋습니다.

초당 1 회 작성하고 일반적인 32Kb EEPROM을 가지고 있으며 10 만 번의 쓰기 주기로 보수적 인 내구성을 유지한다고 가정 해 봅시다.

명확하게하기 전에 4 바이트를 8000 번 쓸 수 있습니다. 따라서 그것은 보수적 인 추정을 사용하여 작성할 수있는 8 억 번이어야합니다.

이제 1 년에 3,150 만 초 밖에 걸리지 않으므로 1 초에 1 초에 EEPROM 내구성의 최저 예상치에 도달하는 데 25 년이 걸립니다.


1
물론, EEPROM에 쓰는 속도는 꽤 느리므로 (밀리 초) OP의 "자주 쓰는"작업은 더 빠른 솔루션이 필요할 수 있습니다. 그리고 EEPROM을 "클리어"하는 데 실제로는 매우 오랜 시간 (초)이 소요됩니다. 지우는 대신 이전 값을 덮어 쓸 수 있다고 가정하지만 카운트 값이 엄격하게 순차적이지 않으면 마지막으로 쓴 값이 무엇인지 파악하기가 어렵습니다.
Elliot Alderson

@ElliotAlderson 아마도 가장 높은 값이 무엇인지, 아마도 마지막 값일 것이라고 생각할 수 있습니다. 이 경우 초당 1 회씩 '빈번한'것으로 계산되는지 여부는 전혀 알 수 없습니다. 쓰기 주파수가 1 초 이상 떨어져도 EEPROM은 여전히 ​​실행 가능합니다.
hekete

0

여기에는 많은 옵션이 있지만 실제 문제는 데이터 손상을 막는 것입니다. 쓰기 중 전원 손실로 인해 데이터가 손상 될 수 있습니다. I2C는 이것을 피하기위한 좋은 옵션입니다. 예를 들어 SPI를 사용하면 32 비트 워드의 4 바이트를 업데이트하는 동안 절반 정도의 쓰기가 메모리의 관점에서 나타남을 알 수 있습니다. I2C는 조금 더 강력하지만 조금만 있습니다.

내 충고는 가치의 사본을 4 개 저장하는 것입니다. 이렇게하면 쓰기가 중단 되더라도 항상 두 개가 일치합니다.

FRAM 또는 이와 유사한 것이 가장 좋은 옵션 일 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.