Navigation

    MakerGram Logo

    MakerGram

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

    [Solved] Difference between Hardware and Software PWM.

    Arduino
    2
    3
    220
    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

          • 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
          • 😀 👍 . solved right?

            • read more
          • R

            @Richu-Bini sry guys its my fault i forget to put 'a' in int main (void) 😭😭😭😭😭 .... 2 days to find an 'a'

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