Satura rādītājs:

Atgūt nepareizi konfigurētu HC-06 Bluetooth moduli: 4 soļi
Atgūt nepareizi konfigurētu HC-06 Bluetooth moduli: 4 soļi

Video: Atgūt nepareizi konfigurētu HC-06 Bluetooth moduli: 4 soļi

Video: Atgūt nepareizi konfigurētu HC-06 Bluetooth moduli: 4 soļi
Video: САЛО. ЖАРЕННАЯ КАРТОШКА С ЛУКОМ. УЧУ ДЕТЕЙ ГОТОВИТЬ 2024, Novembris
Anonim
Atgūt nepareizi konfigurētu HC-06 Bluetooth moduli
Atgūt nepareizi konfigurētu HC-06 Bluetooth moduli

Tīrā maksimālisma dēļ es konfigurēju savu HC-06 Bluetooth (vergu) moduli 1, 382, 400 bodu bitu pārraides ātrumam, izmantojot komandu AT+BAUDC. Kopš ar to savienotā Arduino nevarēja izmantot moduli ar SoftwareSerial bibliotēku. Es mēģināju atjaunot datu pārraides ātrumu ar Arduino aparatūras sēriju (0 un 1 tapas), neveiksmīgi.

Es arī mēģināju Google tēmu atrast, neatrodot pieņemamu risinājumu. Varbūt risinājums varētu būt datora iebūvētā seriālā porta izmantošana (ar loģikas līmeņa maiņu no 12V līdz 3V3), bet manam datoram nav šī novecojušā porta, tāpēc nācās nākt klajā ar citu risinājumu.

1. darbība. Kas jums būs nepieciešams

Kas jums būs nepieciešams
Kas jums būs nepieciešams
  • Arudino/Genuino plate ar noklusējuma Atmel ATMEGA328P-PU MCU (@16MHz).
  • HC-06 Bluetooth modulis, kas klausās 1, 382, 400 bodu
  • Pamata arduino IDE no

2. solis: risinājums

Atrisinājums
Atrisinājums
Atrisinājums
Atrisinājums

Lūdzu, ņemiet vērā, ka šī instrukcija un risinājums ir paredzēts 1, 382, 400 bodu (AT+BAUDC) scenārijam. Risinājums nedarbosies citiem pārraides ātrumiem. Lai risinātu citus gadījumus, lūdzu, skatiet darbības, sākot ar 3. darbību.

Risinājums ir patiešām vienkāršs.

  1. Savienojiet HC-06 VCC tapu ar 5 V Arduino tapu.
  2. Savienojiet HC-06 GND tapu ar Arduino GND tapu.
  3. Savienojiet HC-06 RXD tapu ar Arduino 2. tapu.
  4. Atstājiet HC-06 TXD tapu nesaistītu (vai pievienojiet 8. tapai).
  5. Augšupielādējiet skici hc06reset.ino.
  6. Programma iestatīs HC-06 115, 200 bodu režīmā (AT+BAUD8).
  7. Izmantojiet atgūto HC-06 moduli tāpat kā iepriekš.

3. darbība: aiz ainas…

Aizkadrā…
Aizkadrā…
Aizkadrā…
Aizkadrā…

SoftwareSerial bibliotēka, kas nāk ar Arduino IDE, spēj pārraidīt ne vairāk kā 115, 200 bitus sekundē, tāpēc tā nav pietiekami ātra, lai sazinātos ar vēlamo 1, 382, 400 bitu ātrumu. Ņemot vērā, ka noklusējuma Arduino plate darbojas ar frekvenci 16 MHz, teorētiski nesaspiestā maksimālā bitu pārraides ātrums ir 16 000 000 bitu/sek. Mums līdz šim ir labi!

Pamatojoties uz manu izpratni par SoftwareSerial.cpp, secīgā komunikācija tiek veikta, iestatot izejas tapu Augsta (= 1) vai Zema (= 0) attiecībā uz aizkavi (kas rodas no pārraides ātruma) starp izmaiņām.

  • Pēc tam izvades tapa ir augsta (nozīmē, ka nav datu)
  • a Tiek pārraidīts sākuma bits (kas velk tapu zemu), tad
  • 8 bitu dati, kas tiek pārraidīti no LSB uz MSB, (+5 V, ja 1. bits un 0 citādi)
  • tiek pārraidīts apturēšanas bits (kas velk tapu augstu)

Tādā veidā 1 baits tiek pārsūtīts, izmantojot 10 bitus.

Ziņojums, kas mums jānosūta, ir AT+BAUD8 (bez / n, beigās). Šī komanda nosaka HC-06 atpakaļ 115, 200 bodu ātrumu, ko var apstrādāt parastās bibliotēkas.

Lai nosūtītu bitus ar ātrumu 1, 382, 400 biti/sek, katram bitam katram bitam ir 1/1, 382, 400 sekundes laiks (tas ir aptuveni 723,38 ns). Arduino darbojas ar 16 000 000 Mhz, tāpēc katrs cikls ilgst 1/16 000 000 sekundes - tas ir 62,5 ns vienā ciklā.

Izmantojot AVR montāžas kodu, mēs varam izmantot komandu OUT, lai iestatītu izejas tapu augstu vai zemu, un NOP gaidīt tieši vienu CPU ciklu. Abas komandas apēd tieši 1 CPU ciklu. Tādā veidā 723.38 ns bitu laiku var aptvert ar 11 līdz 12 arduino instrukcijām uz pārraidīto bitu. Viena lieta, kas jāņem vērā: komanda OUT vienlaikus nosaka visu baitu, tāpēc mums ir jāizvēlas PORTx, kur tā nav problēma. Izmantojot ATMEGA328P-PU, piemēram, PORTD (arduino tapas 0-7) ir ideāli piemērots šim stāvoklim. Pēc bitu iestatīšanas ir jāpaiet tikai īstajam laikam, ko veic 10 līdz 11 NOP, un viss.

Detalizētu aprēķinu informāciju varat atrast zemāk esošajā Excel failā. Šis fails ģenerēja programmai nepieciešamās detalizētās instrukcijas. Pēc ģenerētā koda ielīmēšanas bija jāveic tikai dažas nomaiņas.

4. solis: papildu lasīšanas/ uzlabošanas iespējas

  • Varbūt ātrāku SoftwareSerial bibliotēku var izveidot, izmantojot iepriekšējā solī aprakstīto tehniku.
  • FedericoK2 izveidoja lielisku rīku, kas ģenerē HC-06 atkopšanas kodu katram iespējamajam bitu pārraides ātrumam. Piekļūstiet vietnei šeit: https://tools.krum.com.ar/save_your_hc-06/ Paldies FedericoK2

Ieteicams: