mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR und ESP8266 Kommunikation


Autor: Marcel B. (gigi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Ich habe hier einen ESP8266 den ich mit Arduino programmiere.

Jetzt hätte ich gerne zum austesten und rumspielen einen AVR dazu um die 
beiden mal ein bisschen kommunizieren zu lassen.
Im Grunde geht es mir nur darum den ESP (NodeMCU Board) 
Kommunikationsfähig zu machen. Somit könnte ich alle per I2C Verbundenen 
Geräte übers Netz ansteuern. Möchte ihn gerne als "Hauptsteuerelement" 
nutzen.

Die Frage die sich mir jetzt stellt, ist folgende:

Gibt es einen Weg, beide in der gleichen Sprache zu programmieren ?
Denn soweit ich das jetzt recherchiert habe ist es nicht ganz so 
unkompliziert das Programm von Arduino auf meinen AVR zu bekommen.

Ich besitze das STK500, sonst nichts weiteres an Programmierhardware.
Beim NodeMCU Board stecke ich ja quasi nur das USB Kabel ein und kann es 
flashen, allrdings weiss ich nicht wie ich über das STK500 mit Arduino 
flashen kann, soll.

Natürlich bleibt ja noch die Option beides getrennt zu entwickeln.
Da würde mich interessieren, ob das schonmal jemand gemacht hat, oder 
mir Tipps diesbezüglich geben kann.

Vielen Dank im vorraus,
Gigi

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marcel B. schrieb:
> Gibt es einen Weg, beide in der gleichen Sprache zu programmieren ?

Ja sicher, Arduino ist primär für AVR gemacht worden.

Arduino unterstützt das STK500 als Programmieradapter für AVR. 
Alternativ kannst du Dir irgendeinen anderen ISP Programmieradapter 
kaufen. Oder du verwendest ein Arduino (kompatibles) Modul mit AVR 
Mikrocontroller. Diese werden mit Bootloader ausgestattet verkauft und 
lassen sich einfach über das USB Kabel programmieren. Das ist bei 
Arduino eigentlich die normale Vorgehensweise.

Was den ESP angeht: siehe http://stefanfrings.de/esp8266/index.html#prog

Um den Sketch hochzuladen brauchst du beim NodeMCU Board lediglich ein 
USB Kabel. Bei "nackten" ESP8266 Modulen brauchst du ein USB-UART Kabel.

Wenn der ESP8266 Master sein soll, kannst du I²C verwenden.

Wenn du ihn als Slave verwenden willst, verwendest du besser die UART 
Schnittstelle denn sein I²C Anschluss unterstützt den Slave Modus nicht. 
In dem Buch http://stefanfrings.de/mikrocontroller_buch/index.html ist 
ein entsprechendes Beispiel, wo ein AVR den ESP über UART Schnittstelle 
als Netzwerk-Interface verwendet.

: Bearbeitet durch User
Autor: Acim (Gast)
Datum:

Bewertung
-3 lesenswert
nicht lesenswert
Hallo ich bin neuer Fahn von eletronic hir.

Ein releise macht einen Leuchte an, mit hochspannung!
Kenen Angst ich passe auff👍

Ich habe gehöhrt das man das auch mit so einem transitstor anmachen 
kann.
Ich habe einen goldenen Transistor mir einem stahlgehüse mit einer 
kleinen Fahn dran. Da kommen 4 drähte raus.
Ist von einem ser guten freund.
Muss ich dann immer 2 Drähte zusammenschweißen damit ein Schalter raus 
wird?
Ich hab den In den Kasten vom kapputten schalter verklehbt.
Ist sicher so!

Wie kann ich dann den spannungsfluss an und ausmachen?
Wo ist da der Schlater für?

Hab am wochende zeit dafür.
Bekommen wir eine lösungh dafür zusammen?

Danke an die spezialkräfte hier.
Acim

Autor: Max M. (maxmicr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Wenn du ihn als Slave verwenden willst, verwendest du besser die UART
> Schnittstelle denn sein I²C Anschluss

Liegt anscheinend daran, dass sich keiner die Mühe gemacht hat, den 
Slave Modus in Software nachzubilden. Hardware-I²C unterstützt der 
ESP8266 nämlich nicht.

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Max M. schrieb:
> Liegt anscheinend daran, dass sich keiner die Mühe gemacht hat, den
> Slave Modus in Software nachzubilden.

Dafür müsste der Chip auf Interrupts schnell reagieren, und das kann er 
nicht - jedenfalls nicht zuverlässig.

Autor: Marcel B. (gigi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal für die Antworten,

kann bei Arduino nirgends eine Option finden, wo das STK500 aufgeführt 
wird.
Dann bin ich wohl einfach blind.
In diesem Sinne wäre ich für einen Tipp sehr dankbar.


Da I2C ja dann doch nicht ganz so toll ist, welche Art der Kommunikation 
würdet ihr denn wählen ?


Im Grunde geht es mir nur darum, überhaupt kommunizieren zu können.
Also die Controller, versteht sich. :D


Alles andere kann, können ja dann die einzelnen Controller übernehmen.

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Marcel B. schrieb:
> kann bei Arduino nirgends eine Option finden, wo das STK500 aufgeführt
> wird.

Menü Werkzeuge/Programmer/Atmel STK500

> welche Art der Kommunikation würdet ihr denn wählen ?

Stefanus F. schrieb:
> Wenn du ihn als Slave verwenden willst, verwendest du besser die UART
> Schnittstelle

Solange der ESP Master ist, spricht nichts gegen I²C.

Autor: c-hater (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:

> Max M. schrieb:
>> Liegt anscheinend daran, dass sich keiner die Mühe gemacht hat, den
>> Slave Modus in Software nachzubilden.
>
> Dafür müsste der Chip auf Interrupts schnell reagieren, und das kann er
> nicht - jedenfalls nicht zuverlässig.

Der Chip selber könnte das (zumindest bei 100kHz-I2C) sehr wohl, sogar 
mit sehr viel Sicherheitsreserve...

Was es nicht kann, ist die Software, die normalerweise darauf läuft...

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
c-hater schrieb:
> Was es nicht kann, ist die Software, die normalerweise darauf läuft...

Das meine ich doch. Klar kannst du auf die Espressif Firmware 
verzichten, nur bleibt dann von den Netzwerk-Fähigkeiten ungefähr nichts 
mehr übrig. Wer will das schon?

: Bearbeitet durch User
Autor: Marcel B. (gigi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Menü Werkzeuge/Programmer/Atmel STK500

Oh man, was bin ich für ein Blindfisch!

Wenn du mir jetzt auch noch verrätst, wie ich z.B. einen Attiny 
auswählen kann, bist du mein Held! :D

LG,
Gigi

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Marcel B. schrieb:
> Wenn du mir jetzt auch noch verrätst, wie ich z.B. einen Attiny
> auswählen kann, bist du mein Held! :D

Dazu musst du einen Core installieren: 
https://github.com/SpenceKonde/ATTinyCore

Sag mal, ist dein Google kaputt?

Autor: Marcel B. (gigi)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Sag mal, ist dein Google kaputt?

Ich bin einfach zu dämlich die richtigen Begriffe einzutippen, glaube 
ich.

DANKE! :D

Autor: Max M. (maxmicr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marcel B. schrieb:
> Da I2C ja dann doch nicht ganz so toll ist, welche Art der Kommunikation
> würdet ihr denn wählen ?
>
> Im Grunde geht es mir nur darum, überhaupt kommunizieren zu können.
> Also die Controller, versteht sich. :D

Der ESP8266 unterstützt Hardware-SPI - das wäre also möglich. Oder UART

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.