Inhoudsopgave:
- Stap 1: Wat heb je nodig?
- Stap 2: De oplossing
- Stap 3: Achter de schermen…
- Stap 4: Verdere lees-/verbeteringsmogelijkheden
Video: Herstel verkeerd geconfigureerde HC-06 Bluetooth-module - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Uit puur maximalisme heb ik mijn HC-06 Bluetooth (slave)-module geconfigureerd op een baudrate van 1, 382, 400 baud met het AT+BAUDC-commando. Sinds de Arduino erop was aangesloten, kon de module niet worden gebruikt met de SoftwareSerial-bibliotheek. Ik probeerde de baudrate te herstellen met Arduino's hardware seriële (pins 0 & 1) zonder geluk.
Ik heb ook geprobeerd het onderwerp te Googlen zonder een acceptabele oplossing te vinden. Misschien was het gebruik van de ingebouwde seriële poort van een computer een oplossing geweest (met 12V naar 3V3 logische niveauverschuiving), maar mijn computer heeft deze verouderde poort niet, dus ik moest met een andere oplossing komen.
Stap 1: Wat heb je nodig?
- Arudino/Genuino-bord met de standaard Atmel ATMEGA328P-PU MCU (@16MHz).
- Een HC-06 Bluetooth-module die luistert op 1, 382, 400 baud
- Basis arduino IDE van
Stap 2: De oplossing
Houd er rekening mee dat deze Instructable en de oplossing is gemaakt voor een scenario van 1, 382, 400 baud (AT+BAUDC). De oplossing werkt niet voor andere baudrates. Raadpleeg de stappen vanaf stap 3 om andere gevallen af te handelen.
De oplossing is heel simpel.
- Sluit de VCC-pin van de HC-06 aan op de 5V-pin van Arduino.
- Verbind de GND-pin van de HC-06 met de GND-pin van Arduino.
- Sluit de RXD-pin van de HC-06 aan op pin 2 van Arduino.
- Laat de TXD-pin van de HC-06 niet aangesloten (of maak verbinding met pin 8).
- Upload hc06reset.ino schets.
- Het programma stelt de HC-06 in op 115, 200 baud-modus (AT+BAUD8).
- Gebruik uw herstelde HC-06-module zoals voorheen.
Stap 3: Achter de schermen…
De SoftwareSerial-bibliotheek die bij Arduino IDE wordt geleverd, kan maximaal 115.200 bits/seconde verzenden, dus het is niet snel genoeg om op de gewenste baudrate van 1, 382, 400 te communiceren. Aangezien een standaard Arduino-bord op 16 MHz draait, is de theoretische niet-gecomprimeerde maximale bitrate 16 000, 000 bits/sec. We zitten goed tot nu toe!
Gebaseerd op mijn begrip van SoftwareSerial.cpp, wordt de seial-communicatie gedaan door een output-pin High (=1) of Low (=0) in te stellen met betrekking tot een vertraging (die afkomstig is van de baudrate) tussen de wijzigingen.
- De uitvoerpin is standaard hoog (betekent geen gegevens), dan
- een startbit wordt verzonden (die de pin laag trekt), dan
- 8 bits gegevens verzonden van LSB naar MSB, (+5V wanneer de bit 1 en 0 anders) dan
- er wordt een stopbit verzonden (die de pin hoog trekt)
Op deze manier wordt 1 byte verzonden met 10 bits.
Het bericht dat we moeten sturen is AT+BAUD8 (zonder \n, \r aan het einde). Dit commando zet de HC-06 terug naar 115, 200 baudrate die door reguliere bibliotheken kan worden afgehandeld.
Om bits met een snelheid van 1, 382, 400 bits/sec te verzenden, hebben we voor elke bit 1/1, 382, 400 seconden tijd (dat is ongeveer 723,38 ns) voor elke bit. Arduino draait op 16 000 000 Mhz, dus elke cyclus duurt 1/16 000 000 seconden - dat is 62,5 ns per cyclus.
Met behulp van AVR-assemblagecode kunnen we het OUT-commando gebruiken om de uitvoerpin hoog of laag in te stellen en NOP om precies één CPU-cyclus te wachten. Beide commando's nemen precies 1 cpu-cyclus in beslag. Op deze manier kan de 723,38 ns bittijd worden gedekt door 11 tot 12 arduino-instructies per verzonden bit. Een ding om te overwegen: het OUT-commando stelt een hele byte in één keer in, dus we moeten een PORTx selecteren waar dit geen probleem is. Het gebruik van ATMEGA328P-PU bijvoorbeeld PORTD (arduino-pinnen 0-7) is perfect voor deze situatie. Na het instellen van de bit hoeft alleen de juiste tijd te verstrijken, wat wordt gedaan door 10 tot 11 NOP's en dat is alles.
Berekeningsdetails vindt u in onderstaand Excel-bestand. Dit bestand genereerde de vereiste montage-instructies voor het programma. Na het plakken van de gegenereerde code hoefden slechts enkele vervangingen te worden uitgevoerd.
Stap 4: Verdere lees-/verbeteringsmogelijkheden
- Misschien kan een snellere SoftwareSerial-bibliotheek worden gemaakt met behulp van de techniek die in de vorige stap is beschreven.
- FedericoK2 heeft een geweldige tool gemaakt die de HC-06 herstelcode genereert voor elke mogelijke bitrate. Ga hier naar de site: https://tools.krum.com.ar/save_your_hc-06/ Bedankt FedericoK2
Aanbevolen:
Een SSS-geconfigureerde gitaarslagplaat solderen: 3 stappen
Een SSS geconfigureerde gitaar slagplaat solderen: In de instructable zal ik het proces van het bedraden van je eigen SSS gitaar slagplaat doornemen. Ten eerste, als je dit project doet, moet je proberen een goed begrip te hebben van de onderdelen die in het proces komen. Het SSS-formaat is in principe drie
Herstel de gloed (Macbook): 5 stappen
Herstel de gloed (Macbook): ik heb onlangs (nou ja, nu meer dan een jaar geleden) een upgrade uitgevoerd van mijn vertrouwde Apple-laptop van 10 jaar naar een glimmende nieuwe Macbook pro. Ik ben er over het algemeen best blij mee geweest. Maar er is één ding dat ik mis. Ik weet dat het gek lijkt, maar ik hield echt van de gloeiende Apple-lo
Ring Solar Sign Teardown: ik deed het verkeerd, zodat u het niet hoeft te doen: 11 stappen
Ring Solar Sign Teardown: ik deed het verkeerd, zodat je het niet hoeft te doen: ik heb een Ring Doorbell, wat best geweldig is. Yay voor Ring. Toen kreeg ik een Ring Stick-up-camera toen alle online Thanksgiving-verkopen aan de gang waren. $ 50 korting, en ze stuurden me dit handige Ring-zonnebord GRATIS (slechts een waarde van $ 49!). Ik weet zeker d
Haal het meeste uit uw PCB-bestelling (en herstel fouten): 4 stappen
Haal het meeste uit uw PCB-bestelling (en herstel fouten): wanneer u PCB's online bestelt, krijgt u vaak 5 of meer identieke PCB's en hebt u ze niet altijd allemaal nodig. De lage kosten van het hebben van deze op maat gemaakte PCB's zijn erg aanlokkelijk en we maken ons vaak geen zorgen over wat we met de extra moeten doen. In een
Herstel lege laptopbatterij: 16 stappen (met afbeeldingen)
Herstel lege laptopbatterij: we kennen het allemaal. Plots stopt de batterij van uw laptop met werken. Hij laadt niet op en op het moment dat je de oplader eruit haalt, gaat de laptop uit. Je hebt een lege batterij. Ik heb een oplossing die het nieuw leven inblaast. Houd er rekening mee dat we alleen een dode slag nieuw leven inblazen