U/I meter cez interný AD

tych 12V je tm len preto aby sa mi to nemiešalo s 5V vetvu, viem mohol som ju premenovat.

to invertovanie som myslel že poriešim v sw, tak ich dam preč a budem zapínať vnútorné pullup odpory.

@Martin ani nie pretože som vypustil I2C tak som použil iný DA prevodník(cez SPI), upravím ešte tie nedostatky a hodím sem schému

sw by polarita ošetřit nešla, protože to obsluhuje hw procesoru (možnost volby polarity jsem neviděl)

Nepotřeboval by jeden pin navíc na řízení směru? Ani si vlastně moc neumím představit, jak by se to s optočleny řešilo, když datový signál je sběrnice s otevřeným kolektorem.

Invertování polarity pomocí sw samozřejmě vyřešit můžeš, ale tím se připravíš o možnost využití hardwareového USARTu přímo v mcu. Jednodušší je zapojit optočleny tak, jak jsem poslal (vlastně jde jen o přepojení tý “vysílací” LEDky) a můžeš klidně využít hw USART se všemi jeho výhodami :

  1. nemusíš se starat o vysílání a příjem dat - to se udělá čtení/zápisem do 1 registru (1 instrukce).
  2. hw umí detekovat chyby Data OverRun a Framing Error.
  3. nemusíš hlídat, jestli dorazila nějaká data - o to se může postarat obsluha přerušení USART_RXC
  4. pokud odesíláš data, nemusíš hlídat, jestli už je odesláno. Prostě odešleš 1 byte a pomocí přerušení USART_TXC řešíš odesílání dalších dat. Prostě v obsluze přerušení zjistíš, jestli je ještě něco k odeslání a pokud ano, zapášeš byte do registru UDR a o víc se nestaráš.

Nepotreboval. Galvanicke oddelenie I2C cez ADUM125x to riesi automaticky.

Jo aha, vidím v datasheetu, to je obvod speciálně pro I2C a umí to řešit sám. S optočleny by to asi byl dost větší problém.

Tak spravil som tie úpravy. Tá schéma vyzerá trochu chaoticky, do buducna ju este upravim aby bola prehladnejšia, išlo mi len aby som sa dostal k navrhu dps.


Zapomněl jsi signály invertovat, jak doporučuje Balů. (přesněji, tranzistor Ti je invertuje, ale LED ne). A u relé Ti chybí diody pro zachycení zpětného rázu.

aha, máš pravdu, to len otočím led a nebudem pripájať proti zemi ale proti 5V
A diody sú tam kde je relé,tj na druhej doske

Apropo. Nemalo by pre teba zmysle pouzit na galvanicky oddelenej strane SPI AD a SPI DA? Potreboval by si 2x/CS+1xCLK+DO+DI co je dokopy 5 optoclenov. Cize o tri viac ako s procesorom, ale kompletne Ti odpada odladovanie tej komunikacie. S rozlisenim pod 12bit by som ani nesiel.

AD MCP3202-CI/SN 2kanaly 12bit 1,6EUR (jeden kanal skutocne napatie a druhy kanal vytupny prud) (TME)
DA MCP4822-E/SN 2 kanaly 12bit 1,82EUR (TME)

pre galvanicke oddelenie s tou ADUM125x by sa dali pouzit priamo AD DA bez potreby sprostredkovania pomocou MCU.

AD MCP3423-E/UN 12-18bit 1,9EUR/ks (TME)
DA MCP4725A0T-E/CH 12bit 0,8EUR/ks (TME)

Hej povodne som to tak chcel,s 10bit ad/da vychádza krok kvantovania na 30mV, povedze že sa budem snažiť dostať na 50mV čo si myslím že je postačujúce, uvidím ako to bude v reale kedže je tam musím rátať s chybou zosilnenia ad/da a chybou kvantovania

No a prave preto a vzhladom na dnesne ceny by som pod 12b nesiel. Chyby merania osetris sw kalibraciou cez vztah

Vysledok = A * namerana_hodnota + B

pre ratanie v pevnej radovej ciarke odporucam napriklad vztah

Vysledok = ((2048 * A) * namerana_hodnota + (2048 * B))/2048

prekladac C-cka ho lahko prelozi pomocou rotacii. Vyberaj take AD/DA ktore maju internu referenciu. Vyhnes sa jednemu z najproblemovejsiemu clanku pri AD/DA prevode.

ja som prave použil externu referenciu, vzdy som si myslel ze tie interne su ake proforma alebo ked sa už inak ako externe neda.

Nie je dolezita ani tak absolutna presnost tej referencie. Tak ci tak musis AD/DA nakalibrovat osve, lebo uz len vstupny delic mas v ramci tolerancie beznych odporov +/-1%. Tam je 0.001% referencia uplne zbytocna. Co je vsak velmi dolezite je casova a tepelna stalost. Externa TL431 ma okolo 30-50ppm/°C. Referencia v MCP3423 ma 15ppm/°C.
Pre ilustraciu, bezny metalizovany odpor ma zavislost hodnoty od teploty cca 50ppm/°C. Pri odporovom delici sa vsak casto tato teplotna zavislost kompenzuje a deliaci pomer ma teplotnu zavislost omnoho lepsiu.
Interna referencia ma tu vyhodu, ze vyrobca casto kompenzuje a dosolichava cely AD/DA retazec spolu, nie iba samotnu referenciu. Preto napriklad pre MCP3550 vyrobca udava 10ppm/°C INL (integralnu nelinearitu). Lebo tak ako od teploty sa meni hodnota Uref, tak sa od nej menia aj parametre samotneho AD.

Taze ak mas podozrenie, ze interna referfencia je akoze len tak naoko, vzdy porovnavaj parametre. Samotna pociatocna presnost referencie je jeden z najmenej podstatnych parametrov (netvrdim, ze je nepodstatny). Dolezita je teplotna a casova stalost a vlastny sum referencie ale i samotneho prevodnika.

Podla mojich skusenosti je interna referencia v ATmegach teplotne tak dva-tri krat horsia ako exerna TL431. Ale interne referencie v mcu su o niecom inom ako interne referencie v AD/DA. Vynimkou su snad iba interne referencie v procesoroch PSoC, ale presne parametre TI a AnalogDevices nepoznam. Najma ta druha firma asi bude mat vo svojich mcu referencie na slusnej urovni. Nemam cas to vsak skumat blizsie.