Ankündigung

Einklappen
Keine Ankündigung bisher.

ARDUINO am KNX

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • l0wside
    antwortet
    Zitat von JuMi2006 Beitrag anzeigen
    Naja ich mache gerade sowas und will am Wochenende mal Prototypen-Boards bestellen.
    Dann bestelle mit ENIG und Kunststoff-Stencils, oder alternativ mit HASL und eine Blechschablone. Ersteres ist vermutlich die bessere Option.

    Kurzkritik zu deinem PCB:
    • Die Leitungsführung sollte Busklemme -> Transil-Leads -> Schaltung sein. Die Transil muss im Pfad liegen, weil sie diesen im Zweifelsfall schlicht kurzschließt. Wenn sie wie bei dir über dünne Leiterbahnen angeschlossen und in den Hinterhof verbannt wird, kann man sie fast schon weglassen.
    • Der Quarz muss niederinduktiv (d.h. möglichst keine Vias), kurz und nach Möglichkeit mit symmetrischer Leiterbahnlänge an den TPUART angeschlossen werden. Wenn der Quarz quer draufpasst, nimm ihn nach oben und setze ihn zwischen Busklemme und TPUART. Unter dem Quarz keine durchgehende Massefläche vorsehen (eine eigene Massefläche, die an einem Punkt angebunden ist, ist aber ok).
    • Deine Schaltreglerfläche ist ein bisschen groß geraten. Schau mal hier. Der Schaltregler ist die Störquelle #1, deswegen wird auch hier die Massefläche ausgespart.
    • Die Abblockkondensatoren gehören möglichst nahe an die Versorgungspins. Ich würde an deiner Stelle versuchen, den TPUART mittig zwischen die beiden Pinreihen zu setzen und die Abblock-Kerkos entweder direkt daneben oder direkt darunter und dann über ein Via anzubinden. Auch hier ist der Weg: VCC -> Kerko-Pin -> TPUART-Pin. Das sieht vom Ansatz her bei dir schon sehr gut aus, nur sind die Leitungen für meinen Geschmack zu lang.
      Bei der Masseführung gibt es verschiedene Philosophien. Du fährst auch die Massepins jeweils über den Kerko an, das ist absolut ok. Alternativ geht auch der Ansatz "große Massefläche für alle". Aber selbst mein Brötchengeber ist sich da intern nicht einig, was denn nun besser ist...

    Gruß,


    Max

    Einen Kommentar schreiben:


  • Tessi
    antwortet
    Zitat von Robert Beitrag anzeigen
    Entschuldige meine direkte Art, aber ich glaube du verdienst nicht dein Geld damit.
    Ja, das ist schon eine Weile her...

    Zitat von Robert Beitrag anzeigen
    "Bit-Banging" heißt mitnichten, dass man mit Schleifen das Timing erzeugt bzw. Zyklen zählt.
    Zu meiner Zeit verstand man darunter die Emulation einer normalerweise in entsprechenden Peripheriebausteinen enthaltenen Schnittstelle mit einfachen IO-Leitungen und entsprechender Softwareansteuerung. TIC-TOCs Konnte man nutzen sofern sie erstens vorhanden waren (OK, der AVR hat ein paar) und zweitens nicht schon anderweitig verwendet wurden (was leider meisten der Fall war). In vielen Fällen mussten da dann doch Warteschleifen und Polling eingesetzt werden, weil nichts anderes mehr verfügbar war.

    Im konkreten Fall hast Du wohl recht, auch wenn es nicht 20MHz sondern "nur" 16MHz sind, reichen die 160 Takte wohl für die bis zu drei möglichen IRQs, sofern man in den ISRs tatsächlich nur das Notwendigste macht und den Rest asynchron außerhalb erledigen kann.

    Nur wenn alle Modulprogrammierer sich auf die Timer stürzen, dann funktionieren deren Module wahrscheinlich auch nicht (zumindest nicht ohne nachträgliche Anpassung) zusammen im selben Projekt - aber genau das scheinen einige hier zu erwarten.

    OK, wer nur 1-wire und TPUART verbinden möchte, hat noch kein Problem. Kommen aber weitere Schnittstellen dazu kann es schnell eng werden.

    Zitat von Robert Beitrag anzeigen
    Das es so geht zeigen irrsinnig viele AVR-Projekte.
    In denen aber wohl auch keine Anfänger werkeln...

    Ja, ich glaube schon das 1-wire und TPUART mit einem AVR funktionierend bedient werden können, aber das muss jemand auch mit genau diesem Ziel entwickeln.
    Und das wird hier ja nun in Angriff genommen.

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    Naja ich mache gerade sowas und will am Wochenende mal Prototypen-Boards bestellen. Soll dann genau auf einen Pro Micro passen und diesen natürlich auch mit Strom versorgen. Das ist zwar nichts für die SMD-Gegner und nicht die finale Version, zeigt aber wohin die Reise bei mir gehen soll. Das ganze dann mit 5V wegen der Einbindung des 2482-100 mit I2C (wäre ein separates Shield). Programmierung dann hoffentlich ganz einfach über die vorhandene USB-Schnittstelle des Micro.

    Wünschenswert wäre wenn man sich bei der KNX-Implementierung auf einen "Standard" mit Max und Robert einigen könnte. Die beiden hatten auch die TPUART2 schon als Eagle Library was das Leben einfacher gemacht hat . Aber erstmal muss das generell laufen.

    Grüße
    Angehängte Dateien

    Einen Kommentar schreiben:


  • tuxedo
    antwortet
    Glaube das wurde hier schon mal in den Raum geworfen, fand aber wenig beachtung:

    Prototype PCBs of the Arduino TPUART Interface | Daniel's Blog

    http://dka.web-republic.de/2012/01/c...ino-to-eibknx/

    Hat sich das schon jemand angeschaut? Damit wäre der Aufbau kleiner...

    Gut, SMD löten ist hier nicht soo einfach, aber nicht unmöglich. Was ich nocht nicht verstanden habe? Braucht man zwingend einen UART auf Arduino-Ebene um mit KNX sprechen zu können? Oder geht's auch ohne?

    Stelle mir gerade einen 1 oder 2 Kanal PWM Dimmer, angetrieben von einem Arduino vor. Damit sich das ganze gut verstecken lässt (das Netzteil braucht ja auch seinen Platz), wäre ein Arduino Micro oder Mini 05 ganz schick.

    Gruß
    Alex

    Einen Kommentar schreiben:


  • l0wside
    antwortet
    Mit 5V hat man halt bei vielen externen Bausteinen so seine Probleme, weil die nur 3,3V mögen. Die Hersteller von Levelshiftern müssen sich jedenfalls so schnell keine Gedanken über ihren Absatzmarkt machen.

    Ersatz für den ADUM als DIP gibt es m.W. nur als Optokoppler. Beim ADUM verstehe ich das Problem aber nicht: der ist doch selbst für Grobmotoriker problemlos zu löten (Pitch dürfte 1,27mm sein).

    Max

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von l0wside Beitrag anzeigen
    3,3V ist in diesem Bereich definitiv Standard.
    Naja, in dem Bereich schon, wenns um Arduinos geht wird das meiste fuer 5V beschrieben... ich musste nur an all die vielen Beispielschaltungen denken die dann evtl nicht mehr out-of-the-box uebernehmbar sind. Ich weiss allerdings auch nicht wirklich wie viele das ueberhaupt sind

    Fuer meine Zwecke ist das egal, weil ich eigentlich jedesmal soviel Peripherie drankorke, dass die 300mW ohnehin nicht mehr reichen und ich die g/w 24V mitbenutze...
    Was mich zu ner Frage fuehrt: gibts eigentlich einen fertigen Ersatz fuer den ADUM der nicht-SMD ist? Mir gehts dabei nicht um meine eigenen Sachen, sondern eher um Beispiele hier fuers Forum - SMD schreckt da ja auch oft vom Nachbau ab...
    Nach Moeglichkeit irgendwas, was ich nicht erst ausprobieren muss, sondern von dem sicher ist, dass es funktioniert und einfach so in den Schaltplan gepackt werden kann?

    gruesse :: Michael

    Einen Kommentar schreiben:


  • l0wside
    antwortet
    Zitat von idefix6 Beitrag anzeigen
    Das mit den 3,3V hat zwei Gründe:
    1. Alle Busankoppler ICs (z.B. den NCN) arbeiten mit 3,3V. Wenn man jetzt den AVR mit 5V betreiben wollte, muss man die Pegel wandeln
    2. Bei 3,3V braucht der AVR viel weniger Strom, was mehr Luft beim Verbrauch lässt. Du bist ja beim Verbrauch auf 10mA pro KNX Gerät beschränkt.
    3,3V ist in diesem Bereich definitiv Standard.
    Mit dem Schaltregler allerdings werden aus 10mA@30V dann 60mA@5V. Das sollte auch für einen ATMega reichen - oder?

    Max

    Einen Kommentar schreiben:


  • idefix6
    antwortet
    Zitat von wintermute Beitrag anzeigen
    Aber noch ne Frage: wieso nur 3.3V? Braeuchte man bei diskretem Aufbau nicht ohnehin einen Regler? Und waers dann nicht egal ob 3.3 oder 5V?
    Das mit den 3,3V hat zwei Gründe:
    1. Alle Busankoppler ICs (z.B. den NCN) arbeiten mit 3,3V. Wenn man jetzt den AVR mit 5V betreiben wollte, muss man die Pegel wandeln
    2. Bei 3,3V braucht der AVR viel weniger Strom, was mehr Luft beim Verbrauch lässt. Du bist ja beim Verbrauch auf 10mA pro KNX Gerät beschränkt.

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von idefix6 Beitrag anzeigen
    ja, ein UART für den KNX der zweite für den Arduino Bootloader, damit man das Programm in den AVR bekommt ohne ein ISP zu brauchen.
    Ich persoenlich wuerde es paraktischer finden einen fertigen Mini auf Leisten zu stecken und den zum Programmieren einfach rauszuziehen. Denn nur mit den 2 Pins fuer den UART isses ja nicht getan, da fehlt dann ja mindestens nochmal nen Pegelwandler und der passt eh nicht mehr aufs Board (vermute ich). Man muesste also eh irgendwas drauf/rein/drunterstecken um zu Programmieren, dann koennte man auch gleich den ganzen Arduino aus der Platine nehmen.
    Dazu kommt, dass ein fertiger Mini in China bloss ein paar Euro kostet, sicherlich weniger als der 644er und man nicht noch extra nen Programmer braucht um erstmal den Bootloader reinzubekommen...

    Ausserdem - da bin ich aber nicht 100%ig sicher - waere der 644er nicht mit der aktuellen Arduino IDE kompatibel, nur mit einer aelteren Version.
    Also wieso nicht einfach 2 Buchsenleisten aufs Board und einen fertigen Mini reinstecken? So mach ich das bei mir auch immer

    Aber noch ne Frage: wieso nur 3.3V? Braeuchte man bei diskretem Aufbau nicht ohnehin einen Regler? Und waers dann nicht egal ob 3.3 oder 5V?

    gruesse

    Einen Kommentar schreiben:


  • idefix6
    antwortet
    Zitat von wintermute Beitrag anzeigen
    Wieso der zweite UART? Zum Programmieren?
    ja, ein UART für den KNX der zweite für den Arduino Bootloader, damit man das Programm in den AVR bekommt ohne ein ISP zu brauchen.

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von idefix6 Beitrag anzeigen
    Brauchen halt einen Atmel, der 2 UARTs hat (z.B. ATMega644) und mit 3,3V läuft.
    Wieso der zweite UART? Zum Programmieren?

    Einen Kommentar schreiben:


  • idefix6
    antwortet
    Zitat von Robert Beitrag anzeigen
    Expandiert freebus wieder?
    Ja, wenn hier Interesse besteht, würde ich mir mal die Arduino Platform anschauen, kann ja nicht so schwer sein.

    Brauchen halt einen Atmel, der 2 UARTs hat (z.B. ATMega644) und mit 3,3V läuft.

    Einen Kommentar schreiben:


  • Robert
    antwortet
    Zitat von idefix6 Beitrag anzeigen
    ich würde hier gerne eine Platine machen auf die ein Atmel drauf ist (der mit Arduino unterstützt wird) und einen Anschluss für KNX hat.
    Expandiert freebus wieder? Kein diskreter PHY?

    Einen Kommentar schreiben:


  • Robert
    antwortet
    Zitat von Tessi Beitrag anzeigen
    Nö, leider ist es selten so einfach. Jede Aufgabe für sich ist zunächst trivial. Aber wenn es an die parallele Barbeitung geht...

    [...]
    Keinesfalls verkraftet das Bitbanging einen Interrupt ohne dabei sein Timing massiv zu verfälschen, was fast immer Übertragungsfehler erzeugt. Also sperrt man in den kritischen Phasen alle Störquellen.
    Entschuldige meine direkte Art, aber ich glaube du verdienst nicht dein Geld damit.

    "Bit-Banging" heißt mitnichten, dass man mit Schleifen das Timing erzeugt bzw. Zyklen zählt. Jeder AVR kann mit Hilfe von Output-Compare-Matches bzw. Input-Captures auch bei Bitbanging alle Interrupts laufen lassen (bzw. braucht diese sogar um dann die gelatchten Timingwerte zu lesen oder die nächsten Output-Compare-Werte zu schreiben und die Flanke ggfl. umzuschalten. Hierbei nebenbei per ISR auch einen UART-Datenstrom zu bedienen ist lachhaft einfach.
    Die kleinste Zeiteinheit bei Onewire bei normalen Tempo ist eine "1" (1-15us). 1us ist sicher bei unseren Heimnetzwerken nicht sinnvoll, eher werden es 10us sein. 10us sind bei 20MHz 200 Takte, ergo ausreichend um:

    Schreiben:
    - Timer an, 1us Auflösung reicht völlig, fallende Flanke (oder sogar "Toggle-On-Compare-Match" je nach Verfügbarkeit)
    - Interrupt: gucken ob 1 oder 0, entsprechend Timer +10 oder +60
    - Interrupt: gucken ob 1 oder 0, entsprechend Timer +60 oder +10
    nächstes Bit

    Wer 1us-Timing haben will nimmt halt an diesem Punkt für die "1" ein ISR und packt 20 NOPs rein.

    Noch rafinierter geht es, wenn man eine PWM mit 70us Zykluszeit initialisiert und die On-Zeit zwischen 10us und 60us umschaltet. So bekommt man nur ein Overflow-Interrupt pro Zyklus und hat zwischen den Interupts 1400 Instruktionen Zeit für das Vorrausberechnen des nächsten Zyklus und andere Dinge.

    Lesen:
    - Input Capture auf fallende Flanke
    - ICP-Interrupt: Compare-Match auf gelatchten Wert + 30
    - OC-Interrupt: Lesen

    Alles ganz ohne Jitter.

    Ausgelassen sei das Zusammenklimpern der Bits zu Bytes. Dafür sind reichlich Takte vorhanden, insbesondere wenn man ein GCC Listing lesen und benutzen kann.

    Beim UART des TPUART (der läuft mit 19200 baud):
    8N1 sind 11 * 52 us = 572us -> 11000 Takte! Da werden wohl mal bei all dem Onewire-Interrupt paar dabei sein um den 1-Byte-FIFO in einem Interrupt zu leeren bzw. den TX-FIFO zu bestücken...

    Das es so geht zeigen irrsinnig viele AVR-Projekte.

    Das wars zu dem Thema von mir.

    Einen Kommentar schreiben:


  • idefix6
    antwortet
    ich würde hier gerne eine Platine machen auf die ein Atmel drauf ist (der mit Arduino unterstützt wird) und einen Anschluss für KNX hat.
    Also der Buskoppler Chip und der AVR auf einer Platine und in einer Größe, damit es in ein Unterputzgehäuse passt.
    Man könnte dann noch ein paar IOs vorsehen, allerdings wird da dann nicht mehr so viel Platz sein.

    Also Arduino scheint ja meist der ATMega328 zum Einsatz zu kommen. Allerdings hat dieser nur eine serielle Schnittstelle und fällt deswegen eigentlich aus.

    Ich hab gelesen das es auch mit einem ATMega644 gehen soll?

    Ich selber kenne mich sehr gut mit Atmels aus, allerdings hatte ich noch nicht die Notwendigkeit gesehen, mich mit Arduino zu beschäftigen, da ich die ganze Hardware habe und den Arduino Bootloader deswegen nicht brauche. Da bräuchte ich dann ein bisschen Unterstützung von den Arduino Profis.

    Würde da Interesse bestehen?

    Einen Kommentar schreiben:

Lädt...
X