Gefunden für avr twi thermometer - Zum Elektronik Forum





1 - TWI zwischen 2 Atmea 8 -- TWI zwischen 2 Atmea 8




Ersatzteile bestellen
  Hallo zusammen,

ich sitze nun am selben Problem wie damals Micha in dem Beitrag (klick mich). Wir sollen ebenfalls zu Anschauungszwecken eine TWI-Verbindung zwischen 2 Atmega8 herstellen. Leider ist im Forum nicht das genaue Ergebnis ersichtlich und wir kommen nicht mehr weiter (eigentlich haben wir auch keine besonders große Ahnung )

Es trat kein Fehler beim kompilieren auf, das Programm wurde gebrannt, die Controller an den SDA und SCL-Pins verbunden.

Folgende Frage zu diesem Code:
- Ist dieser Code für Master und Slave? Wenn ja, was muss beim Master und Slave angepasst werden?



Code :
2 - Atmega TWI 24c04 lesen / beschreiben -- Atmega TWI 24c04 lesen / beschreiben
Aufbauend auf der einfachen TWI-API aus dem Thread hier.



#define WRITE 0
#define READ 1

uint8_t const EEPROM_ADDR = 0xac;

uint8_t read_eeprom(uint16_t address)
{
uint8_t upperbyte = EEPROM_ADDR;
upperbyte |= ( (uint8_t) (address >> 7) ) & 0xFE;

i2c_start();
i2c_transmit(upperbyte + WRITE);
i2c_transmit( (uint8_t) address );
i2c_start();
i2c_transmit(upperbyte + READ);
register uint8_t data = i2c_receive(NACK);
i2c_stop();

return data;
}


void write_eeprom(uint16_t addr, char byte)
{
i2c_start();

register uint8_t upperbyte = EEPROM_ADDR;
upperbyte |= ( (uint8_t) (addr >> 7) ) & 0xFE;

i2c_transmit(upperbyte + WRITE);
i2c_transmit((uint8_t)(addr));
i2c_transmit(byte);
i2c_stop();
}


Das kann man sehr einfach in Assembler umschreiben, da braucht man nicht mal Ahnung von C zu haben.
Vorsichtshalber da...








3 - Atmega16 mit THMOD-I2C als Slave... keine Rückmeldung -- Atmega16 mit THMOD-I2C als Slave... keine Rückmeldung
Guten Tag,

in einem Projekt ist ein Aufgabenteil zu lösen, indem eine Temperatur mit Hilfe vom Thermoelement Modul THMOD-IC2 gemessen werden soll.

Das ganze läuft wie im Namen bereits enthalten über ein IC2-Bus, der im Atmega16 über TWI realisiert wird.

In meinem Fall, so denk ich mir ist die Konfiguration als Master-Receiver sinnvoll.

Nun zum Problem: In jedem Source-Code den ich finde, wie auch in diesem Forum fängt es immer mit den selben Anweisungen an:


Code :
4 - Twi write und read ATmega 16 -- Twi write und read ATmega 16
Hallo liebe Techniker, ich bin biotechnolgin und habe folgende aufgaben zu lösen.leider hab ich bisher nie c programmiert, aber ich hab am wochenende ein tutorial durchgearbeitet,
Bis auf den Programmierteil (c) hab ich alles durchgearbeitet.
Ich hoffe ihr könnt mit dort helfen.

Die Aufgabe:Abfragen eines Sensors über I^2C Bus

Die TWI-Schnittstelle des ATmega erlaubt den Zugriff auf I2C-Bus-Geräte.
Deswegen gelten im folgenden Text TWI und I2C als gleichbedeutend.
a) Machen Sie sich mit dem prinzipiellen Ablauf einer I2C-Kommunikation
vertraut (z.B. ATmega Dokumentation).
b) Laden Sie von der ITI-Page das Template-Paket zu dieser Aufgabe
herunter. Machen Sie sich mit dem TWI-Treiber (iti_twi.c, iti_twi.h)
vertraut.
c) Implementieren Sie in der Hauptdatei Uebung2.c die fehlenden
Routinen:
int twi_writeregister(uint8_t twi_addr, uint8_t reg, uint8_t data)
int twi_readregister (uint8_t twi_addr, uint8_t reg, uint8_t* data)
d) Machen Sie sich mit der Möglichkeit vertraut, den SRF02 Sensor über
I2C-Bus anzu-sprechen (siehe SRF02-Datenblatt auf der ITI-Page).
e) Führen Sie in der Hauptschleife des Programms eine Messung mit dem
SRF02 aus und stellen Sie das Ergebnis auf dem Bildschirm dar.
f) Bringen ...
5 - Probleme TWI (I2C) Atmega 16 -- Probleme TWI (I2C) Atmega 16
Hallo erstmal!

Ich habe mich seit dieser Woche hier angemeldet, da hier sehr viel Interessante Sache über den Atmega und TWI stehen. Bloß leider funktioniert diese Funktion nicht so ganz bei mir.... Ich habe mit meinem Kumpel den ganzen Tag versucht einen DS1621 auszulesen, was aber überhaupt nicht klappen wollte... Wir sind schon richtig daran verzweifelt, weil wir bis Schulschluss (als uns der Hausmeister rausgeschmissen hat^^) daran gesessen sind. Wir haben dies schon in der Schule mit einem C515C erfolgreich geschafft, aber auch nur, da wir die I2C funktionen selbst geschrieben haben. Ich arbeite aber zu Hause mit dem Atmega 16 und würde deswegen auch gerne die internen TWI-Funktionen schon recht gerne nutzen. An dem Atmega ist ein 8MHz Quartz angeschlossen und das Fusebit hab ich deswegen auch schon rausgenommen. Programmieren tu ich über eine ISP-Schnittstelle und AVR. Verdrahtungsfehler sind meiner Meinung auch ausgeschlossen, da ich diese mit meinem Kumpel schon mehrmals überprüft habe.^^ Ich poste nun hier mal einfach das von uns geschriebene C-Programm und hoffe, dass ihr uns helfen könntet. Wir sind wie gesagt noch blutige Anfänger, deswegen bitte nicht lachen, falls wir richtig dumme Fehler drin haben.
6 - MOSFET mit Controller (Atmega128) schalten -- MOSFET mit Controller (Atmega128) schalten
Hallo Andreas,

