MAX31790 - Přepočet otáček

Pomoc s ostatnými vecami okolo elektroniky

Moderátori: mirosne, Moderátori

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

MAX31790 - Přepočet otáček

Príspevok od používateľa jirka.jirka. » 09 Mar 2021, 19:07

Zdravím přátelé,

mám obvod MAX31790. Funguje na první šup, ale abych řekl pravdu, čumím do datasheetu, ale nemůžu se dopočítat příkladu co tam mají viz print screen. Nenajde se někdo, kdy by mi to vysvětlil i s nějakým vzorečkem? fTOSC = 32,762. To je asi jasné.

Bude to easy, ale někdy to jednoduché se zdá být složité. :rolleyes: Však to znáte. Děkuji jakémukoli nakopnutní. :agree:

Já se to snažím dopočítat na:
  • FAN - 5500RMP
  • 2 pulses per revolution
  • Number of Tach Periods Counted Set: 16
MAX31790.PNG
0

Používateľov profilový obrázok
mac26
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1298
Dátum registrácie: 01 Feb 2010, 00:00
Bydlisko: Martin

Re: MAX31790 - Přepočet otáček

Príspevok od používateľa mac26 » 09 Mar 2021, 19:56

0.06/(1/8192)

0.06 -> 4*perioda ventilatora
1/8192 -> perioda pocitadla
0

Používateľov profilový obrázok
mac26
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1298
Dátum registrácie: 01 Feb 2010, 00:00
Bydlisko: Martin

Re: MAX31790 - Přepočet otáček

Príspevok od používateľa mac26 » 09 Mar 2021, 19:58

pre toto:
  • FAN - 5500RMP
  • 2 pulses per revolution
  • Number of Tach Periods Counted Set: 16
mi to vychadza na 714
0

romiadam
Ultimate člen
Ultimate člen
Príspevky: 4415
Dátum registrácie: 09 Apr 2008, 00:00
Bydlisko: Wicklow, Irsko
Vek: 47

Re: MAX31790 - Přepočet otáček

Príspevok od používateľa romiadam » 10 Mar 2021, 01:50

Ten popis musel pisat idiot, alebo clovek s tak vysokym IQ ze si myslel ze to kazdy pochopi na prvu supu.
Mne to dalo tiez zabrat, pochopit o com tam toci.

Ja ti ten text prepisem zrozumitelnejsie.

Ten MAX31790 (bude to neake MCU) ma v sebe 32.768kHz-ovy oscilator. 1 instukcia trva 4 takty preto frekvencia citaca v MAX je 32.768 / 4 =8192 Hz. Ten MAX pocita tacho impulzy z ventilatora a popritom mu bezi citac s frekvenciou 8192Hz. Teda ak MAX pocita 4 tacho impulzy, tak pri otackach 2000RPM tie 4 tacho impulzy budu trvat 60ms (cas jedneho tacho pulzu je 60sek/4000 tachopulzov za minutu =15ms, a cas 4 tachopulzov je 4 * 15 ms ). Za 1 ms citac v MAX napocita 8192 / 1000 = 8.192. za 60 ms to bude 8.192 * 60 = 491.52. Preto v tabulke je 491 (zaokruhlene).

Pre tvoj priklad:
FAN - 5500RMP
2 pulses per revolution
Number of Tach Periods Counted Set: 16

Pre 5500RPM pri 2 pulses per revolution dostanes za minutu 11 000 tacho pulzov za minutu. Kedze ty chces pocitat 16 tacho pulzov (musis nastavit "100b"), tak 16 pulzov bude trvat ( 60sek / 11 000 tachopulzov ) * 16 = 0.0872727272727273 sek = 87.2727272727273ms. Citac toho MAX za 87ms napocita 87.2727272727273 * 8.192 = 714.94 = 715.

Cize mac26 to vypoccital spravne.

Inak nemusit to premienat na ms. Mozes to rovno pocitat ako
( ( 60sek / 11 000 tachopulzov ) * 16 Tach Periods Counted Set ) * 8192Hz = 714.94

A univerzalne zjednoduseny vzorec je:
(60sek * Tach Periods Counted Set * 8192Hz ) / ( RPM motora * Pocet tachopulzov na 1 otacku )
Podla tohoto vzorca dostanes celu tabulku ktoru si nam tu uploadol.
( 60 * 16 * 8192 ) / ( 5500 * 2 ) = 714.94
1
Obrázok 1
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: MAX31790 - Přepočet otáček

Príspevok od používateľa jirka.jirka. » 10 Mar 2021, 07:23

Krásně popsané, už to dává smysl. :applause: A nakonec ještě ten vzoreček. :potlesk:
A univerzalne zjednoduseny vzorec je:
(60sek * Tach Periods Counted Set * 8192Hz ) / ( RPM motora * Pocet tachopulzov na 1 otacku )
Podla tohoto vzorca dostanes celu tabulku ktoru si nam tu uploadol.
( 60 * 16 * 8192 ) / ( 5500 * 2 ) = 714.94
Nemám slov. Velice děkuji, jdu to zkusit nahodit do MCU. :thumbup:

