AVR Software UART – do meje #2 – v praksi

Evo, takole pri 9,6MHz notranjem oscilatorju se zadeva v praksi vsaj pri meni obnese odlično. Deluje skoraj brez napake, pa tudi notranjega oscilatorja ni bilo treba nič kalibrirati…

Clipboard01

Pri opazovanju signala sem si pomagal tfla – The Fabulous Logic Analyzer, ki uporablja za analizo LPT port, ampak sem moral sistemsko uro procesorja deliti z 8 (CKDIV8, to je potem 115200baud namesto 921600 baud), da sem dobil rezultat, ki je bil kolikortoliko uporaben / vsi biti lepo vidni. Za bolj resno merjenje časov je sampling rate tudi pri 115200 baudih še premajhen. Je pa le-ta odvisen od računalnika na katerem program teče. TFLA ima sicer priloženo shematiko za nek vmesnik, je pa drugače zadosti, če priklopimo GND na zemljo in D1-D8 pine na mesta, ki jih analiziramo. Seveda je potrebno paziti, da na port nikoli ne pripeljemo negativnih napetosti ali napetosti večjih od 5V, s tem je precej lahko poškodovati matično ploščo…

plot1

Nekaj težav sem imel sicer ker je najprej zadeva delovala invertirano (nisem vedel da ima en moj starejši kabel že notri tranzistorski inverter), potem pa je bil tranzistor še prepočasen za 1MHz delovanje, kot ga potrebuje prenosni protokol pri 921600 baudih.

Zadevo sem rešil tako, da sem procesorček priklopil kar direktno na vhodni COM port. Za invertiranje sem poskrbel kar tako da sem napajanje +5V priklopil na RX (pin 2) RS232 porta in izhod iz procesorčka (portb.1) na GND (pin 5). (!) to je mogoče narediti le takrat, ko je izhod Push-Pull, ter ko ni drugih zunanjih povezav. Včasih imajo napajalniki GND priključek ozemljen. V primeru da bi tako računalnik kot čip napajali z ozemljenimi napajalniki bi pri takem priklopu prišlo do kratkega stika. (!)

Seveda je veliko lažje narediti softverski invert, torej spremeniti CBIje v SBIje in obratno (to je v pripetem programu že narejeno)…

tiny13comm

S tem software UARTom nameravam narediti adapterček za zajem analognih in digitalnih podatkov v realnem času pri najvišji frekvenci, ki jo zadevica še dopušča (15ksps ADC, ~0.5Msps digitalni)