Atmega16 s hc-06 bluetooth

Dobrý den,

rád bych zeptal zda pro sériovou komunikaci s bluetooth HC-06 je potřeba mít k mikrokontroleru atmega16 připojený externí oscilátor ?

Při jakékoliv sériové komunikaci se doporučuje mít externí oscilátor
nebo jiný přesný hodinový kmitočet.
Vnitřní RC oscilátor se bohužel mezi přesné nepočítá.
(mění kmitočet v závislosti na teplotě)
Párkrát se mi stalo, že při RC oscilátoru a UARTu 19200baud se mi rozhodila
komunikace do takové míry, že bylo nutno celé zařízení restartovat.

Externí oscilátor nebo krystal se doporučuje, ale není nutný. Záleží na délce paketů. Pokud jsi schopný mezi byty zajistit synchronizační mezeru, pak Ti bohatě stačí interní oscilátor. V případě jednosměrné komunikace je to jednoduché. Stačí přijímač nastavit na 1 stop bit, vysílač na 2 stop bity a synchronizace se provádí “sama”. V případě obousměrné komnunikace je potřeba udělat mezi 2 byty alespoň 1 bit mezeru. Není nutné mezi každými dvěma byty, ale skupiny bytů nesmí být moc dlouhé, aby i při odchylkách hodin od přesného kmitočtu neujela bitová synchronizace. Používám sériovou komunikaci na bezdrátový přenos venkovní teploty z čidla na několik teploměrů po domě (vnitřní+venkovní teplota). Jak vysílač, tak přijímače běží na interní oscilátor a není s tím žádný problém. Je ale fakt, že je to uděláno tak, že po každém bytu je pomocí timeru vložena mezera v délce asi 2 bitů.

Děkuji za odpověď. Vypadá to, že pro správnou funkci atmega16 s hc-06 bude asi nutné přidat krystal :slight_smile:.