PS: Ještě jsem se snažil dopočítat výsledku z DS a z toho co mi poskytl mac26, ale stejně jsem dopočítal prd. Takže popis od tebe je na 1***.
0

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: MAX31790 - Přepočet otáček

Príspevok od používateľa jirka.jirka. » 10 Mar 2021, 08:17

Tak vzoreček už funguje... :agree:

2 ventilátory.

Kód: Vybrať všetko

Channel: 0    Dutyb: 258    RPM: 3020	// Dutyb je reg 0x30+ch
Channel: 1    Dutyb: 258    RPM: 2923	// RPM je vypoctena hodnota viz odpovedi :)
Channel: 0    Dutyb: 250    RPM: 2878
Channel: 1    Dutyb: 250    RPM: 2782
0

romiadam
Ultimate člen
Ultimate člen
Príspevky: 4415
Dátum registrácie: 09 Apr 2008, 00:00
Bydlisko: Wicklow, Irsko
Vek: 47

Re: MAX31790 - Přepočet otáček

Príspevok od používateľa romiadam » 10 Mar 2021, 08:47

:thumbup:

Spatna vazba potesi, hlavne ked clovek pomoze.
0
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: MAX31790 - Přepočet otáček

Príspevok od používateľa jirka.jirka. » 13 Mar 2021, 16:22

Ještě jednou zdravíčko. Nechci zakládat nové téma, když se to stále vztahuje k tomuto obvodu.

Měření otáček, řízení otáček mi funguje. Ale teď řeším, jak nastavit poruchové stavy. A abych řekl pravdu, zkusil jsem všechno, ale toto se mi nastavit nepodařilo. A mám takové tušení v PWM módu to ani nebude možné.

Ale přesněji:
Jak ke stávajícímu řešení přidat možnost detekce např. zastavení ventilátoru? Tzn. rotor lock tak, aby bylo při zastavení ventilátoru vygenerováno přerušení na patřičném pinu FAIL?

https://pdfserv.maximintegrated.com/en/ds/MAX31790.pdf

Aktuální nastavení registrů:

Kód: Vybrať všetko

Name ------------- Reg --------- Value
Global          00h             0x00
Fan cfg       (02h a 03h)       0x28
Fault Mask 2    12h             0x00        
Fault Mask 1    13h             0x03
Seq Start       14h             0x45
Print.PNG
A stejně k vygenerování přerušení nedojde při zastavení ventilátoru. A já si nejsem 100% jistý, jestli to není pouze pro bit 3, který bude nastaven do high.
0

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: MAX31790 - Přepočet otáček

Príspevok od používateľa jirka.jirka. » 30 Jún 2021, 10:47

Zdravím přátelé,

vracím se zpět k ventilátorům a z DS nějak nechápu to použití toho fault registru. Pracuji v módu PWM, konkrétní nastavení asi bude jasné z této struktury:

Kód: Vybrať všetko

max31790_master_config_t cfg =
{
   .I2C_num = I2C1_num,
   .adr = 0x20,
   .global_cfg = 0x00,  // global config
   .use_channel[0] = 1, // pouzit kanal 1
   .use_channel[1] = 1, // pouzit kanal 2
   .use_channel[2] = 1, // pouzit kanal 3
   .use_channel[3] = 0, // nepouzit kanal 4
   .use_channel[4] = 0, // nepouzit kanal 5
   .use_channel[5] = 0, // nepouzit kanal 6
   .fan_failed_seq_start_cfg = 0x46,
   .fan_cfg[0] = (0xFF & (MAX31790_FAN_CFG_SPIN_UP_0_5 | MAX31790_FAN_CFG_TACH_INPUT)), // 0x38
   .fan_cfg[1] = (0xFF & (MAX31790_FAN_CFG_SPIN_UP_0_5 | MAX31790_FAN_CFG_TACH_INPUT)), // 0x38
   .fan_cfg[2] = (0xFF & (MAX31790_FAN_CFG_SPIN_UP_0_5 | MAX31790_FAN_CFG_TACH_INPUT)), // 0x38
   .fan_dyn[0] = (MAX31790_FAN_DYN_SR_2 | MAX31790_FAN_DYN_PWM_ROC_62_5), // 0x38
   .fan_dyn[1] = (MAX31790_FAN_DYN_SR_2 | MAX31790_FAN_DYN_PWM_ROC_62_5), // 0x38
   .fan_dyn[2] = (MAX31790_FAN_DYN_SR_2 | MAX31790_FAN_DYN_PWM_ROC_62_5), // 0x38
   .fan_hallcount = {2, 2, 2, 2, 2, 2}, // pocet pulsu na otacku
   .fault_mask_1 = 0x07,
   .fault_mask_2 = 0x00
 };
kde fault_mask_1 zapisuji do registru 0x13 a fault_mask_2 zapisuji do registru 0x12.

A já jsem od toho čekal, že když zastavím ventilátor, tak se vyhlásí chyba. Ale nejsem z toho vůbec moudrý. Do DS hledím jak tele na nové vrata, ale prostě nevím. Neporadí někdo?
0

Napísať odpoveď