Bootloader STm32 - microcontroller

I trying to flash using the internal bootloader(system memory) of stm32L073Rz nucleo board. I have read the documents AN2606, AN3155 and set the BOOT0 pin=1.By default USART2 on nucleo board is accessible by stlink interface and the same USART2 is used by the bootloader to listen for data, I using GTK term in ubuntu to connect via /dev/ttyAMC0(USART2) but unable to receive an ACK from the device, as mentioned in AN3155 I am sending 0X7F to the device. is this procedure works or are there any better alternatives to communicate with the bootloader?

It sounds like you're trying to load your program via the target MCU's internal bootloader via UART2. Is that right? To do that you may have to disconnect the board's default connection between the target's UART2 and the integrated ST-Link MCU (i.e., you'll be bypassing the ST-Link MCU). See the UART Communication section in the board's User Manual (UM1724) and this excerpt.
The USART2 interface available on PA2 and PA3 of the STM32
microcontroller can be connected to ST-LINK MCU, ST morpho connector
or to Arduino connector. The choice can be changed by setting the
related solder bridges. By default the USART2 communication between
the target STM32 and ST-LINK MCU is enabled, in order to support
virtual COM port for Mbed™ (SB13 and SB14 ON, SB62 and SB63 OFF). If
the communication between the target STM32 PA2 (D1) or PA3 (D0) and
shield or extension board is required, SB62 and SB63 should be ON,
SB13 and SB14 should be OFF.
However, typically one would simply program the target MCU using the integrated ST-Link/V2-1. This is how the board is configured by default. In other words, it's not necessary to use the internal bootloader because this board has an intergrated ST-Link, which is easier to use.

Related

Atmel ICE C initial connection problems

I have ATMEL ICE C initial connection problems - it cannot read device signature, because of the target board voltage isn't between range of 1.8 to 5.5V. It has measured by the Atmel Studio as 1.3V (when target board is powered by the USB connector) or 0.3V (when USB disconnected from target).
It'a a brand new device, and i never used it before, may be i did something wrong?
I had used before AVR ISP handmade by myself, and had used previously programmed target board for this experiment, to avoid possibility, that board is dead. The target is works and blinking heart beat.
What i has done -
1.Connect the target board to the ICE programmer.
2.power target board by USB.
3.power programmer by USB from PC USB port.
4.open "device programming" tab in AS 7.
5.Make all settings for my chip atmega328p
6.press "apply" then 'read'
7.get err msg that voltage is too low.
(while i had measured it directly, by the digital voltmeter on pins +5V and GND on target
board, it's about 4.5V, same as in ISP connector - measured on 2 and
6 pins.)
=======================================================
#markus-nm where did you take your measurements?
i had measured on pin 2 and 6 of ISP connector and between pin +5V and GND on Arduino Nano board.
What reference was used?
i had used GND pin on target board for the reference.
Did you use the same USB Host for ISP and power?
no, power to target board was from the wall socket USB charger, AND power to Atmel ICE is from personal computer.
If not, did you connect the grounds?
no, but i guess that grounds are already connected on the target board.
Some links to your chip, your board and ISP would be helpful.
ATMEL-ICE-C https://www.microchip.com/en-us/development-tool/ATATMEL-ICE
ARDUINO NANO PRO https://store.arduino.cc/products/arduino-nano
If it's a custom PCB, provide some schematics. Show a wiring diagram of what you did.
no, i had used the standard Nano board (may be not original, but clone, but it is definitely working now, because it can be programmed by the AVRDUDE program and work.)
The Atmel-ICE, by design, has a lot of different ways to hook up the programming connector. Often when I see problems like this it's because the wrong connector is used. Keep in mind the programmer itself has both an AVR and a SAM port. For the Arduino Nano Pro, make sure it's plugged into the AVR port. After that, ensure you're using the correct programming connector on the adapter board that comes with the Atmel-ICE and that it's oriented correctly on the Nano's header.
If that all fails then something is broken.

computer AND esp8266 WITH arduino

how the bellow connection can be done , what the protocol that must be used to send bytes from computer through it's serial WiFi and receive the bytes in Arduino using ESP8266-01 WiFi Serial Transceiver Module.
computer AND esp8266 WITH arduino
It depends on what you want to accomplish, and what roles you want the computer and the arduino/esp combi to play. You can put the ESP in station or access point mode (or mixed), and have it talk to the arduino via the serial interface. The communication with the PC will indeed go via wifi/tcp protocol, but depending on your specific requirements you will have to decide one the roles. Then you can make the ESP a web client or a web server, mainly depending on the direction of the flow of information.
I assume you want to query the Arduino from the PC, in which you can send a HTTP/GET request from the PC to a simple web server on the ESP.
There are various examples in the Arduino examples that do just that to give you a start, available when you install the ESP library in the Arduino IDE, see: https://github.com/esp8266/Arduino
HTH

Underlying hardware beneath virtual Com port

I have a device connected to USB port via USB cable to my PC and in device Manager it says - > "XYZ corp Virtual COM port (COM A)"
Is this is same as Serial Com Port.?What is the underlying hardware under it both at device side and Host Side - a Uart or a USB or both at either end respectively?
It sounds like your USB device uses a driver that provides a serial port interface inside your computer. This means that other software can use the serial port APIs that Windows provides to connect to it and use it as a serial port. That software doesn't need to know the details of your USB device; it just needs to know about using serial ports in Windows. Windows ships with a driver that is often used to do this, and that driver is named usbser.sys. Your device might be using usbser.sys or it might be using some other driver.
The serial data is transferred via your computer's USB port and a USB cable. If you look at the signals on the USB cable, you will not see typical serial signals: you will see regular USB packets that just happen to be carrying that data needed for a serial port.
The USB device on the end of that cable might then translate that data into serial signals and act like a normal serial port, or that data might just be used directly inside the device. Without a link to the product in question, it is hard to tell you more than that.

Arduino 2006 how to connect to my laptop?

I have borrowed an Arduino BT-V06 (analogue) from my college IT storage department.
At home I am trying to do some research on this for subsequent work I am going to perform with this Arduino later on. As this model is a 2006 version; my question is, how do I connect it to my laptop? Some sort of adapter? or perhaps shield it with a newer model that has a usb-port?
Because I would like to have it connected to my laptop in order to try out some codes on it.
Thank you very much for your time!
-M
There's at least two options. First, it's set up to be programmed over Bluetooth. So if you have Bluetooth on your laptop, you can connect the two wirelessly. Pins 0 and 1, per the documentation, are TTL serial transmit and receive pins (which are also used for Bluetooth communications), so if you AREN'T connecting via Bluetooth, you could connect a serial to USB adapter so you can connect to your laptop via USB. This reference has this to also say:
"The on-board serial communication between the bluetooth module and the Arduino sketch (running on the ATmega328) needs to be at 115200 baud (i.e. call Serial.begin(115200) in your setup() function). Communication between the bluetooth module and the computer can be at any baud rate.
Communication between the BT module and the computer can be temperamental. You might want to open the serial monitor a couple of seconds after resetting the board. The text of the Arduino getting started guide is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the guide are released into the public domain."

Programming GSM Module to send SMS

I would like to use a standalone GSM Module that can interface with other systems like TV, AC, Fridge, etc.. via an SMS or a Call
For example:
1. If the GSM Module is hooked up to a Smoke Sensor, when there is an alert the GSM Module should be able to send as SMS.
I think there needs to a hardware component (that connects to the Smoke Sensor and GSM Module) where I can install program to send a SMS message when there is a signal from Smoke Sensor.
I would like to know on what this hardware component can be, what programming languages can be used and how the hardware component can interface with various devices.
Thanks!
An easy way to get a programmable GSM module is to get a cheap Android smart phone. For connectivity, you will need to build your own solutions unless the sensors already have some interface. You may want to look into Arduino microcontrollers for that. You can interface to the Android device using Wifi, Bluetooth, USB (newer devices support USB host mode, the cheap ones may not) or the audio jack.
Best solution depends on your resources and how many devices you need.
If you have big budget and hardware and software designers, then you could use naked GSM/UMTS module from some m2m module vendor like Cinterion or Telit. And own MCU for controlling it.
But if you need only few devices, then you could use some programmable GSM/UMTS terminal module, which contain all needed stuff: case, sim-holder, antenna connector, some GPIOs and modem.
For example Cinterion TC65T is this kind of terminal module. It can run a java (J2ME) program. Java programs of TC65T have access to GPIOs, which can be connected to smoke sensor for example. Java programs can also send SMS messages.
The Cinterion TC65T terminal was a 2G cellular device with a Java Virtual Machine to allow you to run J2ME 3.2 applications. Now days you could use a Terminal such as the Cinterion EHS6T-USB which is a 2G and 3G device with Java.
You might find it easier to get hold of a Cinterion "concept board" which has a Java enabled 2G and 3G cellular module on there along with an interface for Arduino style shields.
http://www.gemalto.com/m2m/development/cinterion-concept-board
It runs from a USB lead, plugged into you laptop or PC and need no other external power supply for development. I used one of these connected to a battery, and an Arduino relay board plugged in, to be able to switch our Christmas tree lights on and off via SMS.

Resources