Selfbus USB-Interface

Fragen und Diskussionen zur Entwicklung von neuen Geräten. Sowohl Hardware als auch Software. English is welcome.
Doumanix
Beiträge: 522
Registriert: 7. Nov 2017, 16:33

Re: Selfbus USB-Interface

Beitrag von Doumanix »

Hi Florian,

mir fehlen irgendwie die Werte von C4 und R17 ... da steht nichts in den Eagle- oder BOM-Dateien. :(

@pete68: which values did you use to equip C4 and R17?

Grüße
Christian

Tags:
Florian
Beiträge: 163
Registriert: 8. Aug 2015, 23:25
Wohnort: Paderborn

Re: Selfbus USB-Interface

Beitrag von Florian »

Doumanix hat geschrieben:mir fehlen irgendwie die Werte von C4 und R17 ... da steht nichts in den Eagle- oder BOM-Dateien. :(
Das hat schon so seine Richtigkeit. Beim Zeichnen dachte ich, dass das logisch wäre: Wenn da absichtlich kein Wert steht, dann wird auch kein Bauteil bestückt. Anscheinend gibt es da doch verschiedene Interpretationsmöglichkeiten...

Was würdest Du Dir als Markierung wünschen, um "nicht bestücken" darzustellen?
Doumanix
Beiträge: 522
Registriert: 7. Nov 2017, 16:33

Re: Selfbus USB-Interface

Beitrag von Doumanix »

Hi Florian,
danke für die schnelle Antwort. *Gedacht* habe ich mir das, wollte aber sicher gehen.
Theoretisch könnte man statt dem "-" auch "nicht bestücken" als Wert rein schreiben. ;)

Christian
Doumanix
Beiträge: 522
Registriert: 7. Nov 2017, 16:33

Re: Selfbus USB-Interface

Beitrag von Doumanix »

So, nun hab ich das Interface komplett aufgebaut.
Was ich bisher erreich habe:
1. Interface wird initial vom Rechner als Speichergerät erkannt, ich konnte die USB-IF_Usb.bin rüberkopieren
2. Interface-IC scheint sauber zu laufen (ich kann die Betriebsmodi umschalten, USB ACT LED blinkt, wenn was über USB passiert); die ETS erkennt eine ABB USB Schnittstelle (REG)
3. Habe einen TS ARM mit der USB-IF_Knx.hex aus'm Git geflasht. Daraufhin kann ich per ETS dem ARM Modul (als ABB USB Schnittstelle (REG)) eine Adresse vergeben.

Beim Einbinden als Schnittstelle in die ETS hakt es aber gerade aus. Siehe Screenshot.
Müsste da nicht ordentlich was erkannt werden? Habe ich vielleicht was falsch konfiguriert? Was muss gesteckt sein, damit die Erkennung passen sollte? Jumper / Kabel / Modul ?

Kann man irgendwie erkennen, ob die Kommunikation mit dem ARM Modul klappt?

Grüße
Christian
USB KNX IF ETS.PNG
USB KNX IF ETS.PNG (27.12 KiB) 6364 mal betrachtet
Florian
Beiträge: 163
Registriert: 8. Aug 2015, 23:25
Wohnort: Paderborn

Re: Selfbus USB-Interface

Beitrag von Florian »

Dann geht ja schon so einiges.

Eine Frage von meiner Seite: Hast Du die TS-ARM mit der Hilfe des USB-Interfaces programmiert? (JP4 und JP5 gesteckt, programmiert über FlashMagic.) Wenn ja wäre die Kommunikation zwischen USB-ARM und KNX-ARM schon recht gut getestet und müsste funktionieren.

Eine Kleinigkeit: Die ETS kann mit dem IF nur dann was anfangen, wenn die KNX-Seite aus dem Bus versorgt wird. Es gibt keine sinnvolle Fehlermeldung wie "KNX-Bus nicht angeschlossen", sondern nur den von Dir gezeigten Speicherlesefehler. Aber ich vermute mal das hast Du längst ausprobiert.

Ansonsten sind die weiteren Betriebsmodi des USB-Interfaces eine gute Möglichkeit zum Testen: Schalte das IF als KNX-Monitor, öffne die USB-COM Schnittstelle mit einem Terminalprogramm, HTerm, Putty irgendwas...
Dann sollten alle Telegramme, die auf dem KNX-Bus unterwegs sind, angezeigt werden - unabhängig von der ETS. Auch die Betrieb/Aktivität-LED auf KNX-Seite sollte leuchten und kurz dunkel werden, wenn ein Telegramm auf dem Bus unterwegs ist. Wenn das geht, sollte eigentlich alles funktionieren.

Noch eine Stufe tiefer in die Interna geht der USB-Monitor: Er leitet die gesamte Kommunikation der ETS mit dem USB-Interface über eine USB-COM Schnittstelle aus. Angezeigt werden die Daten der HID Reports als nackte HEX-Werte. Nicht unbedingt einfach zu lesen, aber Du könntest einen Mitschnitt im Falle eines Fehlers hier posten.

Funktionieren sollte das USB-Interface über die ETS, wenn JP1, JP4, JP5 nicht gesteckt sind und das Interface in einem der Modi "KNX-If", "KNX-Monitor", "USB-Monitor" ist. Wie es bei "Prog-If" ist, weiß ich gerade nicht.

Grüße,
Florian
Doumanix
Beiträge: 522
Registriert: 7. Nov 2017, 16:33

Re: Selfbus USB-Interface

Beitrag von Doumanix »

Eine Frage von meiner Seite: Hast Du die TS-ARM mit der Hilfe des USB-Interfaces programmiert? (JP4 und JP5 gesteckt, programmiert über FlashMagic.) Wenn ja wäre die Kommunikation zwischen USB-ARM und KNX-ARM schon recht gut getestet und müsste funktionieren.
Nope, ich hab mit meinem alten SB Progger geflasht. Und siehe da: auch das geht nicht mit dem USB IF. Ich vermute, dass einer der USB-ARM Pins nicht sauber draufgelötet ist. Ich check das nachher. Hoffe, ich komme da nochmal sauber ran.
Doumanix
Beiträge: 522
Registriert: 7. Nov 2017, 16:33

Re: Selfbus USB-Interface

Beitrag von Doumanix »

:?:
Hmmm, also ich hab die Pins des ARM gecheckt. Denke, die passen alle.
Ich kann auf KNC Monitor schalten, die LED brennt und ich kann auch mit Putty mich mit dem Serial Device verbinden. Ist aber komplett tot de Ausgabe im Putty.

Was mir sehr spanisch vorkommt: JP4 Stecken passt. Wenn ich auf Prog-If geschaltet habe und dann wieder an USB anstecke, leuchtet LED4.
Wenn ich aber auch noch JP5 stecke, leuchtet LED4 *nicht*!

Woran kann das liegen?
Wenn ich einen Löt-Schnitzer irgendwo habe, hast einen Tipp, wo ich suchen kann? R10 stimmt vom Wert und ist sauber verlötet. Der GND Pin des USB-ARM auch, soweit ich das sehen kann. Nachlöten hat nix gebracht.
Florian
Beiträge: 163
Registriert: 8. Aug 2015, 23:25
Wohnort: Paderborn

Re: Selfbus USB-Interface

Beitrag von Florian »

Doumanix hat geschrieben: :?:
Was mir sehr spanisch vorkommt: JP4 Stecken passt. Wenn ich auf Prog-If geschaltet habe und dann wieder an USB anstecke, leuchtet LED4.
Wenn ich aber auch noch JP5 stecke, leuchtet LED4 *nicht*!

Woran kann das liegen?
Das ist ein Mißverständnis. Der KNX-uC des USB-Interfaces (also der auf TS-ARM) wird nicht im "Prog-If"-Modus programmiert. "Prog-If" bedeutet, dass man an P3 eine andere Controllerplatine anschließen kann, um dessen uC zu programmieren.

Um den KNX-uC des USB-Interfaces zu programmieren wird JP4 und JP5 gesteckt und danach werden beide Seiten neu an die jeweilige Versorgung angesteckt. Als beabsichtigte Reaktion leuchtet keine der Modus-LEDs.

Wenn Du in den Modus KNX-Monitor schaltest, welche LED leuchtet dann? Nur LED2? Leuchtet bei Dir irgendwann mal LED6?

Eine doofe Frage noch: P1 ist bei Dir mit dem TS-ARM verbunden, oder? Hast Du die Ausrichtung der Stecker kontrolliert, Pin1 auf Pin1? Bei V1.0 ist die Ausrichtung der Stecker von TS-ARM und USB-If leider gedreht, bei V1.1 ist das korrigiert worden.

Deine TS-ARM hat schon mal funktioniert, in einer anderen Anwendung? So richtig am KNX-Bus mit einer Anwendung, ohne verbundenen Programmieradapter?

Ansonsten scheint mir das Hauptverdächtige immer noch die Kommunikation zwischen den beiden uCs. Versuch mal bitte die mit dem Multimeter durchzuklingeln, vom uC zum Optokoppler, weiter vom Optokoppler zum anderen uC, etc. Im Normalbetrieb sollte an den Ausgängen ein Ruhepegel von nahezu Versorgungsspannung zu messen sein, die kurzen Datenpakete sind nur auf einem Oszi oder Logikanalyzer zu sehen.

Viele Grüße,
Florian
Doumanix
Beiträge: 522
Registriert: 7. Nov 2017, 16:33

Re: Selfbus USB-Interface

Beitrag von Doumanix »

Okay, nun hat fast alles funktioniert. Ich hatte ja das ARM Eingangsmodul mit dem alten Progger geflasht, aber irgendwie hatte es damit nicht funktioniert. Nach deiner Erläuterung habe ich es geschafft, das eingesteckte Eingangsmodul mit den gesteckten Jumpern und dem verbundenen Kabel nochmal zu flashen. Danach ging auch die Verbindung zum Bus, der USB Monitor (ging auch vorher schon) und der KNX Monitor hat ausgegeben was er sollte. LEDs haben auch immer die gebrannt / geblinkt, von denen man erwartet hätte, dass sie es tun.

Vielleicht war ja doch irgendwas nicht korrekt gelötet. Dadurch, dass ich das falsch verstanden hatte, was der KNX ISP Modus ist, gab es ja ggf. mehrere Fehler parallel.

Was ich nicht ganz verstehe: warum kann man denn das TS ARM Modul so im eingesteckten Zustand programmieren? Würde es nicht genauso gehen, das Ding im "Prog-If" Modus zu flashen und nachträglich einzustecken?

Gut, hätte mir nicht geholfen, denn das Flashen über P3 hab ich immer noch nicht hin bekommen. Ich hätte jetzt vermutet, dass dazu lediglich das USB-IF mit gestecktem JP6 benötigt wird, ohne Einbaumodul, richtig? Über P3 wird dann das zu programmierende Modul / ein Controller angeschlossen - wie bisher halt an den Progger...?


Meine weiteren Beobachtungen: das Flashen (des TS ARM) hat im Vergleich zum "alten" Progger sehr lange gedauert. Ich habe nicht mitgestoppt, aber gefühlt 5 mal so lange, also etwa 9600 Baud. Ist das normal?
Die Ausgabe über die Serielle Schnittstelle ist echt komfortabel, find ich super!
Florian
Beiträge: 163
Registriert: 8. Aug 2015, 23:25
Wohnort: Paderborn

Re: Selfbus USB-Interface

Beitrag von Florian »

Wie fange ich an? Ich denke am einfachsten wird es, wenn man sich das USB-Interface als ein fertiges, geschlossenes Gerät vorstellt. Die TS-ARM, die momentan angesteckt wird, könnte genauso gut fest auf der Platine integriert sein. Mit diesem Hintergedanken wurde das USB-Interface entwickelt.

Damit ist dann auch klar, wie der "Prog-If"-Modus funktioniert: Die an P1 und P4 angesteckte TS-ARM bleibt immer verbunden. Ein an P3 angestecktes, weiteres Gerät wird durch den Mikrocontroller auf der TS-ARM programmiert. Die KNX-USB Funktionalität bleibt währenddessen übrigens bestehen, sie funktioniert in allen über den Taster auswählbaren Modi (wenn die ETS neu genug ist, wie ganz am Anfang des Themas mal erwähnt).

Der USB-uC kommuniziert dazu mit dem KNX-uC über ein eigenes, schnelles Protokoll. Das Protokoll kennt verschiedene Datenpakete für verschiedene Zwecke, so dass KNX-Funktionen und Programmier-Funktionen gleichzeitig laufen können. Wenn JP4 und JP5 gesteckt werden, ändert sich dagegen alles: Dann wird aus dem USB-uC im Grunde eine einfache USB-COM Schnittstelle.

JP6 dient nur dazu auszuwählen, ob das Programmiertarget aus dem USB-Interface versorgt werden soll, oder ob es eine eigene Spannungsversorgung hat.

Das die Programmierung über dieses IF eher gemächlich läuft, ist leider normal. Es wird die Standard-Geschwindigkeit von FlashMagic benutzt: 9600 Baud. Da ich für P3 einen Software-UART nutzen muss, hat der KNX-uC auch nicht mehr viel Luft für schnellere Baudraten.
Antworten