-         

Ergebnis 1 bis 2 von 2

Thema: VMLAP 3.15: Simulation eines I2C Master ...

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.11.2004
    Beiträge
    332

    Pfeil [Closed] VMLAP 3.15: Simulation eines I2C Master ...

    Anzeige

    Hallo Zusammen,

    ich versuche derzeit die I2C Simulation von VMLap ans rennen zu bekommen und habe da wohl ein Problem.

    Ich habe im Control-Panel die I2C Bus Simulation via:

    Code:
    ;------------------------------------------------------------
    ; I2 monitor cells  SDA  SCL
    ;
    ;Xone   I2C(100K 29) pc4  pc5 ;  100KHz master clock, slave addr = 29 (decimal)
    Xone   I2C( 50K 30) pc4  pc5 ;   50Khz master clock, slave addr = 30 (decimal)
    Rsda VDD PC4 10K ; Pullup resistors, also necessary in VMLAB!
    Rscl VDD PC5 10K ; for I2C
    im Projektfile aktiviert. Nur wenn ich einen Break-Point im Quellcode setze,
    scheinen keine Daten im Slave angekommen zu sein. Es kann natürlich auf der Slave Code falsch sein.

    daher:
    /************************************************** *****/
    uint8_t TWIS_ResonseRequired (uint8_t *TWI_ResonseType)
    {
    *TWI_ResonseType = TWSR;
    return TWCR & (1<<TWINT);
    }

    ************************************************** *****/
    uint8_t TWIS_Init (uint8_t Address, uint32_t Bitrate)
    {
    /*
    ** Set the TWI bitrate
    ** If TWBR is less 11, then error
    */
    TWBR = ((F_CPU/Bitrate)-16)/2;
    if (TWBR < 11) return FALSE;
    /*
    ** Set the TWI slave address
    */
    TWAR = (Address << 1);
    /*
    ** Activate TWI interface
    */
    TWCR = (1<<TWEN)|(1<<TWEA);

    return TRUE;
    }

    //

    main()
    {
    ...
    TWIS_Init (0x15, 50000); // Set as Slave with Address 0x15 using 50kBus
    ...
    ...
    /*
    ** Check whether something is to do for the TWI slave interface
    */
    if (TWIS_ResonseRequired (&TWIS_ResonseType))
    {
    TWI_Handler( TWIS_ResonseType ); <---- hier kommt nie das Programm an.
    }
    }
    Hat das jemand schon mal gemacht ?
    Oder ist mein Slave Code fehlerhaft ?

    Das beigefügte Bild zeigt die Daten der TWI Schnittstelle ?

    Ich geben immer die Adresse 0x15 ein (siehe Bild des Control Panel).


    Edit:
    siehe folgende Antwort

    Viele Grüße

    R.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken I2CDiag.JPG   I2CDiag2.JPG  
    Geändert von Ritchie (08.12.2011 um 19:26 Uhr) Grund: Closed
    Kaum macht man es richtig, schon funktioniert's ...

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.11.2004
    Beiträge
    332
    Hallo Zusammen,

    ich habe mich nochmals dran gesetzt und jetzt eine Lösung für das Problem:

    Hier die Definition in der Projektdatei:
    Code:
    ;------------------------------------------------------------
    ; I2 monitor cells  SDA  SCL  ( Pin Layout of a ATmega 32 !)
    ;
    ; Note: use 0x10 in the control-panel as address, if you configure 0x20 in your program
    ;
    Xone   I2C(100K 29) pc1  pc0 ;  100KHz master clock, slave addr = 29 (decimal)
    Rsda VDD PC1 10K                     ; Pullup resistors, also necessary in VMLAB!
    Rscl VDD PC0 10K                     ; for I2C
    Wichtiger Hinweis!
    Bei einem Mega32 ist die I2C Schnittstelle an den Pins PC0 + PC1, diese müssen evtl. angepasst werden,
    wenn Ihr einen anderen Typ verwendet.

    Im Controlpanel muss dann aber die Adresse des Slave, welche eine Adresse 0x20 hat, mit 0x10 eingegeben werden. Der Shift wird hier noch ausgeführt.

    Das ganze hat bei mir sogar mit der Interruptroutine geklappt. Man sieht im Kontrollfenster die Zeichen, welche gesendet werden (Eingabe neben der Adresse).

    Gruss R.
    Kaum macht man es richtig, schon funktioniert's ...

Ähnliche Themen

  1. einfaches Bussystem? (1 Master, x Slaves, nur Master sendet)
    Von goof1980 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 16
    Letzter Beitrag: 31.05.2009, 07:52
  2. PIC mit USB master
    Von b.william im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 02.07.2007, 08:22
  3. I²C Master und Slave, Problem bei Master Reset
    Von ACU im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 01.03.2007, 12:07
  4. RoboSim; Software zur Simulation eines linienfolgenden Robos
    Von ähM_Key im Forum Software, Algorithmen und KI
    Antworten: 6
    Letzter Beitrag: 26.06.2006, 14:12
  5. Simulation eines Mikrocontrollerboard
    Von CodeWarrior im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 6
    Letzter Beitrag: 07.12.2005, 16:47

Berechtigungen

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