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 |