Spørgsmål:
Tænd ved nulstilling med arduino uno kan aldrig ske. Kan dette løses?
user69795
2018-12-10 05:16:52 UTC
view on stackexchange narkive permalink

Når en Arduino Uno er tændt, kan USB-chipens DTR-udgangsstift muligvis (er faktisk) lav i et stykke tid. Dette betyder, at kondensatoren C5 er forbundet fra 328p reset-stift til jord. Således, når der tilføres strøm, holdes nulstillingstappen nede i 10 millisekunder efter opstart (mens C5 oplades).

Således, når 328p starter, er årsagen til nulstilling (MCU-registret) altid "ekstern reset", ikke "power on reset", selv når strømmen tændes.

Dette kan løses ved at fjerne C5 eller åbne "reset en" -jumperen, men derefter nulstilles chippen aldrig ved faldende DTR, ... dvs. bootloading er deaktiveret.

Er der en løsning, der tillader POR og ekstern nulstilling af bootloaderen? Tak!

Brug ikke en Arduino med en '328p.
Problemet er ikke 328p, men det DTR-tilknyttede reset-kredsløb. Hvis USB-chippen f.eks. Tændes med stifterne HIGH, behøver kondensatoren ikke at oplade ved opstart. Desværre ser det ud som om USB-chip på Uno tændes med sin DTR-pin lav eller tredobbelt. Dette får 328p til at rapportere, at den modtog en "ekstern nulstilling", selv ved opstart.
Jeg ved, hvad problemet er. Og svaret er at bruge en Arduino, der ikke bruger den chip. Vælg en med en ATMega32U4. Det har ikke DTR-nulstillingssystemet.
Jeg forbinder en 2n2222 med GND pin og med res pin..så hvis sende 5V eller HIGH pin fra en hvilken som helst pin ved 1k Resister Arduino genstarter ...
Bruger 58927: og på denne måde kan du nulstille chippen med en outputkommando. Spørgsmålet drejer sig imidlertid om, at nulstilling ved tænding af Arduino bliver set af chip som en "ekstern nulstilling" snarere end en "tændt ved nulstilling".
To svar:
PimV
2018-12-10 18:49:58 UTC
view on stackexchange narkive permalink

Se 'DTR-reset' kredsløb for Arduino Uno nedenfor.

Efter opstart, når DTR er lavt (fordi en skitse kommer ind) forårsager den faldende kant en negativ puls på 328P'erne ekstern reset pin på ca. 3 ms (se her). Bredden på denne nulstillingsimpuls er uafhængig af den tid, hvor DTR forbliver lav.

Under tænding er 328P's nulstillingsstift lav, indtil kondensatoren C5 er tilstrækkeligt opladet. Hvor lang tid dette tager afhænger hovedsageligt af Vcc's opstartsadfærd. Når DTR er lav, oplades kondensatoren hurtigere, fordi RN2D (fra kondensator C5 til jord) er omgået.

Men det vigtigste er, at start-reset og ekstern reset har samme effekt (se datablad ): når den stigende spænding passerer en bestemt tærskel, startes en timer, og efter det starter programudførelsen ved 0x0000 eller ved Boot Reset Address (afhængigt af indstillingen af ​​sikringerne). Så i opstartssituationen giver det ingen mening at skelne mellem Power On Reset og Extern Reset.

DTR-reset circuit of Arduino Uno

Tak for dit svar. Der er dog en grund til at skelne mellem Power on Reset og Extern Reset. Optiboot bootloader til Arduino starter brugeren straks på POR. Ved ekstern nulstilling venter den og ser efter bootloading af data fra den serielle port. Således, med den nuværende Arduino UNO-hardware, kan denne funktion af "øjeblikkelig start" i bootloaderen ikke bruges.
user69795
2018-12-11 22:04:11 UTC
view on stackexchange narkive permalink

Jeg har besvaret mit eget spørgsmål.
Jeg tilføjede en pull-UP-modstand på DTR-linjen til VCC. Nu behøver kondensator C5 ikke at blive opladet ved opstart: begge sider af kondensatoren starter ved VCC. Således genkender 328p en power-up som en "power-up reset" i stedet for en "ekstern reset", og min skitse starter efter 75 millisekunder eller deromkring power up. Dybest set er mit kredsløb som PimVs diagram, men med modstanden RN2D til VCC snarere end til jord. I det mindste for Uno ser denne løsning ud til at fungere. Jeg formoder, at dette er afhængig af, at USB-chip (mega16u) er i nulstilling, og det er tre-angivet stifter et stykke tid efter opstart.

RN2D-rullelisten er i den [officielle skematiske oversigt over Arduino Uno Rev. 3] (https://content.arduino.cc/assets/UNO-TH_Rev3e_sch.pdf).
Tak. Jeg kiggede ikke på Rev 3. Ikke underligt, at noden forbliver lav på strømmen.


Denne spørgsmål og svar blev automatisk oversat fra det engelske sprog.Det originale indhold er tilgængeligt på stackexchange, som vi takker for den cc by-sa 4.0-licens, den distribueres under.
Loading...