Kazalo:

Obnovite napačno konfiguriran modul Bluetooth HC-06: 4 koraki
Obnovite napačno konfiguriran modul Bluetooth HC-06: 4 koraki

Video: Obnovite napačno konfiguriran modul Bluetooth HC-06: 4 koraki

Video: Obnovite napačno konfiguriran modul Bluetooth HC-06: 4 koraki
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
Obnovite napačno konfiguriran modul Bluetooth HC-06
Obnovite napačno konfiguriran modul Bluetooth HC-06

Iz čistega maksimalizma sem svoj ukazni modul HC-06 Bluetooth (podrejen) konfiguriral na hitrost prenosa 1, 382, 400 baudov z ukazom AT+BAUDC. Odkar priključeni Arduino ni mogel uporabljati modula s knjižnico SoftwareSerial. Poskušal sem obnoviti hitrost prenosa z Arduinovo strojno serijo (nožici 0 in 1) brez sreče.

Poskusil sem tudi poiskati temo v Googlu, ne da bi našel sprejemljivo rešitev. Morda bi bila uporaba računalniških vgrajenih serijskih vrat rešitev (s preusmeritvijo logične ravni 12V na 3V3), vendar moj računalnik nima teh zastarelih vrat, zato sem moral najti drugo rešitev.

Korak: Kaj boste potrebovali

Kaj boste potrebovali
Kaj boste potrebovali
  • Arudino/Genuino plošča s privzetim Atmel ATMEGA328P-PU MCU (@16MHz).
  • Modul Bluetooth HC-06 posluša 1, 382, 400 baud
  • Osnovni arduino IDE iz

2. korak: Rešitev

Rešitev
Rešitev
Rešitev
Rešitev

Upoštevajte, da sta ta navodila in rešitev narejena za scenarij 1, 382, 400 baud (AT+BAUDC). Rešitev ne bo delovala za nobeno drugo hitrost prenosa. Če želite obravnavati druge primere, glejte korake od 3. koraka.

Rešitev je res preprosta.

  1. VCC pin HC-06 priključite na 5V pin Arduina.
  2. Priključite pin GND HC-06 na pin GND Arduino.
  3. Priključite pin RXD HC-06 na pin 2 Arduina.
  4. Zatič TXD HC-06 ne povežite (ali ga priključite na pin 8).
  5. Naložite skico hc06reset.ino.
  6. Program bo nastavil HC-06 na 115, 200 baud način (AT+BAUD8).
  7. Uporabite obnovljeni modul HC-06 kot prej.

3. korak: Zakulisje…

V zakulisju…
V zakulisju…
V zakulisju…
V zakulisju…

Knjižnica SoftwareSerial, ki je priložena Arduino IDE, lahko prenaša največ 115, 200 bitov na sekundo, zato ni dovolj hitra za komunikacijo na želeni hitrosti 1, 382, 400 baud. Glede na to, da privzeta plošča Arduino deluje na 16MHz, je teoretično nestisnjena največja bitna hitrost 16 000 000 bitov/s. Zaenkrat smo dobri!

Na podlagi mojega razumevanja SoftwareSerial.cpp se zaporedna komunikacija izvede z nastavitvijo izhodnega zatiča High (= 1) ali Low (= 0) glede na zakasnitev (ki izhaja iz hitrosti prenosa) med spremembami.

  • Izhodni pin je privzeto visok (pomeni, da ni podatkov)
  • a se pošlje začetni bit (ki potegne pin nizko)
  • 8 bitov podatkov, poslanih iz LSB v MSB, (+5V, če sta bit 1 in 0 drugače)
  • posreduje se stop bit (ki potegne pin visoko)

Na ta način se 1 bajt prenese z uporabo 10 bitov.

Sporočilo, ki ga moramo poslati, je AT+BAUD8 (brez / n, / r na koncu). Ta ukaz nastavi HC-06 na 115, 200 baud hitrost, ki jo lahko upravljajo običajne knjižnice.

Za pošiljanje bitov s hitrostjo 1, 382, 400 bitov/s imamo za vsak bit 1/1, 382, 400 sekund časa (to je približno 723,38 ns) za vsak bit. Arduino deluje na 16 000 000 Mhz, zato vsak cikel traja 1/16 000 000 sekund - to je 62,5 ns na cikel.

Z uporabo montažne kode AVR lahko z ukazom OUT nastavimo izhodni pin visoko ali nizko in NOP počaka točno en cikel procesorja. Oba ukaza porabita točno en cikel CPU -ja. Tako je čas bita 723,38 ns mogoče pokriti z 11 do 12 arduino navodili na preneseni bit. Ena stvar, ki jo je treba upoštevati: ukaz OUT nastavi celoten bajt hkrati, zato moramo izbrati PORTx, kjer to ni problem. Uporaba ATMEGA328P-PU na primer PORTD (zatiči arduino 0-7) je kot nalašč za to stanje. Po nastavitvi bita mora preteči le pravi čas, ki ga opravi 10 do 11 NOP -ov in to je to.

Podrobnosti o izračunu najdete v spodnji datoteki Excel. Ta datoteka je ustvarila potrebna sestavna navodila za program. Po lepljenju ustvarjene kode je bilo treba narediti le nekaj zamenjav.

4. korak: Nadaljnje branje/ možnosti izboljšanja

  • Morda je mogoče s tehniko, opisano v prejšnjem koraku, narediti hitrejšo knjižnico SoftwareSerial.
  • FedericoK2 je naredil odlično orodje, ki ustvarja obnovitveno kodo HC-06 za vsako možno bitno hitrost. Dostopite do spletnega mesta tukaj: https://tools.krum.com.ar/save_your_hc-06/ Hvala FedericoK2

Priporočena: