“AVRFusesCalc” is an application through which we can easily set the fuse bits and lock bits in the microcontrollers ATmega and ATtiny. To be able to set fuse bits should be installed on the “avrdude”.
“AVRFusesCalc” recognizes the connected microcontroller and loads its settings, regardless of the clock speed. It can also determine what programming protocol, SPI or TPI, is required for communication with the microcontroller.
Fuse bits can be set in two ways.
The first is the so-called “Simplified Fusebits”. If you use this option, you can set external or internal clock speed. You can also enable or disable some of the bits (JTAG, CKDIV8). The important thing is that for 99,99% does not block the microcontroller using “Simplified Fusebits”. Even setting the clock on the frequency of 128 kHz and the division by 8(CKDIV8), does not hinder the program in the correct diagnosis of the microcontroller. This is ideal solution for beginners, who want only to select the clock and have no sufficient knowledge about fuse bits in AVR.
The other way is fuse bits for advanced. By using this option, you must have knowledge about individual bits which are available in a particular microcontroller. Unwise enable or disable a bit can lead to blocking of the microcontroller, and precisely prevent the re-programmed, for example disable the reset line (RSTDISBL). Depending on the connected microcontroller we have access to the type of Low, High or Extended fuse bits and the Lock bits. Disable the particular bit comes down to tick over field on the name of interesting bit. In addition to setting specific bits by clicking checkbox, you can use the drop-down lists for setting bits, for example, in order to select the clock speed.
Let's now go to the description, of how to use the program.
The first thing we need to do after starting the application for the first time, is to set preferences. To do this, select "AVRFusesCalc - Preferences ..." from the main menu.
We first sets the full path to "avrdude". To do this, press "Choose ..." and use the dialog box to indicate where the file is located. Since version 1.2, AVRFusesCalc allows the use of "avrdude" from the Arduino package. Thanks to this, you do not need to install the whole AVR-GCC environment, which can be quite cumbersome for beginners, and you only need to download and install the Arduino application. After installing Arduino, a folder named "Arduino15" will be created on the user's account in the library folder, and you should be searching this folder, for finding "avrdude". Here is a small note, this folder is created during the first launch of Arduino.app and there is only a file with preferences in it. If you want to use the "avrdude" built in Arduino, you need to upgrade your libraries. For this purpose, in the Arduino application, select from the menu: Tools -> Boards -> Boards Manager. In the window that appears, select "Arduino AVR Boards by Arduino", it will probably be in the first position. Now you have to choose the version and either install it, or update. It is only after this operation that the necessary files will appear in the "Arduino15" folder. Now you will be able to use "avrdude" from AVRFusesCalc. The example access path might look like this: /Users/UserName/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/bin/avrdude. The path is best to select by a dialog box.
The next step it setting "Programmer". The choose device from the drop-down list. If the programmer we chose uses the virtual serial port, we need to determine the speed at which the communication should take place. We do this by setting the desired speed in "Baud Rate". If we use the USBAsp programmer, we leave the "DEFAULT" value.
The last parameter to set is "Port". Here we must indicate the port that "avrdude" should use when communicating with the programmer. It is known that on the Mac we have only a physical USB port, and we choose it if we use a programmer to which drivers are not required, e.g. USBAsp. If we had to install the drivers, then a virtual port was installed with them, so choose the right one for our programmer from the drop down list. In order for such a port to be visible on the list, you should have a USB programmer connected. If everything is set correctly, choose "SAVE".
Depending on what microcontroller will be read, the appropriate options will appear. In the fields at the top, the values of fusebits in the form of HEX are visible. Next is the name of the detected microcontroller and its signature. The next section is the place where you choose the clock speed. The choice we have here depends on the options available in the microcontroller. Only internal (1) and internal or external (2) can be available. Below is a field (3) in which it is possible to enable or disable some bits. Here too, the choice depends on the type of microcontroller. The (4) button gives you the option to restore the factory fusebit settings. The button (5) to save fusebits to the microcontroller.
Among beginners, it often happens that they set a low clock frequency. Additionally leaving activated bit (CKDIV8) which divides the frequency, and then after saving fusebits in the microcontroller, forgetting that need to enable slowSCK in the programmer. Well, we have a "locked" microcontroller ;). As I have already mentioned, in this window it is not possible for the set fusebits to block the microcontroller. Even when the situation as described above happens, the program will handle it. You do not need to physically connect the slowSCK jumper on the USBAsp programmer, the microcontroller will be recognized and the fusebits will be read. Of course, if we set the external clocking, we must remember to connect "quartz" to pin microcontroller's.
The timing frequencies that are available in this window, will always set the time of the first command after switching on the microcontroller for 65ms. So if we try to read the microcontroller fusebit which would have a different start time set, a message will be displayed informing about it. After pressing "OK" in the message window, all available timing options for the given microcontroller will be displayed, but none will be selected. If you want to keep the microcontroller start time, you not set the frequencies in this window.
Fuse / Lock Bits AVR.
Fusebits can be set by switching specific bits (1) on / off. Additionally, when the microcontroller has optional bits, you can selected specific values of these bits from the drop-down lists (2). You can also set lockbits (3), and erase the microcontroller's memory along with resetting the lockbits (4). Uploading and reading the microcontroller batch file is also possible (5). In the text box (6) are displayed messages from "avrdude". As a reminder I will only write, that the bit turned on, in the case of fusebits and lockbits, has the value 0 and bit turned off has the value 1. Setting the optional bits by means of controls is one hundred percent safe. In the situation when the program detects that a given microcontroller has no setting which was selected, it will display an appropriate message and restore the value of fusebits to the last correct one. If you want to load or read a microcontroller batch file, first select the file from disk to be uploaded, or indicate the file in disk which you want to save the batch file. This is done using the dialog box, separately for FLASH and EEPROM. Only after selecting / indicating a file, buttons will appear that will allow the recording or reading from the microcontroller. However, to perform one of these operations, select the checkbox, depending on the type of memory for which the operation is to be performed. If no any checkbox is selected, the read / write will not be possible.
The application has been tested with the programmer USBAsp and Arduino UNO. Please advise how applications work with other programmers.
System requirements: Apple computer with an Intel processor, operating system min. macOS 10.11
- v 1.2.1 (06.2018)
Repair bug in serial port communication.
- v 1.2.0 (06.2018)
The possibility of using "avrdude" from Arduino app has been added. "avrdude" should be search in the "Arduino15" folder, in folder Library on user account.
- v 1.1.5 (01.2018)
Prepared for macOS 10.13 (HighSierra)
First release in AppStore.
- v 1.0.3 (10.2016)
Prepared for macOS 10.12 (Sierra)
Fixed bug preferences panel.
- v 1.0.2 (03.2016)
Added new device: ATmega 48PB, ATmega 88PB, ATmega 168PB, ATtiny 28, ATmega 32M1, AT09s2333.
Supports "avrdude" version 6.3.
Fixed a bug preferences file on different users accounts.
- v 1.0.1 (02.2016)
Added manual entry path to "avrdude".
Fixed a bug that prevented the correct reading fusebits when ussing app on different users accounts.
- v 1.0 (01.2016)