- 3D-Druck Einstieg und Tipps         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 23

Thema: ATmega > DAC (SPI Problem)

  1. #11
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.059
    Anzeige

    Praxistest und DIY Projekte
    Funktioniert es?

    MfG Hannes

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    20.08.2011
    Beiträge
    18
    Nein. Es funktioniert so leider nicht.

    Ist die Bytereihenfolge korrekt? Ich sende ja nun High, Mid, Low jeweils mit MSB zuerst. Auf dem Oszi schaut es so ja auch gut aus. Aber ist es das, was der Shiftregister erwartet? Habe eben mal Low, Mid, High mit LSB versucht, mit gleichem Ergebnis … =(

  3. #13
    Moderator Roboter Genie
    Registriert seit
    26.08.2004
    Beiträge
    1.228
    Vielleicht doch erst mal mit Software-SPI probieren. Das funktioniert ganz einfach mit einer For-Next Schleife:
    Code:
    Reset SYNC
    Pause
    
    For i = 23 to 0 Step -1
    Set SCLK
    MOSI-Pin = Datenword.i
    Pause
    Reset SCLK
    Pause
    Next i
    
    Set SYNC
    Set SCLK
    Das ganze dann halt in C umgeschrieben.

  4. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    20.08.2011
    Beiträge
    18
    Diese Sprache habe ich ja noch nie gesehen. Und sie stellt mich vor 2 Schwierigkeiten: Wie setze in den SCLK und wie kann ich ein 24bit Wort erstellen, das ich bitweise durchlaufen kann? Und kann ich diesen SoftwareSPI auch auf die HardwareSPI Pins legen?

  5. #15
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.059
    Die interne Referenz des DAC musst du einschalten, da sie Standartmäßig auf 0 (= Aus) geschaltet ist. Das bedeutet du musst entweder eine ext. Referenz anschließen oder die interne einschalten. Ich sehe nirgends die Commandos für das einschallten der int. Referenz.
    Sende einmal 0x38, 0x00, 0x01

    MfG Hannes

  6. #16
    Neuer Benutzer Öfters hier
    Registriert seit
    20.08.2011
    Beiträge
    18
    Sry Hannes, hatte ich nicht gepostet.

    Code:
    #define AD5624_REF_ON	1
    Code:
    	cli();
    	UART_init();
    	UART_puts("## INIT ## UART initialisiert\n\r");
    	//PWM_init();
    	//UART_puts("## INIT ## PWM initialisiert\n\r");
    	SPI_MasterInit();
    	UART_puts("## INIT ## SPI Master initialisiert\n\r");
    
    	AD5624_reset(1);
    	_delay_ms(200);
    	AD5624_ref_setup(AD5624_REF_ON);
    	_delay_ms(200);
    	AD5624_LDAC(4);
    	_delay_ms(200);
    	AD5624_power_down(0,4);
    	_delay_ms(400);
    	UART_puts("## INIT ## DAC powered normal mode (0)(all DAC)\n\r");
    	
    	UART_puts("## INIT ## Initialisierung abgeschlossen\n\r");
    	sei();
    	UART_puts("## INIT ## Interrupts eingeschaltet\n\n\r");
    Code:
    void	AD5624_ref_setup( uint8_t state )
    {
    	if ( state == 0 )						// internal reference off
    	{
    		PORTC &= ~(1<<PC4);
    		SPI_MasterSend(0x38, 0x0, 0x0);
    		PORTC |= (1<<PC4);
    		UART_puts("## INIT ## DAC internal ref off\n\r");
    	}
    	else if ( state == 1 )					// internal reference on
    	{
    		PORTC &= ~(1<<PC4);
    		SPI_MasterSend(0x38, 0x0, 0x1);
    		PORTC |= (1<<PC4);
    		UART_puts("## INIT ## DAC internal ref on\n\r");
    	}
    	else {/* Fehlerausgabe an Host */}
    }
    Dort habe ich das Senden des ( 0x38, 0x0, 0x1 ) realisiert.

  7. #17
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.059
    Der Post von Bastiuniversal ist gepostet worden als ich geschrieben habe. Deswegen eine Erklährung erst jetzt. Diese Sprache wie Bastiuniversal geschrieben hat gibt es nicht. Dises Struktur soll nur verdeutlichen wie das Programm bzw der Ablauf aussieht.

    Du kannst die Software SPI an jeden Pin legen den du willst, also auch auf die Hardware SPI Pins. Du musst nur die Hardware SPI ausschalten.

    MfG Hannes

  8. #18
    Neuer Benutzer Öfters hier
    Registriert seit
    20.08.2011
    Beiträge
    18
    Ah okay. Also Pseudo-Code. Danke für die Aufklärung. Hab mich schon gefragt, ob ich mich vllt für die falsche Sprache entschieden habe =)

  9. #19
    Neuer Benutzer Öfters hier
    Registriert seit
    20.08.2011
    Beiträge
    18
    So Leute. Ich bin das Ganze noch mal von Grundauf angegangen und habe auch die Hardware nochmal überprüft. Es war ein Tricky Hardwarefehler den ich mir da selber eingebrockt habe. Da die beiden Teile uC und DAC auf verschiedenen Boards platziert sind war ein Verbinder zwischen diesen und auf dem Board des DAC war der MOSI mit dem MISO vertauscht. Somit konnte nichts ankommen.

    Somit ist das Ganze gelöst und der Code funktioniert! Ich hoffe der Code hilft vllt anderen Leuten weiter, die sich mit dem Thema beschäftigen.

    Gesendet wird nun mit folgenden Einstellungen:

    MSB first, SPI Mode 0, Speed CLK/128 in der Reihenfolge High, Mid, Low

    Vielen vielen Dank für eure Hilfe!

  10. #20
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.059
    Sehr schön wenn es jetzt funktioniert.

    MfG Hannes

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Ähnliche Themen

  1. ATMEGA 8 - Problem!
    Von mikro-VIIV im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 30.10.2008, 13:02
  2. PWM problem mit Atmega 8
    Von Enterprise im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 22.08.2008, 00:56
  3. I2C/TWI und ATmega 8 Problem
    Von cpinkle im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 25.10.2006, 20:02
  4. ATMEGA 128 SPI Problem
    Von schmidtkoe im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 01.10.2006, 19:23
  5. Atmega 16 Problem
    Von Ringo im Forum Elektronik
    Antworten: 10
    Letzter Beitrag: 07.05.2005, 18:42

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress