-         
Ergebnis 1 bis 9 von 9

Thema: TWI / mysmartUSb MK2

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.07.2012
    Beiträge
    171

    TWI / mysmartUSb MK2

    Anzeige

    Hallo,

    die Nutzung der TWI-Schnittstelle ist mit dem myAVR Terminal sehr eingeschränkt.

    Ich möchte mittels VB.net die TWI Schnittstelle des mysmartUSB MK2 nutzen, habe dazu aber bisher nichts gefunden.

    Ich habe versucht die Befehle die in der MyMode-hilfe stehen mittels UART über die Com-Schnittstelle zu senden, leider ohne Erfolg.

    Hat jemand diese Schnittstelle schon mal ohne das myAVR Terminal benutzt? Wenn ja, wie?

    vielen Dank

    mfG
    Mario
    Wenn das die Lösung sein soll...
    ...will ich mein Problem zurück !!!

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.684
    Hi Mario,

    Dir ist vermutlich schon bekannt, dass TWI eine andere Baustelle ist als UART zbw. COM!? Deshalb verstehe ich nicht ganz was Du machen möchtest.

    ... Nutzung der TWI-Schnittstelle ist mit dem myAVR Terminal sehr eingeschränkt ...
    Ich nutze TWI - aber nicht maAVR (egal was davon). Allerdings fahre ich mit dem ELV-USB-I²C-Dingsbumms Befehle vom PC/USB mittels HTerm nach meinen Controllern WENN diese Controller eine entsprechend programmierte TWI-Funktionalität haben. Und das geht ziemlich gut. ABER - es ist eben ein völlig anderes Protokoll als die UART/COM. Es wäre also sicher möglich, mit meinem ELV-Dings mit dem Controller zu kommunizieren - und deshalb vermute ich, dass myAVR das auch kann.
    Ciao sagt der JoeamBerg

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.07.2012
    Beiträge
    171
    Hallo Oberallgeier,

    und wiedermal danke für deine Antwort.

    Genauso funktioniert der mysmartusb-Programmer auch nur, die Befehle die vom PC (ich vermute über UART) zum Programmer gesendet werden, sind mir nicht bekannt. Das myAVR Terminal ist kein normales HyperTerminal sondern hat eine eigene kleine Scriptsprache integriert was aber genau zum Programmer gesendet wird um das TWI vom Programmer zu steuern ist mir nicht klar.

    Das MyAVR Terminal sieht etwa so aus http://img262.imageshack.us/img262/9...benanntzg8.jpg

    mfG
    Mario
    Wenn das die Lösung sein soll...
    ...will ich mein Problem zurück !!!

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    24558
    Alter
    39
    Beiträge
    1.359
    Hallo Mario,

    hast Du denn eine I²C-Routine auf dem AVR (welchen ?) installiert?
    Hast Du Dir dei besonderheiten im Maschienformat angesehen?
    Welche Pins hast Du angeschlossen?

    Viele Grüße
    Jörg
    "Es ist schwierig, jemanden dazu zu bringen, etwas zu verstehen, wenn er sein Gehalt dafür bekommt, dass er es nicht versteht" [Upton Sinclair] gez-boykott

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.07.2012
    Beiträge
    171
    Hallo Jörg,

    danke für deine Antwort.

    Also Pins (SCL,SDA,GND,VCC) und I2C Routine sollten i.O. sein, da ich über das Terminal bereits kommuniziert habe und der Programmer auch mit und ohne externe TWI-Geräte Rückmeldungen ausgibt.

    Hast Du Dir dei besonderheiten im Maschienformat angesehen?
    Ich glaube da könnte ich einen Fehler gemacht haben... ich teste mal...

    Code:
     Konsolensteuerung/Global:Console control/global:
    #             Kommentarzeichencomment signs
    !cls          Konsolenausgabe löschen*clear the console output*
    !echo text    gibt text aus*displays text*
    m:Name        Menüwechsel, Name=Menünamemenu changing, name=menu name
    m:?           zeigt mögliche Menüsshow possible menu
    ?             zeigt mögliche Befehle des Menüsshow possible instructions of the menu
    
     Hauptmenü:Main menu:
    pwr 0|1       Board-Stromversorgung Aus oder Ancurrent supply of the board on or off
    rst [0|1]     Reset: Impuls, Aus oder Anreset: impulse, on or off
    mode mm|mh    schaltet den Betriebsmodus um:change the operational mode:
                 mm=myMode-Maschinenformat s.u.mm=myMode-machine format s.b.
                 mh=myMode-Userformatmh=myMode-user format
    
    TWI-Menü:TWI menu:
    ima          TWI Init-MasterTWI init master
    sta [1]      TWI-Start senden, 1=SlowSPITWI-start sending
    sto          TWI-Stopp sendenTWI-stopp sending
    sla adr r|w  schreibe Slave-Adr + Read/Writewrite slave-Adr + read/write
    ack 0|1      AcknState bereitlegento put ackn state
    wr Byte...   Bytes per TWI schreibenwrite bytes via TWI
    rd [anz]     Bytes von TWI lesenread bytes from TWI
    rda [anz]    Read + AutoAckread + auto ack
                 ack=1 vor dem Erstenack=1 before the first
                 ack=0 vor dem letztenack=0 before the last
    state        TWI-Status ausgebendisplay the TWI status
    end          TWI Deaktivieren/Beendendeactivate/finish the TWI
    
    SPI-Menü:SPI menu:
    start [1]    SPI-Start senden, optional im Slow-ModusSPI-start sending, optional in Slow-Mode
    send Byte... Bytes per SPI senden und empfangensend and receive bytes via SPI
    rst [0|1]    Reset: Impuls, Aus oder Anreset: impulse, off or on
    end          SPI Deaktivieren/Beendendeactivate/finish the SPI
    
    Set-Menü:Set menu:
    spiSpeed    Abfragen der aktuellen SPI-Geschwindikeit
                (0xFF=standard=7)reading the current SPI-Speed
                (0xFF=standard=7)
    spiSlow     Abfragen der aktuellen SPI-Geschwindikeit
                im Slow-Modus (0xFF=Standard=10)reading the current SPI-Speed
                in Slow-Mode (0xFF=Standard=10)
    spiSpeed X  Setzen der SPI-Geschwindikeit
                X=0(langsam)...7(schnell)set the SPI-Speed
                X=0(slow)...7(fast)
    spiSlow X   Setzen der SPI-Geschwindikeit im Slow-Modus
                X=1(mittel)...254(super langsam)set the SPI-Speed in Slow-Mode
                X=1(medium)...254(super slow)
    Anmerkung: Der mySmartUSB arbeitet im Programmier-
    Modus immer mit normaler SPI-Geschwindigkeit, es sei
    denn er kann keine Verbindung zum Controller her-
    stellen. In diesem Fall wird auf Slow-SPI umge-
    schalten. Dies daran zu Erkennen, dass nur eine
    grüne LED blinkt.Remark: The mySmartUSB runs in Programming-Mode
    always in normal SPI-Speed, unless he can not
    connect to the controller. In this case he
    switched to Slow-SPI. You can see it by flashing
    only one green LED.
    
    Besonderheiten im MaschinenformatSpecials in the machine format
    - Kommando-Parameter müssen als Bytefolge hexa-
      dezimal angegeben werden, ohne LeerzeichenCommand parameters have to be denoted as byte
      sequence hexadecimal without spaces
    
    - Kommandos werden mit einem Quittungszeichen, in
      der Regel mit Newline (0x0A), abgeschlossenCommands will closure with an acknowledge char-
      acter normally with newline (0x0A)
    
    - eventuelle Rückgabewerte erfolgen als Bytefolge
      als Ascii-Zeichen im hexadezimalen Format und
      ggf. einem Return (0x0D)Possible return values occur as byte sequence
      as ASCII-characters in the hexadecimal format
      and if necessary a return (0x0D)
    
    - Fehlerfreie Ausführung wird mit "!" + Quittungs-
      Zeichen und fehlerhafte Ausführung mit "?"+
      Errorcode + Quittungszeichen quittiertAn error free execution will receipted with
      "!" + acknowledge character and an incorrect
      execution with "?" + error code + acknowledge
      character 
    
    - Wird ein Kommando mit einem anderen End-Zeichen
      als 0x0A abgeschickt, so wird dieses Zeichen
      auch als Quittungszeichen verwendet.
      Als Quittungszeichen werden alle Zeichen kleiner
      0x20 akzeptiert.When a command is sent with another end-
      character as 0x0A, then this character is also
      used as an acknowledge character.
      All characters which are smaller then 0x20 will
      be accepted as an acknowledge character.
    
    EingabenInputs
    Die Eingaben von Kommandos in dieser Oberfläche
    kann als Skript oder per Einzelzeile erfolgen.
    Einzelne Kommandos können mit Newline (Enter) oder
    den Grad-Zeichen ° getrennt erfolgen.The input of commands in this interface can happen
    as script or via several line. Several commands
    can happen with newline (enter) or with the
    degree-character ° separate. 
    
    BeispieleExamples
    Unterschiedliche Beispiele finden Sie auf der
    Karteikarte 'Skript laden'.You will find different examples at the file card
    'load script'
    vielen Dank schon mal

    mfG
    Mario
    Wenn das die Lösung sein soll...
    ...will ich mein Problem zurück !!!

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.684
    ... die Befehle die vom PC ... zum Programmer gesendet werden, sind mir nicht bekannt ...
    Mario, ich kann mir nicht wirklich vorstellen, dass I²C-Befehle bei Deinem my-was-auch-immer per UART gesendet werden. Nach meinem Verständnis kann das nicht gehen!

    Ich habe mir beim Einstieg in I²C schon frühzeitig einen Sniffer gebaut (klick). Der wird in die SDA/SCL-Leitung(en) gehängt und schon kann man mithorchen, welche Befehle auf I²C/TWI-Ebene ausgetauscht werden. SEHR empfehlenswert - gerade in der I²C-Anfangszeit war das für mich von Nutzen. Natürlich kann man auch einen ordentlichen Logikanalysator für so etwas nehmen (ist meist VIEL bequemer, schönere Darstellungen etc), aber das Geld wollte ich nicht ausgeben.
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.07.2012
    Beiträge
    171
    Danke für den Sniffer, deine Antwort und Geduld.

    Ich glaube aber wir reden ein wenig an einander vorbei.

    Du kannst bei deinem ELV die Befehle über HTerm oder andere Terminals eintippen. z.B.: den Befehl: "?" und bekommst Version, Baudrate... zurück.

    Ich kann nur im myAVR-Terminal "?" eintippen, und bekomme verfügbare Befehle zurück.

    tippe ich in HTerm "?" ein, kommt nichts zurück.

    Die Frage ist also wie "maskiert" myAVR-Terminal die Befehle, die zum Programer gesendet werden.
    Es hat also weniger mit einer I²C-Verbindung zu tun sondern mit dem Interpreter im Programer.

    Oder, sehe ich das falsch?

    Mario, ich kann mir nicht wirklich vorstellen, dass I²C-Befehle bei Deinem my-was-auch-immer per UART gesendet werden. Nach meinem Verständnis kann das nicht gehen!
    Du kommunizierst doch auch über einen virtuellen COM-Port mit deinem Programer, oder?

    mfG
    Mario
    Wenn das die Lösung sein soll...
    ...will ich mein Problem zurück !!!

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.684
    Danke für ... deine ... Geduld ... reden ... an einander vorbei... wie "maskiert" myAVR-Terminal die Befehle ...
    Aua - Mario - Du hast Recht, ich hab nicht verstanden was Du meinst. Ist mir jetzt klar - und der Grund ist, dass ich meinen Senf dazugebe ohne das myAVR-Terminal zu kennen.

    Ich könnte Dir ja mal schreiben, wie ich vom Master an den Slave I²C-Befehle senden kann, obwohl der Master einen UART-Befehl erhält. WENN das etwas zu Deiner Frage beitragen könnte.
    Ciao sagt der JoeamBerg

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.07.2012
    Beiträge
    171
    Passt schon, mir ist jeder Senf willkommen.

    Ja ich denke "maskiert" ist zu viel gesagt.
    Man braucht nur ein ByteArray welches man mit 10 (&H0A) beendet werden muß.
    Allerdings will er 19200baud.

    Aber jetzt funktionierts wenigstens.

    Code:
    'Beispiel für den Befehl "ver", 10 beendet den Befehl.
     Dim bytearray() As Byte = {Asc("v"), Asc("e"), Asc("r"), 10} 
     MyComPort.Write(bytearray, 0, bytearray.Length)

    Den ELV hatte ich mir auch schon mal angesehen, sollte ich mich für diesen Entscheiden gehe ich dir bestimmt wieder auf die nerven.

    Danke euch beiden und schönen Abend noch.

    mfG
    Mario
    Wenn das die Lösung sein soll...
    ...will ich mein Problem zurück !!!

Ähnliche Themen

  1. [ERLEDIGT] Mysmartusb mk2 Datenkommunikation klappt nicht
    Von Mcgrizzly123 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 21.01.2013, 19:13
  2. Programmübertragung von BASCOM mit mysmartUSB Mk2! Problem!
    Von ultraroot im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 0
    Letzter Beitrag: 14.03.2011, 15:53
  3. TWI zwischen 2 ATMega8 auf myAVR MK2 Board
    Von Pantoffelhel im Forum C - Programmierung (GCC u.a.)
    Antworten: 8
    Letzter Beitrag: 23.07.2010, 12:01
  4. mySmartUSB (MK2) AVR910 - 911
    Von ikarus_177 im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 27.09.2009, 17:53
  5. AT90CAN128 und mySmartUSB MK2
    Von chientech im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 01.03.2009, 07:45

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •