Forum: Haus & Smart Home Attiny2313 mit MAX487 zum Laufen bringen


von Andreas S. (emc2)


Lesenswert?

Hallo,
wie schon mal geschrieben bin ich ein ziemlicher Anfänger im Bereich der 
AVR Programmierung, aber ich lerne dazu.
Was bisher funktioniert: Attiny2313 kann mit AVR-Studio4 und WinAVR 
programmiert werden. Ports als Ein-/Ausgänge definieren ist auch kein 
Problem und eine LED mit PWM zu dimmen und per Schalter ein/ausschalten 
ist auch ok.

Allerdings scheitere ich zu Zeit an der Verbindung Attiny2313-MAX487 mit 
dem PC (Schnittstelle HXSP-2108G). Über Arduino und den COM-Monitor kann 
ich Daten senden bzw empfangen.
Das Problem ist aber, dass die gesendeten Zeichen als ganz andere 
Zeichen wieder ankommen und die Kommunikation einfach nicht 
zufriefenstellend funktioniert.

Gibt es einen Schaltplan für eine einfache Verbindung 
Attiny2313-MAX487-PC (inkl. Terminierung usw...) mit Softwarebeispiel in 
C (AVR-STUDIO)?

Würde mir wirklich sehr weiterhelfen.

von Ingo (Gast)


Lesenswert?

Wo ist das Problem genau? Wenn nur wirre Zeichen kommen kann es sein das 
A und B vertauscht sind.  Du musst den Reciever des IC abschalten wenn 
du sendest bzw den Transmitter abschalten wenn du empfängst.

von Andreas S. (emc2)


Lesenswert?

der RS487 wird mittels PD2 ein- und ausgeschaltet
aber es geht mir hier nicht um Details, sondern ein Gesamtkonzept mit 
oben genannten Bauteilen, Vielleicht weiß ja jemand einen guten Link der 
genau das beschreibt.

von Ingo (Gast)


Lesenswert?

Achso, verstehe. Lieber was fertiges nehmen als selber Nachdenken bzw. 
Das Datenblatt lesen. Na dann viel Spass.

Wenn du die Details nicht wissen willst musst du dich nicht wundern 
wenn's nicht geht. So etwas nennt man Pfusch.

von Andreas S. (emc2)


Lesenswert?

so wars natürlich nicht gemeint, aber ich will ja damit nicht das Rad 
neu erfinden und wenns schon fertige Lösungen für die Kommunikation mit 
MAX487 gibt dann könnte ich ja darauf aufbauen... hab nur eben noch 
nichts passendes gefunden und wollte hier einfach fragen ob sowas jemand 
schon hat oder zufällig einen guten Link kennt...

von Andreas S. (emc2)


Lesenswert?

senden von attiny2313 => MAX487 => MAX487 => attiny2313 funktioniert 
einwandfrei, allerdings empfängt der PC die Daten nicht korrekt, also 
nur wirre Zeichen.
Ich verwende den internen Taktgenerator des Attiny2313, kann es daran 
liegen, dass die baudrate zu ungenau ist, jedoch von attiny2313 zu 
attiny2313 ausreichend genau ist?

Bitte um Hilfe, danke!


Hier der Code des Senders. Es wird bei Tastendruck jeweils ein x 
gesendet. Der Empfänger quittiert den empfang des Zeichens durch 
schnelles blinken einer LED wenn x erkannt wird, bzw durch langsames 
blinken bei einem anderen Zeichen.
1
// Software 1
2
3
#include <avr/io.h>
4
#include <util/delay.h>
5
6
#define F_CPU 1843200UL
7
8
9
int main (void)
10
{
11
CLKPR = 0x80;
12
CLKPR = 0x00;
13
unsigned char get;
14
get='x';
15
16
17
//baud=4800UL;
18
/* Set baud rate */
19
// Set baud rate bits
20
UBRRH = (23>>8);
21
UBRRL = 23;
22
/* Enable receiver and transmitter */
23
UCSRB = (1<<RXEN)|(1<<TXEN);
24
/* Set frame format: 8data, 1stop bit */
25
UCSRC = (0<<USBS)|(3<<UCSZ0);
26
27
DDRB = (1 << PB0); // Pin 1 von Port A (PA1) als Ausgang schalten (für LED)
28
DDRD = (1 << PD2); // Pin2 an Port D als Ausgang setzen zum aktivieren des MAX487
29
DDRB != ~(1 << PB1); // Pin 0 von Port B (PB0) als Eingang für Taster schalten
30
31
PORTB |= (1 << PB0);  // bit im Portregister auf 1 setzen => LED an
32
PORTD |= (1 << PD2);  // bit im Portregister auf 1 setzen => MAX487 sendet
33
34
35
// ab hier Endlosschleife
36
for (;;) {
37
38
39
  if (!(PINB & (1<<PINB1))) {   //Taste gedrückt
40
  /* Wait for empty transmit buffer */
41
  while ( !( UCSRA & (1<<UDRE)));
42
  /* Put data into buffer, sends the data */
43
  UDR = get;
44
  _delay_ms(1000);
45
46
47
}
48
49
}
50
51
}

