Hallo, ich würde gerne den AD5575 als Stromsteller (0...20mA) benutzen. Leider bekomme Ich den Baustein nicht programmiert und kann auch nicht weiter verifizieren, woran es liegt. DCDC-Wandler scheint richtig zu funktionieren, zumindest Messe ich an VBoost 7,4V (Stromausgang disable) bzw. 15V (Spannungsausgang disable). Die Register per SPI kann ich programmieren und auch wieder auslesen. An der Kommunikation sollte es daher nicht scheitern. Kennt wer den Baustein und kann mir da helfen? Nachfolgend mein Code (DUT_AD = 00, SPI-Mode = 1). // Reset (0x555 ins SoftwareRegister schreiben) spiwrite(0x1C9555); // ToggleBit im StatusRegister setzen spiwrite(0x1C9000); // DCDC-Register spiwrite(0x1F6034); // (internal 150kOhm Resistor, clock 90°, 410kHz, 23V max. VBoost) // MainControlRegister spiwrite(0x1C2000); // DAC_A (POC normal, STATREAD disable, WATCHDOG disable, ShortCircuitLimit = 16mA, OUTEN_ALL disable, DCDCD_ALL disable) // DACControlRegister (output disables) spiwrite(0x1C4115); // DAC_A (INT_ENABLE, Channel not cleared, output disables, internal resitor, DCDC power on, overrange disabled, 0...20mA) // Analog = D * (M + 1) / 2^16 + C - 2^15 // M = Gain // C = Offset // D = Data // 0.001A = D * (M+1)/2^16 --> M = 0 --> Feinste Aufloesung // D = 0.001 * 2^16 / 1 // D = 65 = 0x41 // DACGainRegister (Gain = 1) spiwrite(0x080000); // DAC_A // DACOffsetRegister (Offset = 2^15) spiwrite(0x108000); // DAC_A // DACDataRegister spiwrite(0x000041); // DAC_A lcd_delay_us(200); lcd_delay_us(200); // DACControlRegister (output enables) spiwrite(0x1C4155); // DAC_A (INT_ENABLE, Channel not cleared, output enables, internal resitor, DCDC power on, overrange disabled, 0...20mA) while(1) { spiread(0x980000); }
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.