Reset bij openen serial monitor

Software die niet past in bovenstaande onderwerpen
Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Reset bij openen serial monitor

Berichtdoor Gij Kieken » 03 Nov 2017, 16:07

Bij het openen van de serial monitor in de IDE wordt een Reset afgedwongen, identiek aan het drukken op de Reset knop.
Betreft Arduino Uno R3, Nano...(Atmega328p).
Die bordjes met een CH340 of 16u2 aan boord.
Als ik de data sheets bekijk zie je dat de Reset gebeurt middels de Reset knop maar ook via DTR.
Mijn vraag is nu, wat is de specifieke timing voor DTR en of CTS om een Reset te verkrijgen.
Zitten er addertjes onder het gras als je teveel knoeit met de Hoog Laag tijden.
Kortweg als ik een serieel monitor script schrijf bv in Vb6 ,welke tijden moet ik dan handhaven voor die signaal lijnen?
Ik weet wel er staan 100 en 1 toepassingen op het net om een Serieel monitor te openen maar ben nieuwsgierig naar de werking meer bepaald de timing.
Dank bij voorbaat voor de reacties,

Advertisement

Gebruikers-avatar
Berichten: 210
Geregistreerd: 03 Sep 2013, 10:03
Woonplaats: Katwijk ZH

Re: Reset bij openen serial monitor

Berichtdoor baco1978 » 03 Nov 2017, 17:58

het is trouwens ook mogelijk om deze auto-reset uit te schakelen

https://playground.arduino.cc/Main/DisablingAutoResetOnSerialConnection
Met vriendelijke groet Arjan

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: Reset bij openen serial monitor

Berichtdoor Gij Kieken » 03 Nov 2017, 18:01

Hi Baco,
Het is niet de bedoeling om ze uit te schakelen enkel de werking ervan doorgronden .

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Reset bij openen serial monitor

Berichtdoor Koepel » 04 Nov 2017, 01:47

De Arduino IDE doet zowel DTR als RTS. De hardware van het Arduino board mag dus ook RTS gebruiken.

Ik kon helaas niet vinden of ze precies hetzelfde signaal hebben, en hoe lang ze aktief blijven. In het verleden was het idee ooit om RTS alleen voor een upload te gebruiken, en niet tijdens het openen van de seriële monitor. Maar ik weet niet hoe dat nu is.

In principe is een puls van 1 µs al voldoende om de microcontroller te resetten. Misschien dat een iets langere pulse nodig is voor wat electronica die het kan vertragen. Dus 100 µs lijkt me een veilige waarde.
Het is ook mogelijk om de DTR laag te maken, en dat laag te houden tijdens de seriele communicatie. Dan weet je echter niet wanneer de Arduino uit de reset komt en gaat werken.

Je kunt de DTR laag maken met een puls van 1 ms of 10 ms. Dan zit je goed. Dat is wat gemakkelijker te vinden wanneer je een logic analyzer zou gebruiken. Als je later de specificaties hebt gevonden (als die er zijn), dan kun je dat nog aanpassen.

Tussen 1 µs en 10 ms zit een factor tienduizend. Het is maar een reset puls.

Het is zelfs mogelijk om een soft-reset te geven. Je kunt een commando maken om over de seriële verbinding te sturen, en in de Arduino de code asm volatile ("jmp 0"); uit te voeren. Maar alleen domme prutsers doen dat, want een goede sketch heeft dat niet nodig.

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: Reset bij openen serial monitor

Berichtdoor Gij Kieken » 04 Nov 2017, 13:59

Hey Koepel, dank voor de reactie.
Het is niet de bedoeling om soft Reset uit te voeren ook niet om te vermijden dat er Reset gebeurt met het openen van de Serial monitor.
Een logic analyser heb ik niet ,zal er eens over nadenken om een sketch in mekaar te prutsen daarvoor.
Zoals reeds vermeld ben ik nieuwsgierig naar de Timing, maar wil niet dat ik in de Bootloader terecht kom of het zaakje brick of iets dergelijks door mijn gepruts.
Je weet maar nooit dat er hier of daar een addertje onder het gras zit.

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Reset bij openen serial monitor

Berichtdoor Koepel » 04 Nov 2017, 14:36

Een sketch voor een logic analyzer heb ik wel eens geprobeerd. Dat werkt niet echt.
Een logic analyzer kan ook voor 5 of 10 euro.
Bijvoorbeeld sigrok is er voor deze apparaten: https://sigrok.org/wiki/Supported_hardware.
En zo'n apparaat kun je vinden bij AliExpress: https://www.aliexpress.com/item/1set-New-Arrival-USB-Logic-Analyze-24M-8CH-MCU-ARM-FPGA-DSP-debug-tool/32664374037.html.
Misschien is het nodig om al je USB kabels te proberen, want de usb connector in dat apparaatje maakte bij mij nauwelijks contact.

De titel van dit onderwerp is: "Reset bij openen serial monitor".
Maar je vraag is: "Als ik in VB6 een reset geef, hoe lang moet die reset puls zijn en hoe lang moet ik wachten om niet in de bootloader terecht te komen ?".
Is dat je vraag ?

Natuurlijk kom je na een reset in de bootloader terecht. Dus even wachten.
Ik kan daar ook al geen specificaties van vinden. Volgens verschillende beschrijvingen wordt geprobeerd dat binnen een halve seconde te doen, en zou een seconde wachten voldoende zijn.

Dit is de normale reset voor een Arduino Uno met een ATmega328P. Een Leonardo werkt anders.

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: Reset bij openen serial monitor

Berichtdoor Gij Kieken » 04 Nov 2017, 21:35

@Koepel ,het was hier effe druk vandaar de late reactie.
Inderdaad mijn vraag is wat gebrekkig gesteld, ook omdat ik er weinig informatie over vindt.
Op deze manier wil ik eerst meer info verzamelen voordat ik iets bij wijze van spreken verpruts.
Als voorbeeld geef ik Vb6 maar het zal eerder Excel worden met een windows API.
Alvast bedankt,,,

Terug naar Overige Software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 7 gasten