-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Question: Hardware Version Mapping to Board Revision? #21
Comments
So we have done the trick with the GPIO versioning in the past, I don't remember if we ever did the ADC versioning. What we have found that works well is burning in the hardware version directly into the microcontroller. Nordic chips have UICRs - User information configuration registers. In this case we would use two 32-bit registers for two numbers (overkill, but there are many UICRs available). My experience with other microcontrollers is limited in this area, do you know if for example STM32s, TIs and others support something similar? I see this as a better alternative than GPIO and ADC versioning, you save on the BOM, plus sometimes you do not have pins to spare. |
This makes sense and is a good idea. We have extended this in the past to flashing a whole "personality" structure, encoding hardware version, region, date/lot, and other values that are related to mfg.
I think this is an increasingly common processor option, though size varies widely. Sometimes we still use designs with an external EEPROM for such purposes, but increasingly we can use the processor's NVRAM. Regarding specific vendors, I can't say for TI because it has been 10 years or so since I've used one of their processors. I have used ST processors that have "Backup RAM" which is persistent as long as you have battery power (similar to the RTC), but the lineup is so large that I cannot say it is present on every device. Apollo 3 processors also have this. |
Regarding hardware versions:
Does your team encode a hardware revision on the PCB that is readable by software?
The text was updated successfully, but these errors were encountered: