-         

Ergebnis 1 bis 4 von 4

Thema: Erfahrungen mit DS2482 1wire-I2C-Konverter?

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.07.2005
    Alter
    46
    Beiträge
    179

    Erfahrungen mit DS2482 1wire-I2C-Konverter?

    Anzeige

    Hallo,

    hat hier schon jemand Erfahrungen mit dem DS2482 von Maxim gesammelt? Der IC macht einen ganz brauchbaren Eindruck, er kümmert sich eigenständig um Timing und Signalformung für den 1wire-Bus und setzt das nach I2C (bzw zurück) um. Damit könnte man dem Controller einiges an Arbeit (und sich selbst einiges an Kopfschmerzen ) ersparen.

    Die Datenblätter:
    DS2482-100 (1-Kanal)
    DS2482-800 (8-Kanal)

    Viele Grüße,
    Thomas

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    06.03.2006
    Beiträge
    56
    Erfahrung habe ich nicht, aber warum sollte es auch schlechte geben? Ich habe mein 1-Wire Kram aber dennoch per Software programmiert, war eigentlich voll einfach, also wozu extra nen IC kaufen? Das einzige was relativ aufwendig ist, ist die 1-Wire Suche (also alle ID's der geräte herausfinden). Aber der Algorithmus ist auf der Homepage von maxim-ic.com zu bekommen und er kann fast 1:1 in für ein uC übernommen werden (wenn man ihn in C programmiert).

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.07.2005
    Alter
    46
    Beiträge
    179
    Sagen wir mal so: bei allem, was ich von 'nem spezialisierten IC erledigen lassen kann, kann ich keinen Programmierfehler machen

    Im Ernst - so herausragend, daß ich das selbst hinbekäme, sind meine Programmierkenntnisse noch lange nicht. Und irgendwo 'nen Codeschnipsel kopieren, ohne ihn wirklich zu verstehen, würde mir nicht wirklich helfen. Das rächt sich spätestens dann, wenn was nicht klappt und ich nachvollziehen müßte, was da überhaupt vor sich geht. Dann lieber einen IC mehr...

    Viele Grüße,
    Thomas

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    06.03.2006
    Beiträge
    56
    Is aber wirklich nicht schwer...
    Nur mal die wichtigsten Teile
    Code:
    void w1_write_bit(char bit){
    	if(bit){
    		PORTT &= ~0x01;
    		DDRT |= 0x01;
    		delay_us(A);
    		DDRT &= ~0x01;
    		delay_us(B);
    	}
    	else{
    		DDRT |= 0x01;
    		delay_us(C);
    		DDRT &= ~0x01;
    		delay_us(D);
    	}
    }
    
    BT_UBYTE w1_read_bit(void){
    	BT_UBYTE result;
    	
    	PORTT &= ~0x01;
    	DDRT |= 0x01;
    	delay_us(A);
    	DDRT &= ~0x01;
    	delay_us(E);
    	result = PORTT & 0x01;
    	delay_us(F);
    
    	return result;
    
    }
    
    void w1_reset(void){
    	delay_us(G);
    	PORTT &= ~0x01;
    	DDRT |= 0x01;
    	delay_us(H);
    	DDRT &= ~0x01;
    	delay_us(I+J);
    
    }
    Das sind eigentlich die 3 grundlegenden Sachen, mehr brauch man nicht. Die delays stehen HIER

Berechtigungen

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