31 lines
1.6 KiB
ReStructuredText
31 lines
1.6 KiB
ReStructuredText
|
.. _hw_version_detect:
|
||
|
|
||
|
Automatic Hardware Version detection
|
||
|
====================================
|
||
|
|
||
|
Functional Description
|
||
|
----------------------
|
||
|
|
||
|
In order to automatically select the available hardware features, the firmware checks the PCB's version
|
||
|
using vertain pins on the microcontroller.
|
||
|
|
||
|
The hardware revision is represented by the enum type :c:enum:`hw_revision`. A call to :c:func:`get_pcb_hardware_version` retrieves the revision.
|
||
|
When the function is called for the first time, it activates pull-up resistors on pin numbers :c:macro:`HW_REV_DETECT_PIN_LOW` to :c:macro:`HW_REV_DETECT_PIN_HIGH`
|
||
|
on port :c:macro:`HW_REV_DETECT_GPIO` and reads in the binary number.
|
||
|
|
||
|
The revision is set by externally connecting the pins to ground. The bit pattern read from the port is inverted and then checked internally to derive the hardware version.
|
||
|
After the version is read for the first time, it is stored internally and subsequent calls to :c:func:`get_pcb_hardware_version` only retrieve the internally stored value to reduce the overhead of the function.
|
||
|
|
||
|
Hardware Version Dependent Features
|
||
|
-----------------------------------
|
||
|
|
||
|
- The settings module searches for an external EEPROM on the SPI interface to store some settings, like the calibration. This is enabled for all versions higher or equal to ``v1.3``.
|
||
|
- The safety controller enables the acknowledging of the external watchdog for all versions higher or equal to ``v1.3``.
|
||
|
- The oven driver has a separate safety enable for the solid state relay which it enables on all versions higher or equal to ``v1.3``.
|
||
|
|
||
|
|
||
|
API Documentation
|
||
|
-----------------
|
||
|
|
||
|
.. doxygengroup:: hw-version-detect
|
||
|
:project: Reflow Controller Firmware
|