von Route_66 H. (route_66)


Lesenswert?

Hallo!
Bei so viel Unkenntnis will ich mal gnädig sein: Der interne 
Taktgenerator kann bei bestimmten Konstellationen geeignet sein, eine 
Kommunikation über das UART-Interface zu ermöglichen. Du liest jetzt 
hier "kann" und vermisst vielleicht "stabil" und "dauerhaft" und 
vielleicht auch "definierte Baudrate"; dafür ist der interne 
RC-Generator nicht gedacht und auch nicht geeignet. Zwischen zwei Tinys, 
aus der gleichen Charge, bei gleichen Umgebungsbedingungen kann man die 
Abweichungen ja überhaupt nicht bemerken. Erst im Zusammenspiel mit 
fixen Datenraten (PC) tritt das Chaos zu Tage.
Wenn Du dann noch sowas machst, wird es lustig:
> Ich verwende den internen Taktgenerator des Attiny2313,
> #define F_CPU 1843200UL

von Andreas S. (emc2)


Lesenswert?

Danke!
Mittlerweile habe ich mich schon mehr eingelesen und hab mir gleich mal 
Quarze bestellt (natürlich auch 22pf Kondensatoren) um einen stabilen 
Takt zu erzeugen. (Dann muss ich noch die Fuses richtig setzen etc..)
Ich gehe eben nach dem Prinzip learning-by-doing vor und wer liest schon 
die 240 Seiten des Attiny2313 durch bevor er eine kleine Testschaltung 
zusammenbaut? ;)
Das ist eben mein allererster Versuch einen Mikroprozessor zu 
programmieren, aber dafür bin ich mit dem Fortschritt recht zufrieden ;)

von Andreas S. (emc2)


Lesenswert?

OK, jetzt funktioniert (dank Quarz) die Kommunikation zwischen PC und 
attiny2313 (PC-COM1-ICL232-MAX487-MAX487-attiny2313), mit einem kleinen 
Problem: Pin 7 am seriellen Port (also DTS) ist immer auf High und 
deshalb ist auch der MAX487 immer aktiviert und verhindert den Empfang 
der Daten (manuelles high und low Pegel setzen funktioniert, dann kann 
ich dementsprechend senden/empfangen)

Kann es am Logilink USB2Seriell Adapter liegen, dass DTS immer High ist? 
wie kann ich dieses Problem lösen?

von Andreas S. (emc2)


Lesenswert?

ich meine natürlich RTS nicht DTS... (war schon spät)

von Andreas S. (emc2)


Lesenswert?

Kurzer Zwischenbericht:
die Haussteuerung funktioniert (das Problem lag am einzigen fertig 
gekauften Teil: dem USB auf RS485 Adapter)

Die Frage ist nun welches Kabel idealerweise für das gesamte System 
benutzt wird?

Es sollte 4 Adern haben (+5V, GND, A, B) wobei A,B eben verdrillt sein 
sollten. Verbraucher sind nur die Attiny2313 mit MAX487 (ca 40 STK in 
der Endausbaustufe), MosFETs für die LED-Steuerung, Transistoren, die 
über eine seperate 12V Leitung die Relais schalten und evtl Brandmelder, 
die aber nicht viel Leistung beziehen. Also an sich sollte nicht viel 
Last an der 5V Leitung hängen.

von Andreas S. (emc2)


Lesenswert?

kann es zu Problemen kommen wenn man zB das 
http://edgecdn.lappgroup.com/fileadmin/documents/technische_doku/datenblaetter/unitronic/DB2170240DE.pdf 
EIB Buskabel nimmt, da es eine sternviererverseilung hat?
Wenn ich darin ein Adernpaar A/B und eines +5V/GND nehme, kann es zu 
Problemen führen?

Vielen Dank!

von Andreas S. (emc2)


Angehängte Dateien:

Lesenswert?

Mein Hausbus-System läuft! Vielen Dank für die Hilfe bzw die zahlreichen 
hilfreichen Einträge im gesamten Forum!

Hier mal die Eckdaten:

- Attiny2313 mitttels MAX487 an RS485-Bus und passt in eine 
Unterputzdose (siehe Bild in Anhang)

- jeweils 12 frei konfigurierbare Ports für Taster - inverse Taster - 
LED mit Software PWM - Rollläden Steuerung - Rauchmelder Vernetzung I/O 
- DS18S20 (Temperatur) bzw DS2438 (Temperatur+A/D Wandler) 1-wire 
Sensoren

