Innehållsförteckning:

Återställ felkonfigurerad HC-06 Bluetooth-modul: 4 steg
Återställ felkonfigurerad HC-06 Bluetooth-modul: 4 steg

Video: Återställ felkonfigurerad HC-06 Bluetooth-modul: 4 steg

Video: Återställ felkonfigurerad HC-06 Bluetooth-modul: 4 steg
Video: ⚡️Правильная прошивка HC-06⚡️Обзор возможностей передачи данных по беспроводной сети⚡️ 2024, Juli
Anonim
Återställ felkonfigurerad HC-06 Bluetooth-modul
Återställ felkonfigurerad HC-06 Bluetooth-modul

Av ren maximalism konfigurerade jag min HC-06 Bluetooth (slav) -modul till en överföringshastighet på 1, 382, 400 baud med AT+BAUDC-kommandot. Ända sedan Arduino ansluten till den kunde inte använda modulen med SoftwareSerial bibliotek. Jag försökte återställa överföringshastigheten med Arduinos hårdvaruserie (stift 0 & 1) utan framgång.

Jag försökte också googla ämnet utan att hitta en acceptabel lösning. Kanske att använda en dators inbyggda serieport kunde ha varit en lösning (med 12V till 3V3 logiknivåförskjutning), men min dator har inte denna föråldrade port, så jag var tvungen att komma på en annan lösning.

Steg 1: Vad du behöver

Vad du kommer att behöva
Vad du kommer att behöva
  • Arudino/Genuino-kort med standard Atmel ATMEGA328P-PU MCU (@16MHz).
  • En HC-06 Bluetooth-modul som lyssnar på 1, 382, 400 baud
  • Grundläggande arduino IDE från

Steg 2: Lösningen

Lösningen
Lösningen
Lösningen
Lösningen

Observera att denna instruerbara och lösningen är gjord för 1, 382, 400 baud (AT+BAUDC) scenario. Lösningen fungerar inte för andra överföringshastigheter. För att hantera andra ärenden, se steg som börjar från steg 3.

Lösningen är verkligen enkel.

  1. Anslut HC-06: s VCC-stift till 5V-stiftet på Arduino.
  2. Anslut HC-06: s GND-stift till GND-stiftet på Arduino.
  3. Anslut HC-06: s RXD-stift till stift 2 på Arduino.
  4. Låt HC-06: s TXD-stift vara anslutet (eller anslut till stift 8).
  5. Ladda upp hc06reset.ino -skiss.
  6. Programmet ställer in HC-06 i 115, 200 baud-läge (AT+BAUD8).
  7. Använd din återställda HC-06-modul som tidigare.

Steg 3: Bakom kulisserna …

Bakom kulisserna…
Bakom kulisserna…
Bakom kulisserna…
Bakom kulisserna…

SoftwareSerial -biblioteket som levereras med Arduino IDE kan överföra högst 115 200 bitar/sekund, så det är inte tillräckligt snabbt för att kommunicera på önskad 1, 382, 400 baudhastighet. Med tanke på att ett standard Arduino -kort körs på 16 MHz är den teoretiska okomprimerade maximala bithastigheten 16 000 000 bitar/sek. Vi har det bra hittills!

Baserat på min förståelse av SoftwareSerial.cpp, görs kommunikation genom att ställa in en utgångsstift Hög (= 1) eller Låg (= 0) med avseende på en fördröjning (som kommer från överföringshastigheten) mellan ändringarna.

  • Utgångsstiften är hög som standard (betyder ingen data)
  • en startbit överförs (vilket drar tappen lågt), då
  • 8 bitar data överförda från LSB till MSB, (+5V när bit 1 och 0 annars)
  • en stoppbit överförs (vilket drar tappen högt)

På detta sätt överförs 1 byte med 10 bitar.

Meddelandet vi måste skicka är AT+BAUD8 (utan / n, / r i slutet). Detta kommando ställer tillbaka HC-06 till 115, 200 baudhastighet som kan hanteras av vanliga bibliotek.

För att skicka bitar med 1, 382, 400 bitar/sek hastighet har vi för varje bit 1/1, 382, 400 sekunders tid (det är ungefär 723,38 ns) för varje bit. Arduino körs på 16 000 000 Mhz, så varje cykel varar 1/16 000 000 sekunder - det vill säga 62,5 ns per cykel.

Med hjälp av AVR -monteringskod kan vi använda kommandot OUT för att ställa in utgångsstift högt eller lågt och NOP för att vänta exakt en CPU -cykel. Båda kommandona äter upp exakt 1 cpu -cykel. På detta sätt kan 723,38 ns bittiden täckas av 11 till 12 arduino -instruktioner per överförd bit. En sak att tänka på: kommandot OUT anger en hel byte på en gång, så vi måste välja en PORTx där detta inte är ett problem. Att använda ATMEGA328P-PU till exempel PORTD (arduino pins 0-7) är perfekt för detta tillstånd. Efter att ha ställt in biten måste bara den rätta tiden gå som görs med 10 till 11 NOP och det är det.

Du hittar beräkningsdetaljer i Excel -filen nedan. Denna fil genererade de nödvändiga monteringsinstruktionerna för programmet. Endast några få ersättningar måste göras efter att den genererade koden har klistrats in.

Steg 4: Ytterligare läs-/ förbättringsmöjligheter

  • Kanske kan ett snabbare SoftwareSerial -bibliotek skapas med den teknik som beskrivs i föregående steg.
  • FedericoK2 gjorde ett bra verktyg som genererar HC-06-återställningskoden för varje möjlig bithastighet. Gå till webbplatsen här: https://tools.krum.com.ar/save_your_hc-06/ Tack FedericoK2

Rekommenderad: