Turinys:

Atkurti netinkamai sukonfigūruotą „HC-06“„Bluetooth“modulį: 4 žingsniai
Atkurti netinkamai sukonfigūruotą „HC-06“„Bluetooth“modulį: 4 žingsniai

Video: Atkurti netinkamai sukonfigūruotą „HC-06“„Bluetooth“modulį: 4 žingsniai

Video: Atkurti netinkamai sukonfigūruotą „HC-06“„Bluetooth“modulį: 4 žingsniai
Video: Kaip sukonfigūruoti gmail, kad gauti paštą iš serverio pašto 2024, Lapkritis
Anonim
Atkurti netinkamai sukonfigūruotą „HC-06“„Bluetooth“modulį
Atkurti netinkamai sukonfigūruotą „HC-06“„Bluetooth“modulį

Iš gryno maksimalizmo sukonfigūravau savo HC-06 „Bluetooth“(slave) modulį į 1, 382, 400 baudų duomenų perdavimo spartą naudodami komandą AT+BAUDC. Nuo tada, kai prie jo prijungtas „Arduino“negalėjo naudotis moduliu su „SoftwareSerial“biblioteka. Aš bandžiau atkurti duomenų perdavimo spartą naudodami „Arduino“aparatinės įrangos seriją (0 ir 1 kaiščiai) nesėkmingai.

Aš taip pat bandžiau „Google“temą nerasti tinkamo sprendimo. Galbūt sprendimas būtų naudoti integruotą kompiuterio nuoseklųjį prievadą (keičiant loginį lygį nuo 12V iki 3V3), tačiau mano kompiuteryje nėra šio pasenusio prievado, todėl turėjau sugalvoti kitą sprendimą.

1 žingsnis: ko jums reikės

Ko jums reikės
Ko jums reikės
  • „Arudino“/„Genuino“plokštė su numatytuoju Atmel ATMEGA328P-PU MCU (@16MHz).
  • „HC-06“„Bluetooth“modulis, klausantis 1, 382, 400 baudų
  • Pagrindinis arduino IDE iš

2 žingsnis: sprendimas

Sprendimas
Sprendimas
Sprendimas
Sprendimas

Atminkite, kad šis „Instructable“ir sprendimas yra skirtas 1, 382, 400 baudų (AT+BAUDC) scenarijui. Sprendimas neveiks jokiam kitam duomenų perdavimo greičiui. Norėdami išspręsti kitus atvejus, atlikite veiksmus, pradedant nuo 3 veiksmo.

Sprendimas tikrai paprastas.

  1. Prijunkite HC-06 VCC kaištį prie 5 V „Arduino“kaiščio.
  2. Prijunkite HC-06 GND kaištį prie „Arduino“GND kaiščio.
  3. Prijunkite HC-06 RXD kaištį prie 2 „Arduino“kaiščio.
  4. Nepalikite HC-06 TXD kaiščio (arba prijunkite prie 8 kaiščio).
  5. Įkelti eskizą hc06reset.ino.
  6. Programa nustatys HC-06 į 115, 200 baudų režimą (AT+BAUD8).
  7. Atkurtą HC-06 modulį naudokite kaip ir anksčiau.

3 žingsnis: už kadro …

Užkuliusiuose…
Užkuliusiuose…
Užkuliusiuose…
Užkuliusiuose…

„SoftwareSerial“biblioteka, pateikiama kartu su „Arduino IDE“, gali perduoti daugiausiai 115, 200 bitų per sekundę, todėl ji nėra pakankamai greita, kad galėtų bendrauti norimu 1, 382, 400 bitų greičiu. Atsižvelgiant į tai, kad numatytoji „Arduino“plokštė veikia 16 MHz dažniu, teorinis nesuspaustas maksimalus pralaidumas yra 16 000 000 bitų per sekundę. Mums kol kas gerai!

Remiantis mano supratimu apie „SoftwareSerial.cpp“, nuoseklusis ryšys atliekamas nustatant išvesties kaištį Aukštas (= 1) arba Žemas (= 0), atsižvelgiant į vėlavimą (kuris atsiranda dėl duomenų perdavimo spartos) tarp pakeitimų.

  • Išvesties kaištis pagal numatytuosius nustatymus yra aukštas (reiškia, kad nėra duomenų)
  • a Perkeliamas pradžios bitas (kuris žemai traukia kaištį), tada
  • 8 bitų duomenų, perduodamų iš LSB į MSB, (+5 V, kai 1 ir 0 bitai kitaip)
  • perduodamas sustabdymo bitas (kuris traukia kaištį aukštai)

Tokiu būdu 1 baitas perduodamas naudojant 10 bitų.

Pranešimas, kurį turime išsiųsti, yra AT+BAUD8 (be / n, pabaigoje). Ši komanda nustato HC-06 115, 200 baudų spartą, kurią gali valdyti įprastos bibliotekos.

Norėdami siųsti bitus 1, 382, 400 bitų per sekundę greičiu, kiekvienam bitui turime 1/1, 382, 400 sekundžių laiko (tai yra maždaug 723,38 ns) kiekvienam bitui. „Arduino“veikia 16 000 000 Mhz, todėl kiekvienas ciklas trunka 1/16 000 000 sekundžių - tai yra 62,5 ns per ciklą.

Naudodami AVR surinkimo kodą, galime naudoti komandą OUT, kad išvesties kaištis būtų aukštas arba žemas, o NOP - palaukti tiksliai vieno procesoriaus ciklo. Abi komandos suvalgo lygiai 1 procesoriaus ciklą. Tokiu būdu 723,38 ns bitų laikas gali būti padengtas pagal 11–12 arduino instrukcijų vienam perduotam bitui. Vienas dalykas, kurį reikia apsvarstyti: komanda OUT nustato visą baitą vienu metu, todėl turime pasirinkti PORTx, kur tai nėra problema. Naudojant ATMEGA328P-PU, pavyzdžiui, PORTD (arduino kaiščiai 0-7) puikiai tinka šiai būklei. Nustačius bitą, turi praeiti tik tinkamas laikas, kurį atlieka 10–11 NOP, ir viskas.

Išsamią skaičiavimo informaciją rasite žemiau esančiame „Excel“faile. Šis failas sugeneravo būtinas programos instrukcijas. Įklijavus sukurtą kodą reikėjo atlikti tik kelis pakeitimus.

4 žingsnis: tolesnio skaitymo/ tobulinimo galimybės

  • Galbūt greitesnę „SoftwareSerial“biblioteką galima sukurti naudojant ankstesniame žingsnyje aprašytą metodą.
  • „FedericoK2“sukūrė puikų įrankį, kuris generuoja HC-06 atkūrimo kodą kiekvienam įmanomam bitų greičiui. Pasiekite svetainę čia: https://tools.krum.com.ar/save_your_hc-06/ Ačiū FedericoK2

Rekomenduojamas: