ADX von WB2CBA nur Teilfunktionen

  • Hallo

    Ich habe mir den ADX (Arduino Digital Modes QRP Transceiver)von WB2CBA nachgebaut.

    Platinen habe ich von DH4YM.

    Etwas Ungereimtheiten gab es bei den Bandmodulen aber ich denk das ist erledigt.


    Gestern habe ich die Platien in Betrieb genommen. Beim anlegen der Betriebspannung ist

    kein Rauch aufgestiegen. Die Firmware ließ sich auch aufspielen und die Einschaltfunktion

    des TRX ist auch ok(3 x blinken dann wird aktives Band angezeigt).

    Nur ich komme mit den Tasten weder in den Cal noch Bandwechselmodus.

    Hat eventuell einer aus der Forumsrunde diesen TRX auch schon gebaut oder in Betrieb genommen

    und könnte eventuell Tips geben.

    Taster sind richtig verdrahtet und auch die Pegel stimmen demnach an den Pins des Arduinos.


    Hier mal Bilder von dem TRX

    ADX – Arduino Digital Transceiver
    TÜRKÇE ADX – An Arduino based HF Digital Modes Transceiver ADX is an Arduino based Digital Modes Transceiver. ADX is abbreviation for Arduino Digital…
    antrak.org.tr


    Gruß Bernd

    DL3BLA

    Edited once, last by DL3BLA ().

  • Hallo Bernd,

    Nur ich komme mit den Tasten weder in den Cal noch Bandwechselmodus.

    Hat eventuell einer aus der Forumsrunde diesen TRX auch schon gebaut oder in Betrieb genommen

    und könnte eventuell Tips geben.

    Taster sind richtig verdrahtet und auch die Pegel stimmen demnach an den Pins des Arduinos.

    nein, ich habe keinen ADX.

    Da es aber ein Arduino-Projekt ist, liegen ja alle Quelltexte offen. Daher würde ich eine Prüfstelle in die Abfrageroutine(n) der Tasten einbauen. Die Abfrage kann durch einen Interrupt aufgerufen oder zyklisch abgefragt werden. Eventuell vorher nachsehen, ob der Interrupt überhaupt freigegeben wurde (Software-Bug). Diese Prüfstelle gibt dann Bescheid, dass eine Taste gedrückt wurde. Als Rückmeldung kannst Du ja das schon beschriebene Blinken verwenden. Wie das Blinken programmiert ist, müsste ja auch im Quelltext stehen. Wenn die Rückmeldung kommt, kannst Du den nächsten Schritt im Programm machen.


    73/72 de Ingo, DK3RED - Don't forget: the fun is the power!

    Edited once, last by DK3RED ().

  • Hallo Ingo


    Ich denke mein Prog Kenntnisse reichen da nicht aus.

    Ich habe mal den Urheber des Programms angeschrieben.

    Eventuell gibt es von der Seite Hilfe.


    73 Bernd Dl3Bla

  • Moin Bernd,


    drücke mal länger auf eine Taste. In dem Code werden keine Interrupts für die Tasten verwendet, nicht mal ein Timer für das Entprellen. Alle Tastenabfragen hängen in der Hauptschleife des Programms und es wird ständig mit einem Delay bei einem Tastendruck von 50ms, bzw. 100ms gearbeitet und das auch noch hintereinander, bei jedem Tastendruck. Je nach Funktion sind da mal schnell 100-250ms in einer Warteschleife verbraten, bevor eine Aktion erfolgen kann.


    73, Tom

    Ich bin dann mal weg ...

    Edited once, last by DL7BJ ().

  • Hallo Tom

    Das mit den Tasten werde ich versuchen.

    Da ich ja nicht der große Progger bin aber schon etwas mit dem

    Arduino gespielt habe in Sachen Modellbau habe ich dazu eine Frage.

    Könnte es sein das der Arduino hängt weil die Adresse des S5351 Bausteins

    nicht paßt. Der S5351 wird ja über den I²C Bus abgefragt.


    73, Bernd

  • Moin Bernd,


    ja, das kann passieren. Ich kenne aber die Arduino TWI (I²C) Library nicht, ich mache das lieber alles selbst. Wenn der da aber ewig festhängt, dann passiert natürlich nichts.

    Hast Du denn beachtet, dass man die bei Github liegende Lib für den Si5351 verwenden soll und nicht die über die Arduino IDE zu installierende, weil die für das Board nicht

    funktioniert? Wenn ich mir die Si5351 Lib anschaue, läuft die auf Adresse 0x60, da im Programm nichts anderes angegeben ist.


    73, Tom

    Ich bin dann mal weg ...

  • HAllo Tom

    Ich habe die Bibliothek aus dem Github Link genommen.

    Ich werde mal den I²C Scanner laufen lassen um mal zu sehen was der PLL Baustein rausgibt.


    73, Bernd

  • Moin Bernd,


    wenn das Si Modul von Adafruit ist, dann passt es wohl nicht, wenn ich das richtig gelesen habe. Das hat die Adresse 0x61. Einfach mal probieren, die Adresse in der .h Datei der Si Lib auf 0x61 zu stellen. Das ist in der Header-Datei einfach und ich muss mir die Doku für die Si Lib nicht anschauen. Bin aber der Meinung, dass im Code auch Si5351 Si5351(0x61); den gleichen Effekt haben sollte.


    73, Tom

    Ich bin dann mal weg ...

  • Moin Bernd,


    TWI (I²C) ist bei den AVR Controllern manchmal tricky. Das Netz ist voll davon.


    Du könntest im Code mal alles was den Si5351 ansteuert auskommentieren, einfach // davor setzen und dann testen, ob die Taster funktionieren. Sind ja nicht so viele Zeilen.


    In der Funktion loop() sind einige while Schleifen, die als Abbruchbedinung prüfen, ober der Timer 1 > 65000 ist. Das macht man so nicht, erreicht der Timer aus irgendeinem Grund nie den Wert, dann hängt das Programm dort fest. Richtig wäre, einen Interrupt vom Timer dafür zu benutzen und in der Interrupt Routine den Zählerwert zu verarbeiten. Ohne jemanden zu Nahe treten zu wollen, aber der ganze Code ist von einem Anfänger, was die Programmierung angeht.


    73, Tom

    Ich bin dann mal weg ...

    Edited once, last by DL7BJ ().

  • Hallo Tom

    Leider reichen mein Progkenntnisse nicht aus um das zu beurteilen wie gut

    das programmiert ist.

    Ich habe bis jetzt nur ein Modul programmiert was pers GSM

    an mehrere Telnummern SMS verschickt.

    WB2CBA schreibt zwar das er die Software weiter entwickeln will aber

    da muß ich abwarten.Er hat bis jetzt nicht auf meine Anfrage geantwortet

    Ich versuche über Dirk eventuelle Nachbauer zu erreichen um

    mal abzufragen ob das Board dort läuft.


    73, Bernd

  • DL3BLA

    Changed the title of the thread from “ADX von W2CBA keine Teilfunktionen” to “ADX von WB2CBA nur Teilfunktionen”.
  • Morgen


    Habe gestern Kontakt mit Frederico aufgenommen er hat ein ADX in Betrieb.

    Er hat mal den Si5351 Baustein gezogen. Dann ergibt sich genau das Fehlerbild was ich habe.

    Scheinbar ist es so wie Tom geschrieben hat durch die Programmierung hängt das Programm

    an einer Stelle wenn die Bedingungen nicht erfüllt sind.


    Heute morgen der Versuch den SI5351 Baustein vom Funkamateur gegen ein Baustein von Adafruit

    getauscht. Ergebnis wie vorher keine Eingaben möglich.

    Ich denke ich werde mal um den Baustein herum suchen ob es da ein Fehler gibt.


    Ich habe für das Board extra ein Linux Mint aufgesetzt mit der Arduino IDE in der

    Win 10 Version konnte ich die Bibliothek von Jason Milldrum nicht von Ver 2.4 auf 2.3

    umswitchen.


    73, Bernd

  • Moin Bernd,


    die Adafruit Module verwenden lt. Doku die Adresse 0x61.


    73, Tom

    Ich bin dann mal weg ...

  • Hallo Tom

    Ich habe eben den Scanner laufen lassen der meldet 0x61

    Ich denke ich werde die Module mal extern auf einem Brettboard testen

    bis ich sicher bin welche Adresse sie haben und ob sie angesteuert werden.

    Natürlich kann ich auch ein Fehler beim bestücken oder löten gemacht haben.

    aber das habe ich alles durchgeprüft. Die Signal SDA und SCL gehen direkt vom Controller zum

    SI 5351. Die Taster haben nur ein Pullup und liegen gegen Masse direkt an den Pins


    ADX V1.00 Schematic.pdf


    Also wird es wohl etwas dauern bis es wieder neue Infos gibt.


    73, Bernd

  • Hallo


    habe jetzt viel probiert und gemessen.

    Ich habe ein Arduino Nano aus 6 Stk der eingeschränkt funktoniert.

    Eingeschränkt heißt wenn ich die Schaltung rückwärts über die USB Buchse mit 5V

    versorgen startet der Arduino richtig und alle Funktionen sind da. Das geht auch mit Speisung

    über die DC Buchse mit 5V. Erhöhe ich die Spannung über 5V ist die Fehlfunktion da.

    Ich habe das SI 5351 über die 3,3V des Arduino probehalber gespeist bringt auch nichts.

    Komisch ist wenn ich mit 5V über die DC Buchse einspeise und der Arduino startet richtig und arbeitet

    gemäß den Vorgaben kann ich auch die Spannung auf bis zu 12V hochdrehen ohne das Fehler auftreten.


    Ich glaube jetzt fast das irgend etwas beim Einschalten mit erhöhter Spannung aus dem Timing fällt

    und der Arduino das SI5351 Board nicht richtig erkennt.


    Hat vielleicht jemand eine Idee ?


    Gruß Bernd

  • Hallo Bernd,


    hast Du schon mal die 5V aus dem Nano mit einem Oszilloskop gemessen? Möglicherweise schwingt der Spannungsregler auf dem Nano.


    73 de DF1EA, Christian!

  • Hallo Christian


    Danke für den Tip werde ich mal nachsehen.

    Ich habe aber schon verschiedene Arduino Nano Boards getestet

    es zeigt sich immer das gleiche Bild.


    73, Bernd

    Edited once, last by DL3BLA ().

  • Hallo Neuigkeiten


    Nachdem alles nichts brachte und Barb (WB2BCA) auch etwas ratlos war habe ich den

    Controller und die PLL auf ein Breadboard gepackt.

    Auch hier der bekannte Fehler. Ich habe dann versuchsweise 2 x 1K als Pullup auf den I²C Bus

    gepackt. Danach lief die Schaltung sofort ohne Probleme.

    Die I²C Adresse stimmt laut Scanner auf dem Board auch.

    Deshalb vermutete ich ja Bus Probleme

    Wie Tom schon schrieb das Programm ist einfach gestrickt.

    Der Arduino konnte die Adresse scheinbar nicht auslesen und die ganze Fuhre

    stoppte an der Stelle.

    Auf der Pll Platine vom Funkamateur und auch Adafruit ist ein Levelshifter verbaut und auch Pullup

    Widerstände. Warum das trotzdem nicht funktoniert kann ich mir nicht erklären.


    Jedenfalls läuft der ADX jetzt und ich muß sehne das ich den Sender in Gang bekomme

    Empfang ist schon da.


    73, Bernd DL3BLA

  • Hallo Bernd,


    ein Hinweis: auf dem Funkamateur Board sind 10kOhm Pull-Up Widerstände drauf, wenn ich das richtig gesehen habe (Aufdruck: 103). Mit der Bus-Kapazität kann man wohl damit dann die maximale Datenrate

    berechnen, hab es nicht ganz durchgelesen (es werden ca. 100kHz erwähnt) :

    I2C Pull-Up Widerstand

    Denke aber, dass einfach der I2C Bus für 10kOhm Widerstände zu hoch getaktet wird, je höher die Taktrate umso kleinere Widerstände sollen als Pull-Up verwendet werden ...


    73 de

    Günter

    dl5sdc

  • Moin Bernd,

    Auch hier der bekannte Fehler. Ich habe dann versuchsweise 2 x 1K als Pullup auf den I²C Bus

    gepackt. Danach lief die Schaltung sofort ohne Probleme.

    Ach herrje, ich habe mir die Schaltung gar nicht groß angeschaut gehabt. Natürlich gehören da PullUps ran! Ich verwende fast immer 4k7, bei kurzen Leiterbahnen und nur einem Chip oder einem Display gehen dann in der Regel auch 400kHz Takt noch sehr gut. Ich habe eine Schaltung mit einem Mega644 und einem Mega328 für ein Tastenfeld und einige LEDs. Die beiden quatschen über I²C mit 400kHz, gerade mal in den Schaltplan geschaut, auch 4k7. Abstand zwischen den beiden Controllern keine 3cm.


    73, Tom

    Ich bin dann mal weg ...