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.
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.
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.
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.
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...
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 | }
|
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
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 ;)
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?
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.
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!
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
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
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!
Ich melde auf alle Fälle auch mal Interesse an für weitere Informationen ;)
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!
Hallo, bau mir auch grade sowas auf, doch ich hätte auch Intresse an deiner Idee ;-) Gruß Oliver
Hallo, wollte mal fragen obs in der Praxis schon getestet wurde. Weitere Bilder z.B. der Aktorplatinen würden mich auch interessieren.
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
Gute Frage ;-) Wie es beim Hausbau eben so ist läuft nicht alles nach Plan und es wird wohl noch bis Anfang 2015 dauern.
Wenn jemand dir was für "Anfang 2015" verspricht, rechnest du dann ernsthaft damit, es vor April zu sehen? ;-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.