MakerGram Logo

    MakerGram

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags
    • Users
    • Groups

    [Solved] Difference between Hardware and Software PWM.

    Arduino
    2
    3
    1009
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      Richu Bini last edited by salmanfaris

      What is the difference between hardware pwm and software pwm

      1 Reply Last reply Reply Quote 0
      • kowshik1729
        kowshik1729 last edited by

        @Richu-Bini thanks for posting the question . just for a brief about pwm, pulse width modulation technique is a method to change the duty cycle of a wave. Which means you can determine how much time a signal must be on or off.

        So, coming to the question, software pwm and hardware pwm is just two different ways of producing same result. In software(referring Arduino here) you'll just write a value between 0 to 255 inorder to determine duty cycle percentage. For example 0 is 0% duty cycle which means the cycle is on for 0% of whole time, similarly 127 means 50% of time cycle will be on and 255 means signal will be on for ever. This is regarding software.

        Coming to hardware, you can generate a pwm signal using very simple passive component, called as potentiometer and 555 timer IC by using 555 timer as bistable multivibrator(The generated output will have two stable states 0 and Vmax, hence the name bistable) and changing the resistance using a potentiometer generates different duty cycles. This is the difference between hardware and software pwm. Please let me know if I haven't explained what you have expected.

        1 Reply Last reply Reply Quote 0
        • R
          Richu Bini last edited by

          thank youu

          1 Reply Last reply Reply Quote 1
          • First post
            Last post

          Recent Posts

          • @abijith Thanks for sharing 🙌.

            • read more
          • It is the simple basic project created using Arduino. LED (Light Emitting Diode) is an electronic device, which emits light when the current passes through its terminals. LED's are used in various applications. It is also used as an ON/OFF indicator in different electronic devices.

            In this project, we will connect the LED to the digital pin on the Arduino board. The LED will work as a simple light that can be turned ON and OFF for a specified duration.

            Video Link :

            What is Arduino and how to use Arduino | Write your first program Now! | Malayalam

            • read more
          • After reinstalling the portenta board file and restarting the computer, solved the problem.

            01fe285c-50ff-4f9a-9a9a-46e2f3b0c555-image.png

            • read more
          • Trying to run blink on portenta but getting the error?

            db930ad2-3abc-4e6b-8784-25c9f1399016-image.png

            error message:

            Arduino: 1.8.13 (Windows 10), Board: "Arduino Portenta H7 (M7 core)" C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\Faris\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\Faris\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Faris\Documents\Arduino\libraries -fqbn=arduino:mbed:envie_m7 -vid-pid=2341_025B -ide-version=10813 -build-path C:\Users\Faris\AppData\Local\Temp\arduino_build_650727 -warnings=none -build-cache C:\Users\Faris\AppData\Local\Temp\arduino_cache_409352 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arm-none-eabi-gcc.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.arm-none-eabi-gcc-7-2017q4.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.bossac.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino2 -prefs=runtime.tools.bossac-1.9.1-arduino2.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino2 -prefs=runtime.tools.openocd.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\openocd\0.10.0-arduino13 -prefs=runtime.tools.openocd-0.10.0-arduino13.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\openocd\0.10.0-arduino13 -prefs=runtime.tools.dfu-util.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\dfu-util\0.9.0-arduino2 -prefs=runtime.tools.dfu-util-0.9.0-arduino2.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\dfu-util\0.9.0-arduino2 -verbose C:\Users\Faris\AppData\Local\Temp\arduino_modified_sketch_49117\Blink.ino C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\Faris\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\Faris\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Faris\Documents\Arduino\libraries -fqbn=arduino:mbed:envie_m7 -vid-pid=2341_025B -ide-version=10813 -build-path C:\Users\Faris\AppData\Local\Temp\arduino_build_650727 -warnings=none -build-cache C:\Users\Faris\AppData\Local\Temp\arduino_cache_409352 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arm-none-eabi-gcc.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.arm-none-eabi-gcc-7-2017q4.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.bossac.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino2 -prefs=runtime.tools.bossac-1.9.1-arduino2.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino2 -prefs=runtime.tools.openocd.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\openocd\0.10.0-arduino13 -prefs=runtime.tools.openocd-0.10.0-arduino13.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\openocd\0.10.0-arduino13 -prefs=runtime.tools.dfu-util.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\dfu-util\0.9.0-arduino2 -prefs=runtime.tools.dfu-util-0.9.0-arduino2.path=C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\dfu-util\0.9.0-arduino2 -verbose C:\Users\Faris\AppData\Local\Temp\arduino_modified_sketch_49117\Blink.ino Using board 'envie_m7' from platform in folder: C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.3.1 Using core 'arduino' from platform in folder: C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\hardware\mbed\1.3.1 Detecting libraries used... "C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/defines.txt" "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/cxxflags.txt" -mcpu=cortex-m7 -mfloat-abi=softfp -mfpu=fpv5-d16 -w -x c++ -E -CC -DARDUINO=10813 -DARDUINO_PORTENTA_H7_M7 -DARDUINO_ARCH_MBED -DARDUINO_LIBRARY_DISCOVERY_PHASE=0 "-IC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\cores\\arduino" "-IC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7" "-IC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\cores\\arduino" "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/includes.txt" "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727\\sketch\\Blink.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE Generating function prototypes... "C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/defines.txt" "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/cxxflags.txt" -mcpu=cortex-m7 -mfloat-abi=softfp -mfpu=fpv5-d16 -w -x c++ -E -CC -DARDUINO=10813 -DARDUINO_PORTENTA_H7_M7 -DARDUINO_ARCH_MBED -DARDUINO_LIBRARY_DISCOVERY_PHASE=0 "-IC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\cores\\arduino" "-IC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7" "-IC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\cores\\arduino" "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/includes.txt" "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727\\sketch\\Blink.ino.cpp" -o "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727\\preproc\\ctags_target_for_gcc_minus_e.cpp" -DARDUINO_LIB_DISCOVERY_PHASE "C:\\Program Files (x86)\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727\\preproc\\ctags_target_for_gcc_minus_e.cpp" Compiling sketch... "C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/defines.txt" "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/cxxflags.txt" -MMD -mcpu=cortex-m7 -mfloat-abi=softfp -mfpu=fpv5-d16 -DARDUINO=10813 -DARDUINO_PORTENTA_H7_M7 -DARDUINO_ARCH_MBED -DARDUINO_LIBRARY_DISCOVERY_PHASE=0 "-IC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\cores\\arduino" "-IC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7" "-IC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\cores\\arduino" "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/includes.txt" "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727\\sketch\\Blink.ino.cpp" -o "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727\\sketch\\Blink.ino.cpp.o" Compiling libraries... Compiling core... Using previously compiled file: C:\Users\Faris\AppData\Local\Temp\arduino_build_650727\core\variant.cpp.o Using precompiled core: C:\Users\Faris\AppData\Local\Temp\arduino_cache_409352\core\core_arduino_mbed_envie_m7_e26c816eecbb9bfaaa432fd6b53eb31d.a Linking everything together... "C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" "-LC:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727" -Wl,--gc-sections -w -Wl,--as-needed "@C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/ldflags.txt" "-TC:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/linker_script.ld" "-Wl,-Map,C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727/Blink.ino.map" --specs=nosys.specs -o "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727/Blink.ino.elf" "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727\\sketch\\Blink.ino.cpp.o" "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727\\core\\variant.cpp.o" -Wl,--whole-archive "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727/..\\arduino_cache_409352\\core\\core_arduino_mbed_envie_m7_e26c816eecbb9bfaaa432fd6b53eb31d.a" "C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.3.1\\variants\\PORTENTA_H7_M7/libs/libmbed.a" -Wl,--no-whole-archive -Wl,--start-group -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys -Wl,--end-group "C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-objcopy" -O binary "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727/Blink.ino.elf" "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727/Blink.ino.bin" "C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-objcopy" -O ihex -R .eeprom "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727/Blink.ino.elf" "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727/Blink.ino.hex" "C:\\Users\\Faris\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-size" -A "C:\\Users\\Faris\\AppData\\Local\\Temp\\arduino_build_650727/Blink.ino.elf" Sketch uses 130248 bytes (16%) of program storage space. Maximum is 786432 bytes. Global variables use 57280 bytes (10%) of dynamic memory, leaving 466344 bytes for local variables. Maximum is 523624 bytes. Forcing reset using 1200bps open/close on port COM12 PORTS {COM12, } / {} => {} PORTS {} / {} => {} PORTS {} / {COM13, } => {COM13, } Found upload port: COM13 C:\Users\Faris\AppData\Local\Arduino15\packages\arduino\tools\dfu-util\0.9.0-arduino2/dfu-util --device 0x2341:0x035b -D C:\Users\Faris\AppData\Local\Temp\arduino_build_650727/Blink.ino.bin -a0 --dfuse-address=0x08040000:leave dfu-util 0.9 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2020 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ Invalid DFU suffix signature A valid DFU suffix will be required in a future dfu-util release!!! Cannot open DFU device 2341:035b Cannot open DFU device 2341:035b No DFU capable USB device available An error occurred while uploading the sketch

            • read more
          • Did anyone use Arduino Portenta H7 with Arduino IOT Cloud? It is listed on IOT Cloud Page but it's not supporting!

            When I was trying to connect the board with the, it says The device found is not compatible

            337f42fb-4020-487c-b34e-a7529c6f884b-image.png

            But it's listed in the supporting board page.

            adb3a569-1870-4258-91a7-75653da826c9-image.png

            also mentioned in the portenta page .

            10c67a19-312b-41df-8497-94e8591d4b1d-image.png

            https://www.arduino.cc/en/IoT/HomePage https://store.arduino.cc/usa/portenta-h7

            • read more
          By MakerGram | A XiStart Initiative | Built with ♥ NodeBB
          Copyright © 2021 MakerGram, All rights reserved.
          Privacy Policy | Terms & Conditions | Disclaimer | Code of Conduct