- fchao-Sinus-Wechselrichter AliExpress         
Seite 5 von 6 ErsteErste ... 3456 LetzteLetzte
Ergebnis 41 bis 50 von 55

Thema: RS 485 Master - Slave in Bascom???

  1. #41
    Erfahrener Benutzer Roboter Genie Avatar von darwin.nuernberg
    Registriert seit
    08.08.2004
    Ort
    A, A
    Alter
    60
    Beiträge
    1.305
    Blog-Einträge
    1
    Anzeige

    E-Bike
    Zitat Zitat von Hanni
    Zeitkritisch und Basic schliesst sich irgendwie etwas aus .... aber das ist wohl Ansichtssache.
    Nein ist nicht Ansichtssache.

    Wenn man Basic als Interpreter-Sprache versteht,
    z.B. wie vor Urzeiten der VC20/C64 und Kollegen, dann ja.

    Beispiel: Teil (Zeile) des Codes übersetzten, ausführen und wieder von vorne.

    Bascom wird jedoch nicht interpretiert sondern Compliliert.
    Sprich es wird der gesamte Code zunächst komplett übersetzt bevor er ausgeführt wird.

    Ob jetzt Bascom oder C einen besseren Code liefern kann ich nicht sagen (Tendiere aber für einen leichten Vorsprung von C).

    Wenn es wirklich knallhart zeitkritisch wird,
    dann hilft eh nur noch pures Assembler.

    Außerdem ist der Begriff Zeitkritisch an sich eine Gummiband Auslegung.

    Echtzeit wäre hier wohl der passendere Ausdruck.
    Da tut sich aber jeder Chip schon schwer was soll man da von der verwedneten Hochsprache schon sagen.

    Dann kann man auch gleich in binärcode arbeiten.




    Widersprüche?
    Gruss
    Darwin (meine Projekte sind auf meiner Pinnwand zu finden)

  2. #42
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    ein gutes Schlussplädoyer für den thread hier würd ich sagen
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  3. #43
    Erfahrener Benutzer Roboter Genie Avatar von darwin.nuernberg
    Registriert seit
    08.08.2004
    Ort
    A, A
    Alter
    60
    Beiträge
    1.305
    Blog-Einträge
    1
    Zitat Zitat von Vitis
    ein gutes Schlussplädoyer für den thread hier würd ich sagen
    Nee, blos nicht.

    Es könnte doch noch einer eine ander geniale Idee haben
    (die dann doch wieder ihre Macken hat)
    Gruss
    Darwin (meine Projekte sind auf meiner Pinnwand zu finden)

  4. #44
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.04.2005
    Ort
    Bayern
    Alter
    38
    Beiträge
    336
    genau wenn einer noch eine Idee hat dann soll er sie doch bitte noch dazu schreiben. Ich werde mich dann mal an die arbeit machen das mit dem IRQ aus zu probieren.

  5. #45
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.01.2006
    Ort
    Nidda
    Alter
    52
    Beiträge
    180
    Hallo zusammen,

    die beiträge sind ja schon etwas älter.
    Kann mir hier jemand ein Beispielcode für die Slave geben?
    ich kome einfach nicht weite

    Tobias

  6. #46
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    Code:
    on urxc uartinterrupt
    enable urxc
    enabe interrupts
    
    ddrc = &B00000100
    portc.2 alias rw_rs485
    rw_485=1 ' empfangesrichtung
    dim Zeiger as byte
    dim Message(20) as byte
    zeiger=0
    
    do
    ' Hauptschleife
    loop
    
    uartinterrupt:
    incr zeiger
    message(zeiger)=UDR
    return 
    end
    so in etwa, aber in nem anderen thread hab ich mal ne ausführliche Sache gesehen, find sie aber nicht ... ich schau mal zuhaus nach heut abend
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  7. #47
    Neuer Benutzer Öfters hier
    Registriert seit
    08.05.2012
    Beiträge
    13
    Guten Morgen,

    Ich weiß, dieses Thema ist schon bischen älter, aber ich hoffe, ich bekomme Trotzdem vielleicht eine Antwort. Ich habe mir paar Infoblätter durchgelesen und dort ergaben sich noch so die ein oder andere Frage. Folgende wären das:

    Als Slave spricht dort was gegen den ATTiny2313? In meinem Fall sollen die Slaves nur auf Anfrage Daten aus einem Sensor holen, Verarbeiten und auf Kommando an den Master Schicken.

    Als Master würde ich den ATmega644p nehmen, der hat 2 Uarts den er soll mit Bus UND dem PC Kommunizieren und mit dem PC per RS232 (Kabellänge von 50m +- etwas machbar?)

    Als System dachte ich an die 4-Draht Lösung, weil dort reagieren, wenn ichs richtig verstanden habe, die Slaves nur auf Master-Anfragen und nicht auf die Slave Sendungen.

    Was für ein Treiber müsste ich den für das 4-Draht System nehmen?

    Beim 2 Draht System wollte ich den "sn75176" nehmen, ich weiß nicht der Sparsamste aber bei insgesamt max 15 Units denk ich ist er okay.

    Für die Adressierung werde ich mich vermutlich für Dip Schalter entscheiden, aber das ist ja Geschmackssache oder?


    Vom Protokoll her wollte ich es wie folgt machen:

    1. Master sendet im vorgegeben Zyklus an 00 (ist ja Adresse für Alle, wenn ich das richtig verstanden habe) den Befehl, Daten aus dem Sensor holen.
    2. Master Spricht nun alle Slaves seperat an und holt die Daten
    3. Slaves Antworten
    4. Master bereitet Daten für Ausgabe auf und los gehts.

    Michael



    PS: Ich hoffe man hört was von Euch und bitte berichtigt mich, wenn ich irgendwo Falsch liege.

  8. #48
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    31.05.2009
    Beiträge
    270
    Zitat Zitat von lwl Beitrag anzeigen
    Als Slave spricht dort was gegen den ATTiny2313? In meinem Fall sollen die Slaves nur auf Anfrage Daten aus einem Sensor holen, Verarbeiten und auf Kommando an den Master Schicken.
    Wenn Dein Programm da reinpasst, spricht da nichts dagegen.

    Zitat Zitat von lwl Beitrag anzeigen
    Als Master würde ich den ATmega644p nehmen, der hat 2 Uarts den er soll mit Bus UND dem PC Kommunizieren und mit dem PC per RS232 (Kabellänge von 50m +- etwas machbar?)
    50m ??? Eher nicht (ohne weiteres). Warum nicht auch RS485 ? Oder Master näher am PC plazieren.

    Zitat Zitat von lwl Beitrag anzeigen
    Als System dachte ich an die 4-Draht Lösung, weil dort reagieren, wenn ichs richtig verstanden habe, die Slaves nur auf Master-Anfragen und nicht auf die Slave Sendungen.
    Da bringst Du was durcheinander. 4-Draht Lösung bedeutet Full-Duplex, also gleichzeitiges Senden und Empfangen.
    Bei 2-Draht RS485 (Half-Duplex) wird der Reihe nach Gesendet und danach Empfangen.

    Zitat Zitat von lwl Beitrag anzeigen
    Was für ein Treiber müsste ich den für das 4-Draht System nehmen?
    Da gibt es sehr viele...............
    z.B. MAX485/MAX488/MAX491/u.s.w.

    Zitat Zitat von lwl Beitrag anzeigen
    Beim 2 Draht System wollte ich den "sn75176" nehmen, ich weiß nicht der Sparsamste aber bei insgesamt max 15 Units denk ich ist er okay.
    Geht auch mit 4-Draht Bus.



    Zitat Zitat von lwl Beitrag anzeigen
    Für die Adressierung werde ich mich vermutlich für Dip Schalter entscheiden, aber das ist ja Geschmackssache oder?
    Richtig.
    Ich nehme allerdings feste Adressen im Programm. Warum sollte ich die Adressen ändern ?

    Zitat Zitat von lwl Beitrag anzeigen
    Vom Protokoll her wollte ich es wie folgt machen:

    1. Master sendet im vorgegeben Zyklus an 00 (ist ja Adresse für Alle, wenn ich das richtig verstanden habe) den Befehl, Daten aus dem Sensor holen.
    2. Master Spricht nun alle Slaves seperat an und holt die Daten
    3. Slaves Antworten
    4. Master bereitet Daten für Ausgabe auf und los gehts.
    Wozu Schritt 1 ?


    Mein Protokoll habe ich mit MPCM (9Bit Übertragung) aufgebaut (im Datenblatt nachschauen).
    Die Slaves (der Master auch) schauen in der ISR auf gesetztes 9.Bit (Adresse wird übertragen) und machen dort nur weiter wenn sie adressiert sind (darauf folgendes Frame) > Telegramm holen und entsprechend reagieren / wenn nein > weiter in der Hauptschleife.
    Man muß nur das MPCM-Bit sinnvoll auf "1" und "0" schalten..............

    (der µC wird nur bei gesetztem 9.Bit in die ISR geschickt wenn der MPCM-Modus aktiv ist)

    Slaves :
    Die Hauptschleife bearbeitet den Sensor und der µC wird ab und zu in die ISR geschickt.

    Master:
    Die Slaves der Reihe nach adressieren, Daten abholen (auch in der ISR) und weiterverarbeiten..........
    mfG
    Willi

  9. #49
    Neuer Benutzer Öfters hier
    Registriert seit
    08.05.2012
    Beiträge
    13
    Kann den Bascom das überhaupt? Also mit dem 9.Bit? Habe irgendwo gelesen, dass Bascom dafür nicht optimal ist. Von daher müsste ich mir was überlegen.

    Und vom Bus her denke ich, ich bleib beim 2-Wire-Bus. Habe so noch ein wenig Reservem im Cat.5 Kabel.

    Und an sich sollen die Slaves ja nur Daten ermitteln und weiterleiten. Und gut, dann müsste ich mir was für die Kommunikation mit dem PC überlegen. Der PC soll aber nur mit dem Master Kommunizieren. Von daher dachte ich an RS232. Und man kann doch auch die Signale Verstärken mit passenden Treibern oder? Vorallem soll der PC nicht ständig drin hängen, sondern nur bei Bedarf. Er soll die Uhr Stellen und die Daten auch erhalten können bei Abruf.

    Was ich vll noch nicht sagte ist, der Master bekommt ein RTC Chip.

    Mit den Slaves hat er nix zu tun.

    Und für die Dip Schalter Lösung entschied ich mich, weil ich so alle Slaves gleich bauen kann und die gleiche Software drauf spielen kann. Also so an sich Identisch. Jede Unit bekommt auch Abschlußwiderstände, die Per Jumper Aktiviert bzw. Deaktiviert werden können. Hat den Grund, so kann ich den Bus verlängern ohne großen Aufwand. Einfach Jumper bei letzten Unit raus, neue Unit hinter packen, Jumper dort rein, richtig Adressieren und fertig.

    Gut ich muss dem Master sagen, dass eine weitere Unit zu gekommen ist, aber dafür kann man sich ja noch was überlegen, also ein art "Automatisches Setup". Bei diesem läuft er einfach alle Adressen durch, die möglich sind und wenn keine Antwort kommt weiß er, er ist durch.

    Alternativ kann man auch sagen er läuft die Gesamten Adressen durch und Speichert alle die eine Antwort geben in einem Array ab, der nach abschluß des Setups im EEprom gepackt wird. Also Variante B wäre für den fall, dass man "unsauber" adressiert.


    Michael
    Geändert von lwl (04.08.2012 um 23:08 Uhr)

  10. #50
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    31.05.2009
    Beiträge
    270
    Zitat Zitat von lwl Beitrag anzeigen
    Kann den Bascom das überhaupt? Also mit dem 9.Bit? Habe irgendwo gelesen, dass Bascom dafür nicht optimal ist.
    ........... Bascom kann ! Auch Bits schreiben und lesen !

    Zitat Zitat von lwl Beitrag anzeigen
    Und man kann doch auch die Signale Verstärken mit passenden Treibern oder?
    Kann man.
    RS485 Treiber hast Du aber in Händen.


    Zitat Zitat von lwl Beitrag anzeigen
    Und für die Dip Schalter Lösung entschied ich mich, weil ich so alle Slaves gleich bauen kann und die gleiche Software drauf spielen kann. Also so an sich Identisch. Jede Unit bekommt auch Abschlußwiderstände, die Per Jumper Aktiviert bzw. Deaktiviert werden können. Hat den Grund, so kann ich den Bus verlängern ohne großen Aufwand. Einfach Jumper bei letzten Unit raus, neue Unit hinter packen, Jumper dort rein, richtig Adressieren und fertig.

    Gut ich muss dem Master sagen, dass eine weitere Unit zu gekommen ist, aber dafür kann man sich ja noch was überlegen, also ein art "Automatisches Setup". Bei diesem läuft er einfach alle Adressen durch, die möglich sind und wenn keine Antwort kommt weiß er, er ist durch.

    Alternativ kann man auch sagen er läuft die Gesamten Adressen durch und Speichert alle die eine Antwort geben in einem Array ab, der nach abschluß des Setups im EEprom gepackt wird. Also Variante B wäre für den fall, dass man "unsauber" adressiert.
    Warum nicht. Dann man los........
    Viel Erfolg !
    mfG
    Willi

Seite 5 von 6 ErsteErste ... 3456 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress