I have a board with a micro STM32G031 contains two USARTs. I want to download firmware through the bootloader. Which UART is used for it? Only UART1 or both?
Related
Unlike Raspberry pi, Arduino doesn't use an OS to run the user code. Which makes me wonder if programming Arduino means programming firmware for the board, because by definition firmware is "what functionalizes a system", so when we program Arduino we are creating a custom device. Be it turning led on and off while pushing a button or blinking or Marlin firmware for Arduino based 3d printers etc.
So my question is: does programming Arduino mean programming the board's firmware and are all Arduino sketches essentially firmware?
By definition, firmware means the permanent software programmed into a read-only memory. So, two categories of firmware are used in Arduino: I) Bootloader II) User's Customize firmware.
Just like we flash to install/update EEPROM firmware of a bios in the PC, we flash the Arduino bootloader in a chip. The Arduino board can be configured as a joystick, for example, by flashing Unojoy firmware.
On the microcontroller (Atmega328) chip, customized firmware (in HEX) is burned on the flash memory. Arduino IDE allows ease of programming the firmware at higher level programming and conversion to hex for loading to the microcontroller.
I would define firmware as a software of a product.
In case of Arduino boards is then the firmware the bootloader and the firmware in the USB chip. But the main application is for you to play and upload sketches which are not firmware.
If you create software for a product based on Arduino board like a 3D printer, a networking co-controller, a special HID device, then your software loaded to the MCU of this device is a firmware.
I want to use ATmega2560 MC, but it manufactured only as surface mount IC which means i must make PCB to use it. I searched for a per-made kit and found Arduino Mega R3 board contains the desired MC. (It contains less I/O pins but that's OK for now). Can i implement my code (without any arduino code) in this board? or should i modify it to work with Arduino, also if it runs in the board will it be the same as normal IC or there will be differences in speed.
The MCU in the Arduino Mega2560 is a stock ATmega2560. There is no need to use the Arduino libraries to program it and no need to use the Arduino tools to communicate with it; avr-gcc and avrdude will work with it as normal. Note that you will need to select the appropriate programmer/protocol in avrdude for the bootloader programmed on the chip if you want to program it via serial rather than ISP.
I have the Arduino UNO board and I want to know if it is possible to use both the USB connection (for exchanging data) and the external jack to power supply it.
I will use the following cable: http://ecx.images-amazon.com/images/I/41OMXaj5cPL.SY355.jpg with a AC-DC 5V adaptor in order to power supply the Arduino. However, I want to use also the USB connection in order to send some data from the computer.
Both will be connected at the same time.
In short, I want the Arduino to be able to run even if the computer is OFF and whenever I open the computer to send data to Arduino from USB connection.
Is this possible? Will the Arduino Uno board support it?
Yes. From the official Arduino website:
Power
The Arduino Uno can be powered via the USB connection or with an external power supply. The power source is selected automatically.
External DC power will override USB power if the Arduino detects it. [Source]
as other said, it is absolutely possible to have both usb and power jack plugged in.
but be aware that if you shut down your computer and turn it on after, when reading the usb port you'll restart the Arduino and might loose important data.
yeah both of them can be used. If you want to upload the code in arduino then simply use the usb cable otherwise keep it on adapter. it wont harm the device.
What I personally do is, I keep on plugging the adapter and remove the usb once I am done with uploading and then test it as normally the usb cable is quite small and I normally work on robots so I need long wires.
if you want just plugs it in, it's ok but Arduino board will chose one and usb has priority to other power source.
********* Very important :*****
if you are controlling other circuits, that are connected to an external power supply, with your Arduino and connecting it to your PC's usb, Arduino will have potential difference and it will cause current flow that will damage your PC and Arduino board. if you want to do such thing, you have to shield your Arduino board from your other circuits that you want to control and they have external power source. this could happen with optocouplers for digital ports, non signal analog ports with shield relays, and complex analog circuits for analog signals
I have an Arduino 2560 and would like to send serial data to my PC. However, I am currently not using the Arduino Bootloader because I wanted to use a program that I wrote for an Atmega644 before (as far as I understood, one has to use the Arduino language when using the Bootloader?).
Does anyone know if what I am trying to do is possible with reasonable effort?
Connection to PC via 2560's serial0 does not depend on bootloader (if you plan connection when main program is running). You need 16u2 running to bridge 5V serial UART to USB or you can of course use any other option (e.g. MAX232 or so) to convert 5V UART to USB or RS232. But in case of RS232 double check baud rate error because of 16MHz crystal for particular baudrate.
2560 bootloader just implements firmware flash.
I want to start a project using arduino microcontroller board. In this project I will use a Mini Thermal Receipt Printer, barcode scanner and the arduino ethernet shield to transfer data to my pc and from my pc. my question is, what arduino board should I buy for such project? is the arduino uno is enough?
The choice of a right Arduino depends on the sort of peripherals you need for example if your barcode reader is SPI enabled and you can't bit-bang SPI then this counts for Hardware SPI usage and as such will take the SPI pins on the UNO which has support for only 1 SPI hardware connection but if you want more SPI connections go for a MEGA ,similarly UART, two wire etc are communication protocols that may be needed by you based on the chipssets you use in your project, also GPIO's are there which just turn on and off.
I will suggest starting off with an Arduino UNO which DIP ATmega328P and get a spare Bootloader acquipped ATmega328P chip standalone in case as a newbie you magic-smoke the chip on the board.