- die Software am Attiny2313 (hat gerade noch drauf gepasst mit 2026 
bytes) ist auf jedem Controller gleich und man kann an jedem beliebigen 
Port jedes Gerät anschließen - die Konfiguration erfolgt ausschließlich 
über den PC bzw den RS485 Port

- die Steuerung erfolgt zentral über einen PC und die serielle 
Schnittstelle

- Konfiguration und Daten werden über eine MYSQL Datenbank 
abgelegt/ausgelesen, somit ist der Zugriff auch über PHP möglich

- Android App folgt noch

von charlie (Gast)


Lesenswert?

Hi!

Erst mal Gratulation! In knapp drei Monaten vom "ziemlicher Anfänger" 
zum fertigen Hausbus, das ist nicht schlecht. Zumal, zumindest in diesem 
Thread, keine echte Hilfestellung gegeben wurde. Auf die Einlassungen 
der "Gnädigen" hättest Du sicher verzichten können. -scnr-

Gibt's denn noch ein paar Infos zum Gesamtsystem?
Z.B.: PC-Steuerung, Betriebssystem, Aktoren, etc.
Würde mich (und sicher Andere auch) interessieren und, man muss das Rad 
ja nicht jedesmal neu erfinden. ;-)

Readya
Charlie

von Andreas S. (emc2)


Lesenswert?

charlie schrieb:
> Gibt's denn noch ein paar Infos zum Gesamtsystem?
> Z.B.: PC-Steuerung, Betriebssystem, Aktoren, etc.
> Würde mich (und sicher Andere auch) interessieren und, man muss das Rad
> ja nicht jedesmal neu erfinden. ;-)

Leider hab ich derzeit ein bisschen Stress, denn das Haus um die 
Steuerung muss auch gebaut werden ;)

Die Steuerung ist in C programmiert und läuft auf einem Windows7 PC, auf 
dem auch gleich in einer VirtualBox ein FreeNAS Server läuft.
Die Aktoren sind auch selbst gelötet, zB für Rolläden mit Transistor und 
12V Relais, 230V (LED) Dimmer mit Nulldurchgangsdetektor und 
Phasenanschnittsteuerung...

wenn ich mal dazu komme werde ich bestimmt eine detailiierte Aufstellung 
posten!

von Peter F. (peter1980)


Lesenswert?

Ich melde auf alle Fälle auch mal Interesse an für weitere Informationen 
;)

von Andreas S. (emc2)


Lesenswert?

Der Hausbau startet bald und ich bin schon gespannt, ob die 
Haussteuerung in der Praxis auch so funktioniert, wie bei mir am 
Schreibtisch ;)

Werde auf jeden Fall den Einbau/Aufbau etc dokumentieren!

Gestern habe ich von SOS-electronic den CO2 Sensor erhalten um damit die 
kontrollierte Wohnraumlüftung überwachen/steuern zu können.

Ich denke damit sind alle Geräte vorhanden und ich wünsche ein schönes 
Frühjahr!

von Oliver R. (roliver)


Lesenswert?

Hallo,

bau mir auch grade sowas auf, doch ich hätte auch Intresse an deiner 
Idee ;-)

Gruß

Oliver

von Thomas (kosmos)


Lesenswert?

Hallo, wollte mal fragen obs in der Praxis schon getestet wurde. Weitere 
Bilder z.B. der Aktorplatinen würden mich auch interessieren.

von Skorpi08 (Gast)


Lesenswert?

Hat wohl keine Zeit, muss bauen :D

von Andreas S. (emc2)


Lesenswert?

Skorpi08 schrieb:
> Hat wohl keine Zeit, muss bauen :D

So ist es ;)

System läuft allerdings schon auf der Baustelle und steuert schon 
Garagentor, Bewegungsmelder mit Beleuchtung für Garage und Keller und 
einige Alarmsensoren und Rauchmelder.

Im Herbst ist Einzugstermin, dann gibt's ein großes Update. Versprochen 
;)

: Bearbeitet durch User
von J. W. (skorpi08)


Lesenswert?

Wann ist denn Herbst :)

von Andreas S. (emc2)


Lesenswert?

Gute Frage ;-)

Wie es beim Hausbau eben so ist läuft nicht alles nach Plan und es wird 
wohl noch bis Anfang 2015 dauern.

von J. W. (skorpi08)


Lesenswert?

Und wie schauts nun aus?

von (prx) A. K. (prx)


Lesenswert?

Wenn jemand dir was für "Anfang 2015" verspricht, rechnest du dann 
ernsthaft damit, es vor April zu sehen? ;-)

von Andreas S. (emc2)


Lesenswert?

Jetzt dauert es wirklich nicht mehr lange bis ich so weit bin ;)
Heuer noch. Versprochen!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.