RoboterCC - Robotic Code Compiler
Forum Robot Kits NIBO 2 Warum steuert der CoPro die (SPI) - Kommunikation

Welcome

Nachrichten

Sie sind nicht eingeloggt.

Werbung

Letzte Themen

  • Keine Beiträge vorhanden

Site-Statistic

  • 7433 private projects
  • 378 public projects
  • 16180353 lines compiled
  • 58212 builds
NIBO @ facebook YouTube Twitter
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1

THEMA: Warum steuert der CoPro die (SPI) - Kommunikation

Warum steuert der CoPro die (SPI) - Kommunikation 11 Jahre 3 Monate her #2032

Hallo,

aus gegebenem Anlass - ich beschäftige mich immer noch mit den Abstand-Sensoren - habe ich ein wenig in den CoPro-Sourcen rumgeschaut. Dabei ist mir aufgefallen, dass der CoPro die SPI-Kommunikation als Master steuert. (Ich bin noch dabei die ADC-Routine des CoPro für die Distanz-Sensoren zu verstehen - fällt mir nicht leicht :-( )

Weiß jemand, warum das so ist? Ich hätte erwartet, dass der Haupt-Prozessor (ATMEGA128) den "Sklaven" CoPro bei Bedarf "fragt" ...

Gruß
Dieter
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Warum steuert der CoPro die (SPI) - Kommunikation 11 Jahre 3 Monate her #2033

  • workwind
  • workwinds Avatar
  • OFFLINE
  • Administrator
  • Beiträge: 573
Es gibt genau zwei Gründe:
  1. Das Slave-Select (SS) Signal liegt beim ATmega88 auf dem OC1B Ausgang, wird jedoch für PWM benötigt. Damit kann der ATmega88 kein Slave sein...
  2. Die Slave Implementierung im ATmega128 benötigt keinen Timer, es wird vom COPRO automatisch jede ms ein IRQ erzeugt...
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Warum steuert der CoPro die (SPI) - Kommunikation 11 Jahre 3 Monate her #2041

Hallo workwind,

hmmmm, das kann ich nicht so ganz nachvollziehen. Vielleicht bin ich ja schon zu alt :huh: ...

workwind schrieb:
Es gibt genau zwei Gründe:
  1. Das Slave-Select (SS) Signal liegt beim ATmega88 auf dem OC1B Ausgang, wird jedoch für PWM benötigt. Damit kann der ATmega88 kein Slave sein...

  2. Die Slave Implementierung im ATmega128 benötigt keinen Timer, es wird vom COPRO automatisch jede ms ein IRQ erzeugt...


zu 1.
So wie ich das Datenblatt lese hat der ATMEGA88 6 PWM-Kanäle – 2 davon werden vom CoPro derzeit aktiv für PWM genutzt (so wie ich Schaltplan und Sourcen lese) – also wären da grundsätzlich noch 4 Möglichkeiten …

zu 2.
Jede mS ? TIMER2 triggert das Ganze, sowie ich die Source lese – und das alle 32 MikroS. Bin ich da auf dem Holzweg?

// start timer 2 to call back in 32 us
TCCR2B = _BV(CS21); // PS: 8
OCR2A = 64; // 32us later
GTCCR = _BV(PSRASY); // Reset Prescaler
TIFR2 = _BV(OCF2A); // Clear OC Bit
TIMSK2 = _BV(OCIE2A); // Enable Interrupt

Verwirrte Grüße
Dieter
Letzte Änderung: 11 Jahre 3 Monate her von jim_quakenbush.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Warum steuert der CoPro die (SPI) - Kommunikation 11 Jahre 3 Monate her #2042

  • workwind
  • workwinds Avatar
  • OFFLINE
  • Administrator
  • Beiträge: 573
Hallo jim_quakenbush!
  1. Die PWM Signale für die Motoren werden mit dem 16 Bit PWM Timer T1 erzeugt. Die beiden 8 Bit Timer T0 und T2 sind dafür nicht ausreichend.
    Der Timer 1 hat genau 2 Ausgangsbits: OC1A und OC1B
  2. Das 1 ms Signal wird vom PWM Timer erzeugt und startet die Kommunikation (Datei pwm.c Zeile 114: comdata_signal();)
    Der Timer 2 wird nur für den Kommunikations-Timeout verwendet. Die Request muss nach 32 µs abgeschlossen sein...

Gruß,
workwind
Letzte Änderung: 11 Jahre 3 Monate her von workwind.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Warum steuert der CoPro die (SPI) - Kommunikation 11 Jahre 3 Monate her #2044

Hallo workwind,

Punkt 2 habe ich verstanden - man muss halt lesen können :blink:

Zu Punkt 1 wäre es nett zu erfahren, warum genau das nicht geht. Die 8 Bit Timer können auch PWM - der einzige mir bekannte Unterschied ist, dass die Abstufung halt nicht so fein ist. Das spielt aber bei der Motorsteuerung (Regelung über Sensorik) - falls ich das richtig verstnden habe - keine so große Rolle.

Wäre nett, wenn ich auch dazu noch eine kliene Erleuchtung bekomme ...

Gruß
Dieter
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Warum steuert der CoPro die (SPI) - Kommunikation 11 Jahre 3 Monate her #2045

  • workwind
  • workwinds Avatar
  • OFFLINE
  • Administrator
  • Beiträge: 573
Hallo jim_quakenbush,

prinzipiell hast Du Recht, der erste Grund ist kein zwingender Grund.
Durch die Verwendung des 16 Bit Timers bekommt man jedoch eine größere Flexibilität bei der Auswahl der PWM Frequenz. Die verwendeten 15.656 kHz wären mit einem 8 Bit Timer nur durch eine Verringerung der Auflösung auf 7 Bit zu erreichen...

Gruß,
workwind
Der Administrator hat öffentliche Schreibrechte deaktiviert.
  • Seite:
  • 1
Ladezeit der Seite: 0.041 Sekunden

Werbung