Wie hast du das mit der Diode genau gemacht?

Wenn der AVR auf Masse schaltet, dann ist seine Konfiguration so:
Im DDRx-Register ist das entsprechende Bit auf '1' gesetzt, das korrespondierende Bit im PORTx-Register auf '0'.

Lösung: schreibe das Bit im entsprechenden Register auf '1'.


---
Ob das jetzt wirklich die Lösung war, kann man erst wissen, wenn man den genauen Aufbau kennt sowie den exakten Pin.
Einige Pins sind nämlich auch für andere Hardware nutzbar und werden ggfs. von den entsprechenden Modulen einfach überschrieben. Dann ist es egal, was man im Programm macht, die Hardware hat dann diesen Pin fest unter Kontrolle. Beispiel für so eine Mehrfachbelegung von IO-Pins sind UARTs, SPI oder TWI. Fast alle IO-Pins haben Mehrfachnutzung. Daher kann man ohne nähere Kenntnis kaum helfen.

Schlussendlich kann auch deine "Sicherheitsdiode" daran Schuld sein
Edit:
Der fast schon intelligente Chip ist dafür auch maßlos übertrieben. Je nach Lüfterstrom reicht auch ein einfacher MOSFET mit Logiklevel-Eingang oder zusätzlichem Pegelshifter (NPN und Widerstand).


[ Diese Nachricht wurde ge...
7 - Atmega 8 einfaches TWI ( I²C) Programm -- Atmega 8 einfaches TWI ( I²C) Programm
So, ich habe das was gefunden.
Die wirklich kleine Bibliothek wurde auf einem Mega48 eingesetzt, sollte also auf nem Mega8 ohne Änderung laufen.

Schau in den Header, dort sind alle Deklarationen sowie sehr kurze Erklärungen. Für diese habe ich die Doxygen-Syntax benutzt. Einige Editoren heben das auch hervor.

In twi.c ist die eigentliche Implementation. Ich hänge dir die Bibliothek vorkompiliert sowie als Quelltext an.
Es ist ein Tar-Archiv, kann man auch unter Windows öffnen.

Empfohlener Kompiler-Aufruf:
avr-gcc -mmcu=atmega8 -DF_CPU=<Frequenz> -g -Wall -Os -c -o twi.o twi.c

Du musst dann später bloß gegen den Objektcode, der main(void) enthält, linken, und du kannst die Bibliothek nutzen
Den Header hab ich nochmals extra hochgeladen, um sich einen schnellen Überblick zu verschaffen.

Außerdem rate ich dringend zur Datenblattlektüre, denn dann kannst du auch verstehen, was ich da mache. Kommentare habe ich mir großteils gesperrt. Ist ja nicht viel . ...
8 - PAL-Decoder -- PAL-Decoder
Was spricht denn konkret gegen I²C?
Viele ICs in diesem Bereich nutzen nämlich I²C. Dafür wurde es ja entwickelt.

In den Dateblättern stehen doch Timingdiagramme drin. Mit dem DSO kannst du ja zur Not auch nachschauen, ob die Signale richtig sind, die z.B. ein AVR mit Hardware-TWI (Alias für I²C) erzeugt. ...
9 - I2C Ansteuerung Atmel -- I2C Ansteuerung Atmel
Hallo!

Ich soll eine I2C Interface zwischen einem PIC (dsPIC30f6014A) als Master und einem ATMEL als Slave (ATMega128) herstellen. Ich habe auch soweit die Software fertig und auch das Signal des PIC ist soweit in Ordnung, nur leider reagiert der TWI Interrupt am Atmel nicht!!

Hier das Ausgangssignal des PIC: Gesendet wird zuerst 0xC4 (0x62 Slave-Adresse und als LSB 0, da es win Writezyklus ist:




Nun zum Atmel, der irgendwie nichts mit dem Signal anfangen kann bzw. nicht reagiert.
Das ist mein Assembler Code für den Atmel-Slave:


Code :
10 - Welcher AVR Microcontroller? -- Welcher AVR Microcontroller?
Danke für die Infos. Ich werde nun ein ATmega16 verwenden.
Hatte mich schon fast für den ATmega162 entschieden, doch dann ist mir aufgefallen das dieser keine Analog Digital Converter hat.

Bevorzugt hätte ich den ATmega162 da dieser zwei USART's hat und so könnte ich zwei AVR's über längere Distanzen kommunizieren lassen.
Jetzt wird halt I2C (TWI) ein bisschen zweckentfremdet.
https://forum.electronicwerkstatt.d......html ...

Nicht gefunden ? Eventuell gibt es im Elektroforum Transistornet.de für Avr Twi Thermometer eine Antwort
Im transitornet gefunden: Avr Twi Thermometer


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 6 Beiträge im Durchschnitt pro Tag       heute wurden bisher 4 Beiträge verfasst
© x sparkkelsputz        Besucher : 192473199   Heute : 5127    Gestern : 5744    Online : 782        2.8.2026    23:59
5 Besucher in den letzten 60 Sekunden        alle 12.00 Sekunden ein neuer Besucher ---- logout ----su ---- logout ----
xcvb ycvb
0.0199880599976