Prieš metus (~ 2013 m. vasarą) pasidaviau madai ir nusipirkau porą nepadoriai pigių HC05 bluetooth moduliukų su CSR Bluetooth valdiklais. Modulius pirkau tik dėl galimybės juos naudoti kaip USART „pass-through” tiltą tarp PC ir mikrovaldiklio ar tarp mikrovaldiklio ir mikrovaldiklio. Pirkdamas žinojau, kad šie moduliai „by default” bus sukonfigūruoti kaip bluetooth audio imtuvai, tačiau juos bus gan lengva perprogramuoti (perrašyti firmware). Dėl pastarojo „bus lengva” visas projektas užtruko praktiškai metus, nes perrašyti firmware nebuvo taip jau ir trivialu…
Pirmiausia, kol moduliai dar tik keliavo į Lietuvą, nusprendžiau pasigaminti jiems PCB. HC05 reikia +3.3V maitinimo, jų I/O taip pat yra 3V3 loginio lygio, todėl tam, kad galėčiau modulius naudoti 5V sistemose, į PCB įprojektavau SiP21106 3V3 įtampos reguliatorių. USART TX ir RX linijas apsaugojau rezistoriais R6 – R8 (žr. schemą). HC05 RST (reset) išvadą prijungiau per standartinę RC grandinėlę. Prie PIO8 ir PIO9 prijungiau po šviesos diodą, kurie rodo, ką veikia HC05. PCB taip pat įprojektavau ir HC05 perprogravimo jungtį JP1 ir darbo režimo nustatymo „jumperį” JP3. Pastaruoju, galima įjungti arba išjungti HC05 AT komandų funkciją.
Eagle failus galite atsisiųsti iš čia: HC05
Nekreipiant dėmesio į sovietinį stiklotekstolitą ir netolygų aplitavimą, PCB gavosi gan graži ir pakankamai maža. Mano reikmėms pilnai užtenka. Žinoma, dabar kinietiškos parduotuvės knibžtėte knibžta daug mažesniais, iš karto paruoštais naudoti HC05 moduliais, todėl mano PCB gal ir atrodo kiek kvailai, bet prieš metus tokių modulių už žemą kainą tiesiog nebuvo…
Atėjo laikas perprogramuoti modulius. Pagal „Byron’s blog” pateiktą schemą (viršuje), surinkau elementarų LPT SPI programatorių. Atidžiai išstudijavęs „Byron’s blog” įrašą apie HC05 perprogramavimą, susiinstaliavau BlueSuite 2.4 programinę įrangą (tam, kad jums nereikėtų ilgai ieškoti, BlueSuit 2.4 instaliaciją įkėliau čia) ir puoliau perrašinėti firmware. Tik še tau kad nori, nieko nepavyko. Mano PC motininė neturi integruoto LPT porto, tačiau turiu nusipirkęs PCI LPT kortą. Gal dėl to ir nepavyko perprogramuoti. Dar vienas įtakojantis faktorius galėjo būti tai, kad pas mane sukasi Win7 x64. Internete prisiskaičiau, kad su Win7 BlueSuite nelabai nori veikti. Pabandžiau ant WMware susiinstaliuoti WinXP ir iš virtualios mašinos bandyti perprogramuoti HC05, tačiau irgi nieko gero nepavyko :/ Kaip BlueFlashCmd nematė LPT porto, taip ir nepamatė. Dar kažkiek pasikankinau su Windows LPT nustatymais, tačiau nieko nepešęs modulius numečiau į stalčiaus gilumą ir pamiršau.
Visai neseniai gavau „chalturkę” perinstaliuoti seną PC su WindowsXP. Ir ką jūs manot, kompas buvo su tikru LPT! Bandau perprogramuoti HC05, bet vėl nieko nesigauna :/ Šį kartą taip lengvai nusprendžiau nepasiduoti. Atidžiai perskaičiau visus „Byron’s blog” įrašo apie HC05 perprogramavimą komentarus. Ant tiesos kelio užvedė šis komentaras.:
After messing around with parallel port settings, I finally found a working configuration: EPP had to be activated in BIOS, neither SPP nor ECP worked (the software didn't find the port then)
Pasiknisau BIOS’e ir pakeičiau reikiamus nustatymus. Šį kartą BlueFlashCmd LPT portą rado, bet gražino klaidą, kad nepavyksta susikomunikuoti su HC05. Tikriausiai, kažkas blogai su mano programatoriumi… Akurat, buvau sumaišęs MISO ir MOSI portus! Jie turi jungties ne tiesiogiai MISO – MISO (HC05) ir MOSI – MOSI (HC05), o atvirkščiai MISO – MOSI (HC05) ir MOSI – MISO (HC05), kaip ir jungiant bet kokį kitą SPI įrenginį. D’oh! Sujungus teisingai – BlueFlashCmd nebesikeikė ir leido nusisiurbti HC05 firmware. Firmware perrašymo veiksmus vykdžiau pagal Byron’s instrukciją. Daugiau nesklandumų nekilo ir po kelių minučių mano HC05 jau buvo su normaliu USART pritaikytu firmware.
Beliko susikonfigūruoti HC05 pagal savo poreikius, t. y. nustatyti modulio vardą, PIN kodą, ir USART porto nustatymus (greitį, duomenų ir stop bitų skaičių). Visas tas daroma AT komandomis, HC05 PIO11 portą užtrumpinus į VCC. Būtų galima kiekvieną AT komandą vesti rankomis, tačiau tai gan varginantis procesas. Geriau pasinaudoti šaunia brolių ukrainiečių programėle BTinit.exe, apie kurią galite pasiskaityti čia: http://silabs.org.ua/hcxx_cfg.htm.
Tereikia suvesti pageidaujamus parametrus, išsirinkti norimą USART greitį ir spausti „write”. Programėlė visą juoda darbą padarys už mus!
Atgalinis pranešimas: Flip-Dot Clock laiko sinchronizavimas su Aviete per Bluetooth | Paulius Bautrėnas