Obsah:

Obnovte nesprávne nakonfigurovaný modul Bluetooth HC-06: 4 kroky
Obnovte nesprávne nakonfigurovaný modul Bluetooth HC-06: 4 kroky

Video: Obnovte nesprávne nakonfigurovaný modul Bluetooth HC-06: 4 kroky

Video: Obnovte nesprávne nakonfigurovaný modul Bluetooth HC-06: 4 kroky
Video: Проводные, Беспроводные блютуз наушники - сравнение, какие для чего нужны, Led Bluetooth VJ033 отзыв 2024, Júl
Anonim
Obnovte nesprávne nakonfigurovaný modul Bluetooth HC-06
Obnovte nesprávne nakonfigurovaný modul Bluetooth HC-06

Z čistého maximalizmu som nakonfiguroval svoj modul HC-06 Bluetooth (slave) na prenosovú rýchlosť 1, 382, 400 baudov pomocou príkazu AT+BAUDC. Odkedy je k nemu pripojené Arduino, nebolo možné používať modul s knižnicou SoftwareSerial. Pokúsil som sa obnoviť prenosovú rýchlosť pomocou hardvérového seriálu Arduino (piny 0 a 1) bez šťastia.

Tiež som sa pokúsil vygoogliť tému bez toho, aby som našiel schodné riešenie. Riešením by mohlo byť použitie vstavaného sériového portu počítača (s logickým radením úrovní na 12 až 3 V3), ale môj počítač nemá tento zastaraný port, takže som musel prísť s iným riešením.

Krok 1: Čo budete potrebovať

Čo budete potrebovať
Čo budete potrebovať
  • Doska Arudino/Genuino s predvoleným MCU Atmel ATMEGA328P-PU (@16 MHz).
  • Modul Bluetooth HC-06 počúvajúci 1, 382, 400 baudov
  • Základné IDE arduina z

Krok 2: Riešenie

Riešenie
Riešenie
Riešenie
Riešenie

Upozorňujeme, že tento návod a riešenie sú navrhnuté pre scenár 1 382 400 baudov (AT+BAUDC). Riešenie nebude fungovať pri iných prenosových rýchlostiach. Ak sa chcete zaoberať inými prípadmi, postupujte podľa krokov od kroku 3.

Riešenie je skutočne jednoduché.

  1. Pripojte kolík VCC HC-06 k 5V kolíku Arduino.
  2. Pripojte GND pin HC-06 k GND pinu Arduina.
  3. Pripojte pin RXD HC-06 k pinu 2 Arduino.
  4. Nechajte kolík TXD HC-06 neodpojený (alebo pripojte na pin 8).
  5. Nahrajte skicu hc06reset.ino.
  6. Program nastaví HC-06 do režimu 115 200 baudov (AT+BAUD8).
  7. Obnovený modul HC-06 používajte ako predtým.

Krok 3: Zo zákulisia…

V zákulisí…
V zákulisí…
V zákulisí…
V zákulisí…

Knižnica SoftwareSerial, ktorá je dodávaná s Arduino IDE, je schopná prenášať maximálne 115 200 bitov za sekundu, takže nie je dostatočne rýchla na komunikáciu s požadovanou prenosovou rýchlosťou 1 382 400 400 bitov. Vzhľadom na to, že predvolená doska Arduino beží na 16 MHz, teoretická maximálna nekomprimovaná bitová rýchlosť je 16 000 000 bitov/s. Zatiaľ sme dobrí!

Na základe môjho chápania SoftwareSerial.cpp sa sériová komunikácia uskutočňuje nastavením výstupného kolíka High (= 1) alebo Low (= 0) vzhľadom na oneskorenie (ktoré pochádza z prenosovej rýchlosti) medzi zmenami.

  • Výstupný pin je v predvolenom nastavení vysoký (znamená to, že nie sú k dispozícii žiadne údaje)
  • a vyšle sa štartovací bit (ktorý vytiahne kolík nízko), potom
  • 8 bitov dát prenášaných z LSB do MSB, (+5 V, keď bit 1 a 0 inak) potom
  • je odoslaný stop bit (ktorý vytiahne kolík vysoko)

Týmto spôsobom sa 1 bajt prenesie pomocou 10 bitov.

Správa, ktorú musíme odoslať, je AT+BAUD8 (bez / n, / r na konci). Tento príkaz nastaví HC-06 späť na 115 200 baud rate, ktorú môžu zvládnuť bežné knižnice.

Aby sme odoslali bity rýchlosťou 1, 382, 400 bitov/s, pre každý bit máme 1/1, 382, 400 sekúnd (čo je zhruba 723,38 ns) pre každý bit. Arduino beží na 16 000 000 000 MHz, takže každý cyklus trvá 1/16 000 000 sekúnd - to je 62,5 ns na cyklus.

Pomocou montážneho kódu AVR môžeme pomocou príkazu OUT nastaviť výstupný pin na nízky alebo vysoký a NOP na čakanie presne jedného cyklu CPU. Oba príkazy spotrebujú presne 1 cyklus CPU. Týmto spôsobom môže byť bitový čas 723,38 ns pokrytý 11 až 12 arduino inštrukciami na prenášaný bit. Je potrebné vziať do úvahy jednu vec: príkaz OUT nastaví celý bajt naraz, takže musíme vybrať PORTx, kde to nie je problém. Použitie ATMEGA328P-PU napríklad PORTD (arduino piny 0-7) je pre tieto podmienky perfektné. Po nastavení bitu musí uplynúť iba správny čas, ktorý sa vykoná o 10 až 11 NOP a je to.

Podrobnosti o výpočte nájdete v nižšie uvedenom súbore Excel. Tento súbor vygeneroval požadované montážne pokyny pre program. Po vložení vygenerovaného kódu bolo potrebné vykonať iba niekoľko náhrad.

Krok 4: Možnosti ďalšieho čítania/ zlepšovania

  • Možno je možné rýchlejšiu knižnicu SoftwareSerial vytvoriť pomocou techniky popísanej v predchádzajúcom kroku.
  • FedericoK2 vytvoril vynikajúci nástroj, ktorý generuje obnovovací kód HC-06 pre každú možnú bitovú rýchlosť. Navštívte stránku tu: https://tools.krum.com.ar/save_your_hc-06/ Ďakujem FedericoK2

Odporúča: