태그 보관물: firmware

firmware

PCB의 인코딩 버전 또는 구성 대한 정보를 인코딩해야하므로 펌웨어가

보드 또는 전기적으로 버전 또는 구성에 대한 정보를 인코딩해야하므로 펌웨어가 사용되는 보드 레이아웃을 감지 할 수 있습니다.

가능한 옵션과 장단점은 무엇입니까?



답변

내 머리 위로 두 가지 쉬운 솔루션이 떠 오릅니다.

  1. N 마이크로 컨트롤러의 GPIO에 연결된 라인을. 보드 버전에 따라 높거나 낮게 묶으십시오. 이것은 보드 구성 옵션을 제공합니다. 이것은 마이크로 컨트롤러에서 n 핀을 사용합니다. 정적 전류 소모는 무시할 수 있습니다.
    2

  2. 마이크로 컨트롤러의 ADC에 입력하고 보드 구성에 따라 다른 값의 전압 분배기를 사용하십시오. 단일 마이크로 컨트롤러 핀만 사용합니다. 이는 분배기를 통해 정전류가 흐를 것이라는 단점이있다. 또한 BOM 오류가 발생하기 쉬운 반면 첫 번째 제안은 보드에 고정되어 있습니다.

이 두 가지 제안은 최종 사용자가 “잠금”기능을 열기 위해 쉽게 변경할 수 있다는 단점이 있습니다. 이것은 당신에게 관심사가 아니라 염두에 두어야 할 것입니다.


답변

지금까지 보드 개정을 인코딩하기 위해 높고 낮은 핀이있는 시프트 레지스터를 사용했습니다. 보드의 무언가에 이미 SPI를 사용하고 있다면 읽기가 쉽지 않습니다.

런타임에 ID를 변경할 수 있어야하는 경우 입력을 추적으로 묶는 대신 점퍼를 사용하는 것이 좋습니다.


답변

내가 생각할 수있는 몇 가지 옵션 :-

SMD PADS / O OHM 저항기 링크. 프로세서의 핀 수를 줄이려면 하드웨어 구성에 이진 시스템을 사용하십시오.

점퍼. 보드는 2xN 커넥터 핀으로 점퍼를 오른쪽 핀에 추가하면 구성을 선택할 수 있습니다. 실수는 해결하기가 더 쉽습니다. 점퍼에 따라 약간 비용이 많이 들고 더 많은 보드 공간을 사용합니다.

보드에 EEPROM이 있으면 구성을 메모리에 포함시킬 수 있습니다.

#define 또는 이와 유사한 것을 사용하여 펌웨어 자체를 변경할 수 있습니까? 그런 다음 버전 감지를 위해 보드 공간과 추가 핀이 필요하지 않습니다.


답변

하나의 와이어 EEPROM은 GPIO가 하나만 필요하지만 많은 구성 정보를 저장할 수 있기 때문에 좋은 솔루션입니다. 또한 보드 테스트 중에 마이크로 컨트롤러가 해당 정보를 작성할 수 있습니다 (예 : 교정 데이터). 대부분은 추가 변경을 방지하기 위해 쓰기 방지 핀 또는 일회성 프로그래밍 가능 비트를 가지고 있습니다.

다른 장점으로는 고유 한 일련 번호 보장과 같은 유용한 기능이 있습니다.

이 옵션은 단일 데이터 라인 만 있으면 오실로스코프 프로브 및 배터리와 같은 많은 시스템에서 사용됩니다. EEPROM은 데이터 라인 자체에서 전원을 공급받을 수도 있습니다.

가장 큰 단점은 비용입니다. 비용은 높지 않지만 대량 생산 된 제품의 경우 몇 센트가 중요합니다.

이러한 EEPROM의 예는 1kb를 저장하는 DS2431입니다.


답변