Hallo.
Ich möchte mit dem ESP Modul und dem ATtiny mehrere Ausgänge setzen oder
löschen. Dazu werte ich die UART Rückgaben vom ESP aus und handle
dementsprechend. Das ESP Modul erhält über eine TCP/IP Verbindung zu
einem Server die benötigten Strings.
Problem ist nun, dass der Attiny die Bytes vom ESP nur Teilweise richtig
empfängt (siehe Bild von Putty). Die Bytes werden vom ESP aber definitiv
richtig übertragen da direkt an Putty angeschlossen oder an einem
ATmega32 kein Problem besteht.
Der Anschluss ist m.M. nach nicht das Problem, ich hänge aber trotzdem
einen ähnlichen Schaltplan an. Als Test habe ich einen zweiten ESP
getestet (ESP-M3) der mit 5V betrieben wurde. Selbiges Problem. ATmega
funktioniert, ATtiny nicht.
Habe ebenfalls versucht mit Putty Zeichen an den ATtiny zu senden. Die
kamen alle Problemlos zurück. Kein Byte wurde verschluckt. Allerdings
vermute ich das der ESP schneller die Zeichen überträgt als in Putty.
Folgend mein Programm, welches nur die Zeichen rückgibt (echo über
Interrupt).
1
#define F_CPU 8000000UL
2
#include<avr/io.h>
3
#include<util/delay.h>
4
#include<avr/interrupt.h>
5
#include<avr/wdt.h>
6
7
#define baud 9600
8
#define USART_BAUD_SELECT (F_CPU/(baud*16L)-1)
9
10
ISR(USART0_RX_vect)
11
{
12
uart_send(UDR);
13
}
14
15
intmain(void)
16
{
17
UBRRH=(unsignedchar)(USART_BAUD_SELECT>>8);
18
UBRRL=(unsignedchar)USART_BAUD_SELECT;
19
// Enable receiver, transmitter and interrupt
20
UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);
21
// Set frame format: Async, 8data, 1stop bit
22
UCSRC=(1<<UCSZ1)|(1<<UCSZ0);
23
24
sei();
25
26
while(1)
27
{
28
29
}
30
}
31
32
voiduart_send(unsignedchardata)
33
{
34
// Wait for empty transmit buffer
35
while(!(UCSRA&(1<<UDRE)));
36
// Put data into buffer, sends the data
37
UDR=data;
38
}
Habe das ganze auch mal versucht mit einem Puffer zu lösen um
1
while(!(UCSRA&(1<<UDRE)));
zu vermeiden, allerdings selbiges Problem. Habe das nur ich oder
kämpfen damit andere auch?
Der ATtiny hat als FUSE D7(MSB) C4(LSB).
Der ESP und ATTiny sind auf 9600B, 8Bit, 1Stop eingestellt.
BG
Umbrecht
Der Tiny läuft mit internem Oszillator?
Der interne Oszillator ist vermutlich nicht genau eingestellt?
Viele UART-Probleme entstehen durch eine ungenaue Taktquelle am AVR. Man
kann den internen Oszillator aber über Register trimmen oder einen
externen Oszillator verwenden.
Mit deinem Oszilloskop kannst du auch die Bitbreiten von ESP und AVR
messen.
Sebastian R. schrieb:> Der Tiny läuft mit internem Oszillator?> Der interne Oszillator ist vermutlich nicht genau eingestellt?
Ja ist er. Diesen Punkt habe ich nicht bedacht da ich solche Probleme
noch nie mit einem Controller hatte. Ich verwende meist den Internen
Oszillator.
Werde mal versuchen ein externes 16MHZ Quarz anzuschließen und Programm
/ Fuses entsprechend anpassen.
Sebastian R. schrieb:> Mit deinem Oszilloskop kannst du auch die Bitbreiten von ESP und AVR> messen.
Sowas besitze ich leider (noch) nicht Privat.
BG
Umbrecht
Stored B. schrieb:> Problem ist nun, dass der Attiny die Bytes vom ESP nur Teilweise richtig> empfängt
Logisch, du brauchst einen Pegelwandler zwischen dem 5V Mikrocontroller
und dem 3,3V ESP Modul. Siehe
http://stefanfrings.de/esp8266/index.html#an5v
Und du brauchst einen Quarz. Der interne R/C Oszillator ist zu ungenau
und temperaturabhängig, damit klappt das nur manchmal.
Stored B. schrieb:>> Mit deinem Oszilloskop kannst du auch die Bitbreiten von ESP und AVR>> messen.> Sowas besitze ich leider (noch) nicht Privat.
Dann kaufe dir einen "8 CH Logic Analyzer" für 10 Euro. Benutzen kannst
du ihn mit der freien Software "PulseView".
Und wenn du noch etwas mehr Geld hast, hole dir ein DSO150 für ca. 30
Euro. Das ist ein Spielzeug-Oszilloskop für NF Signale. Prima um die
Qualität der Signalpegel zu kontrollieren.
Stefan ⛄ F. schrieb:> Logisch, du brauchst einen Pegelwandler zwischen dem 5V Mikrocontroller> und dem 3,3V ESP Modul. Siehe> http://stefanfrings.de/esp8266/index.html#an5v
1.)
Stored B. schrieb:> Als Test habe ich einen zweiten ESP> getestet (ESP-M3) der mit 5V betrieben wurde.
2.)
ATtiny wie auch ATmega erkennen beim 5V Betrieb bereits Pegel ab 3V.
3.)
Habe auch den ATtiny testweise mit 3.3V Betrieben. Keine Änderung.
Die ESP Chips kann man nicht mit 5V betreiben. Sie vertragen maximal
3,6V an allen Pins. Dementsprechend kann es nicht Ok sein, den 5V TxD
Ausgang des AVR direkt an den ESP Chip anzuschließen.
> Habe auch den ATtiny testweise mit 3.3V Betrieben. Keine Änderung.
Dann ist dein primäres Problem die Taktquelle. Es ändert aber nichts
daran, dass du den ESP Chip mit deinem Aufbau misshandelst.
Erstmal behebt man die offensichtlichen Fehler, bevor man Mutmaßungen
äußerst, was sonst noch falsch sein könnte.
Stored B. schrieb:> ich hänge aber trotzdem einen ähnlichen Schaltplan an.
Wäre noch zu klären inwieweit der Schaltplan der Realität
entsprechen sollte. Ich denke da an fehlende GND- und VCC-
Verbindungen sowie fehlende Abblock-Kondensatoren. Beides
für sich betrachtet kann schon zu Fehlfunktionen führen.
Stored B. schrieb:> Jegliche "Misshandlung"> sind mir hierbei egal. Die Module vertragen das.
Gut, dann sind dir auch jegliche Fehlfunktionen egal, die sich daraus
ergeben, und du brauchst keine Hilfe.
Der Thread kann hiermit geschlossen werden.
Stored B. schrieb:> Naja selbst mit 5V und ohne Abblock Kondensator funktioniert die> Schaltung / Übertragung mit anderen Controllern.
Wie heisst es doch so schön:
Beratungsresistenz ist eine Zier, doch weiter kommt man
ohne ihr.
Oder
Reisende soll man nicht aufhalten.
Stefan ⛄ F. schrieb:> Gut, dann sind dir auch jegliche Fehlfunktionen egal, die sich daraus> ergeben, und du brauchst keine Hilfe.>> Der Thread kann hiermit geschlossen werden.
Naja im zweiten Post war eigentlich schon alles geklärt was noch
Problematisch sein könnte.
ächz schrieb:> Beratungsresistenz ist eine Zier, doch weiter kommt man> ohne ihr.
Von dir kam eine Beratung?
Stored B. schrieb:> Von dir kam eine Beratung?
Selbst wenn du das nicht erkannt haben solltest: ja.
Aber auch ohne meinen Anteil kann man am Verlauf des
Threads Schlüsse ziehen die zu meiner vorherigen Bemerkung
führten.
Mit einem 16MHZ Quarz funktioniert das ganze. Danke an Sebastian.
An die Hypochonder (Phtefan und kotz) hier, so ein Ekelhaftes Verhalten
sieht man selten. Schade das man solche Kommentare nicht löschen kann.
BG
Umbrecht
Stored B. schrieb:> An die Hypochonder (Phtefan und kotz) hier, so ein Ekelhaftes Verhalten> sieht man selten.
Das ist der "Dank" dafür dass ich dir einen Quarz, eine Korrektur der
Schaltung und hilfreiche preisgünstige Messgeräte empfohlen habe.
Super du Arsch.
Stefan ⛄ F. schrieb:> Stored B. schrieb:>>> An die Hypochonder (Phtefan und kotz) hier, so ein Ekelhaftes Verhalten>> sieht man selten.>> Das ist der "Dank" dafür dass ich dir einen Quarz, eine Korrektur der> Schaltung und hilfreiche preisgünstige Messgeräte empfohlen habe.> Super du Arsch.
Hat ja auch keiner gefordert. Aber das ist wie wenn ich mit einem Kind
diskutiere das es ins Bett gehen soll. Sinnfrei.
BG