Files
bacnet_stack/ports/bdk-atxx4-mstp/fuses.c
T
Kari Argillander cb243c36a8 Improve SPDX identifier coverage (#716)
* Change MIT license texts to SPDX-License-Identifier

SPDX-License-Identifier is much easier to understand and grep than
license text so use that instead.

* Change GPL exception license texts to SPDX-License-Identifier

SPDX-License-Identifier is much easier to understand and grep than
license text so use that instead.

* Change misc license texts to SPDX-License-Identifier

There are some external code in repo which are not licenses as most of
the stuff in this repo. We still want every file to have SPDX identifier
to easily grep licenses.

* Add currently used license files

Even though Bacnet-Stack is using SPDX identifiers we still need to give
those license files with source. For this reason add all license files
to license/ folder.

SPDX has also files which would make same thing but this is style which
example Linux kernel is using and it is quite clear so I choose that one
for now.

I choosed not yet bring CC-PDDC as that is not right license for those
files.

---------

Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
2024-08-12 15:33:02 -05:00

77 lines
3.1 KiB
C

/************************************************************************
*
* Copyright (C) 2009 Steve Karg <skarg@users.sourceforge.net>
*
* SPDX-License-Identifier: MIT
*
*************************************************************************/
#include "hardware.h"
#if defined(__GNUC__) && (__GNUC__ >= 4)
/* AVR fuse settings for ATmega644P */
FUSES = {
/* == LOW FUSE or LFUSE settings == */
/* CKSEL3..0- Clock Select Configuration
CKSEL3 CKSEL2 CKSEL1 CKSEL0 Description
1 1 1 x 1111-1000=Low Power Crystal Oscillator
0 1 1 x 0111-0110=Full Swing Crystal Oscillator
0 1 0 x 0101-0100=Low Frequency Crystal Oscillator
0 0 1 1 Internal 128kHz RC Oscillator
0 0 1 0 Calibrated Internal RC Oscillator
0 0 0 0 External Clock]
SUT1..0 - Clock Start Up Time selection
If CKSEL0=0, then SUT1..0 is 14CK+: 00=4.1ms,01=65ms,10=BOD,11=4.1ms
If CKSEL0=1, then SUT1..0 is 14CK+: 00=65ms,01=BOD,10=4.1ms,11=65ms
BOD means wait until internal Brown Out Detect Voltage is sufficient.
*/
/* CKOUT: clock output on CKOUT pin */
/* CKDIV8: divide clock by 8 */
/* External Ceramic Resonator - configuration */
/* Full Swing Crystal Oscillator Clock Selection */
/* Ceramic resonator, slowly rising power 1K CK 14CK + 65 ms */
/* .low = (FUSE_CKSEL3 & FUSE_SUT0 & FUSE_SUT1), */
/* Crystal Oscillator, 16K CK + 14CK + BOD Enabled */
/* note: fuses are enabled by clearing the bit, so
any fuses listed below are cleared fuses,
or are CKSEL or SUT bits that are zero. */
.low = (FUSE_CKSEL3 & FUSE_SUT1),
/* == HIGH FUSE or HFUSE settings == */
/* BOOTRST: Enable Bootloader Reset Vector */
/* EESAVE: Enable preserve EEPROM on Chip Erase */
/* WDTON: Enable watchdog timer always on */
/* SPIEN: Enable Serial Program and Data Downloading */
/* JTAGEN: Enable JTAG */
/* OCDEN: Enable OCD */
/* BOOTSZ configuration:
BOOTSZ1 BOOTSZ0 Boot Size
------- ------- ---------
1 1 512
1 0 1024
0 1 2048
0 0 4096
*/
/* note: fuses are enabled by clearing the bit, so
any fuses listed below are cleared fuses,
or are BOOTSZ bits that are zero. */
.high = (FUSE_BOOTSZ1 & FUSE_EESAVE & FUSE_SPIEN & FUSE_JTAGEN),
/* == EXTENDED FUSE or EFUSE settings == */
/* BODLEVEL configuration
BODLEVEL2 BODLEVEL1 BODLEVEL0 Voltage
--------- --------- --------- --------
1 1 1 disabled
1 1 0 1.8V
1 0 1 2.7V
1 0 0 4.3V
*/
/* note: fuses are enabled by clearing the bit, so
any fuses listed below are cleared fuses,
or are BODLEVEL bits that are zero. */
/* Brown-out detection VCC=4.3V */
.extended = (FUSE_BODLEVEL1 & FUSE_BODLEVEL0)
};
/* AVR lock bits - unlocked */
LOCKBITS = LOCKBITS_DEFAULT;
#endif