Forum: Mikrocontroller und Digitale Elektronik Elektronische Fahrradschaltung mit dem MSP430G2231


von Andreas D. (Firma: ---) (gfighter)


Lesenswert?

Also... Ich melde mich jetzt mal hier als der Voll-Newbie der ich bin 
aber ich bin zuversichtlich eine Lösung zu finden. So nun zu meinem 
Projekt:

Ich weiß nicht ob ihr die Schaltungen am Fahrrad in elektronischer Form 
schon kennt, sie werden oft an Rennrädern verbaut und führende Marken 
sind hier Shimano mit der DI2 Technik und Campagnolo mit dem EPS System 
(Wer will kann ja mal Google bemühen). Dazu habe ich dann auch einen 
Blog gefunden der ganz  schön erklärt wie sich das mit den Systemen 
verhält und dann wird ein eigenes System erstellt. ( 
http://xde90.wordpress.com/ ; 
http://xde90.files.wordpress.com/2013/04/xdzhaie90report.pdf) In seinem 
Projekt macht er 2 Dinge anders als ich das gerne hätte: Er benutzt 
andere Gangzahlen und ich möchte nicht vorne und hinten getrennt 
Schalten sondern nach den Übersetzung ein gekoppeltes Schalten von 
vorderem und hinterem Umwerfer. Das zweite Problem ist das ich einen 
anderen IC besitze als der nette Herr im Thread. Er hatt den MSP430G2553 
und ich den MSP430G2231 in CodeComposerStudio mit GracePlugin ergibt 
sich jetzt das Problem das er TA1CCR2 is undefined als Fehler ausgibt.
Hier der Code vom Original: http://pastebin.com/SnwLaP8J
Und hier der Meinige: http://pastebin.com/d4VwnfM2

Schon mal vielen Dank für eure Hilfe und wenn ich Schwachsinn erzähle 
bitte einfach berichtigen.

: Verschoben durch User
von Jürgen S. (jurs)


Lesenswert?

Andreas Dieck schrieb:
> ich möchte nicht vorne und hinten getrennt
> Schalten sondern nach den Übersetzung ein gekoppeltes
> Schalten von vorderem und hinterem Umwerfer

Also möchtest Du eine doppelt so stark ausgelegte Stromversorgung 
einplanen, weil wenn Du zwei Servos gleichzeitig ansteuerst und beide 
Servos dabei mit voller Kraft angesteuert werden sollen, muss natürlich 
dann der doppelte Strom zum Verstellen bereitgestellt werden wie beim 
Verstellen von nur jeweils einem Servo zur Zeit.

Außerdem frage ich mich: Wie sieht es wohl mit dem Feature "Schalten 
unter Last" aus, auf das Hersteller moderner Fahrradschaltungen so stolz 
sind? Hast Du das per Handschaltung schon mal probiert, wie es damit 
ausgeht, Umwerfer und Ritzelpaket im selben Moment zu schalten und dabei 
noch voll in die Pedale zu treten?

von Andreas D. (Firma: ---) (gfighter)


Lesenswert?

Für genug Power ist gesorgt so das beide Servos angesteuert werden 
können. Das schalten unterlast beider Ritzel kann ein Problem sein ließe 
sich aber trotzdem lösen durch umschreiben des Programms und würde keine 
Hardware veränderung benötigen. Nur das Problem mit TA1CCR2 würde weiter 
bestehen.

von so isses (Gast)


Lesenswert?

Andreas Dieck schrieb:
> Nur das Problem mit TA1CCR2 würde weiter
> bestehen.

Dein Controller hat nur einen Timer, der G2553 hat 3. Genutzt wird der 
2te Timer. Ich habe mir den Code nicht angeschaut. Ist der 1ste Timer 
frei? Wenn nicht, wechsel doch auch auf dem G2553. Das Ding kostet doch 
nur ein paar Cent.

von Andreas D. (Firma: ---) (gfighter)


Lesenswert?

Das stimmt wohl aber das dauert halt ein paar tage ;-) und ich dachte so 
lern ich vielleicht noch was dabei. Aber ich denke du hast wohl recht.

von Andreas D. (Firma: ---) (gfighter)


Lesenswert?

ehm... warum macht der timer eigentlich was am servo?

von so isses (Gast)


Lesenswert?

Andreas Dieck schrieb:
> ehm... warum macht der timer eigentlich was am servo?

PWM!

Andreas Dieck schrieb:
> Das stimmt wohl aber das dauert halt ein paar tage ;-) und ich
> dachte so lern ich vielleicht noch was dabei. Aber ich denke du hast
> wohl recht.

Der Timerr hat drei PWM Ausgänge. Das könnte also auch mit einem Timer 
gehen. Dann kannste was lernen. :-D

von so isses (Gast)


Lesenswert?

Arg, es ist der Timer A2, der hat nur 2 CC-Register. Sollte hier aber 
reichen.

von Andreas D. (Firma: ---) (gfighter)


Lesenswert?

ok und wie genau muss ich den code dann verändern bzw. wie heißt der 
timer den ich nehmen kann. weil ich muss ja 2 servos ansteuern mit dem 
pwm geht das aber nicht oder das ist ja nur ein pwm. oder laber ich 
gerade stuss?

von so isses (Gast)


Lesenswert?

Andreas Dieck schrieb:
> wie heißt der
> timer den ich nehmen kann

Das richtet sich nach deiner Entwicklungsumgebung. Er könnte Timer0A 
oder einfach TimerA heissen. Wirf einen Blick in die Datei msp430g2231.h 
auf deiner Festplatte.

Andreas Dieck schrieb:
> weil ich muss ja 2 servos ansteuern mit dem
> pwm geht das aber nicht oder das ist ja nur ein pwm

Die PWM wird in diesem Fall per Capture-Compare und Interrupts gemacht. 
Beispiele gibt es im Netz: 
Beitrag "Re: Frequenzmessung mit MSP430 im LPM3"

Bei Timerüberlauf wird das TAIFG gesetzt. In der ISR TIMER0_A1_VECTOR 
musst du die beiden PWM Pins setzen. Bei Compare-Match mit CCR0 wird die 
ISR TIMER0_A0_VECTOR angesprungen, bei CCR1 die TIMER0_A1_VECTOR. Bei 
CCR0 oder CCR1 musst du den jeweiligen Pin wieder löschen.

Bei zwei Timern (wie beim G2553) geht das auch ohne ISR per OUTPUT-Uint.

Wenn immer noch mehr Fragezeichen als Ahas vorhanden sind, dann warte 
auf den G2553.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

so isses schrieb:
> Wirf einen Blick in die Datei msp430g2231.h auf deiner Festplatte.

Oder einen Blick in das Datenblatt und in den "MSP430x2xxx Family 
User's Guide".

Im Datenblatt steht, welche Peripherie vorhanden ist, im "Family 
User's Guide", wie diese programmiert werden muss und wie die 
zuständigen Register heißen.

von so isses (Gast)


Lesenswert?

Aber nur im header zum Toolchain steht die genaue Bezeichnung für den 
Quellcode. ;-)

von Gunna (Gast)


Lesenswert?

Inzwischen liegt beim Launchpad doch der MSP430G2553 bei.

Benutz doch einfach den, versuch nicht zwanghaft auf einen kleineren 
Controller wegen ein paar Cent zu wechseln, du machst dir dadurch nur 
unnötige Arbeit. Zudem solltest du dich eh zuerst mit den Grundlagen 
vertraut machen, nicht erst mit einer Regelung einsteigen.

Bedenke bei der Schaltung dass du die größten Schaltgruppenserien 
benötigen wirst damit ein Schalten "unter Last" halbwegs funktioniert, 
selbst mit einer XT sollte man nicht umbedingt unter Last schalten, mit 
einer LX würde ich das schon kritisch sehen und darunter würde ich gar 
nicht erst darüber nachdenken.

von Andreas D. (Firma: ---) (gfighter)


Lesenswert?

Da kann ich nur zustimmen aber ich muss auch nicht unbedingt unter 
vollast schalten. ich bin ein geübter Rennradfahrer und kann selbst bei 
meiner mechanischen ultegra Schaltung nicht 100% unter vollast schalten 
aber das ergibt auch wenig sinn es sei denn man hat sich beim Berg mit 
der Übersetzung verschätz ;-)

und da ich mein launchpad gebraucht bekommen habe fehlt leider der 
andere chip aber dafür waren zwei kleine dabei ;-)

nun denke ich werde ich aber einfach auf den großen bruder warten den 
das ist alles ziemlich komplex und der msp family guid mit 633 seiten 
ist auch etwas viel für die 2 bis 3 tage in denen der neue chip kommt.

von Bernd (Gast)


Lesenswert?

> Hast Du das per Handschaltung schon mal probiert, wie es damit
> ausgeht, Umwerfer und Ritzelpaket im selben Moment zu schalten und dabei
> noch voll in die Pedale zu treten?

du bist noch nie in deinem leben Rennrad gefahren, das sagt mir dein 
Beitrag.

Ab Ultegra flutschen die Gänge, egal ob Last oder nicht! Über SRAM kann 
ich nichts sagen, fahr ich nicht. Meine Hausmarke Campa ist über jeden 
Zweifel erhaben, ab Record EPS kannst du selbst bei 9% Steigung die 
Gänge prügeln ... was bei Alpenrundfahrten einfach nur normal ist (eine 
Steigung, wechselnd zwischen 1 und 13% über viele KM). Meinst du wir 
steigen ab um zu schalten oder warten auf Rückenwind? Du hältst die 
Kurbel auf ca. 90-110 U/min, der Rest geht über die Schaltung, logisch, 
oder. Alles andere fällt möglicherweise unter die Sportart Radwandern.

Der elektronische Firlefanz ist überflüssig, bei diesen Schaltwerken 
handelt es sich um Präzisionsarbeit höchster Güte. Ein Tipp mit dem 
Finger, und die Übersetzung ist geändert - ob Kettenblatt und/oder/mit 
Kassette.

> sondern nach den Übersetzung ein gekoppeltes Schalten von
> vorderem und hinterem Umwerfer

Umwerfer und Schaltwerk nennen sich die Dinger, welche du gleichzeitig 
bemühen möchtest? Rechne die Übersetzung aus, dann merkst du selbst dass 
das wenig Sinn macht. Du schaltest "sanft" und wechselt nicht abrupt das 
Verhältnis. Zudem wechselt du je nach Strecke die Übersetzung 
(Kettenblätter und Kassette), demnach bist du mit deinem Batteriegedöns 
immer am umbauen. Auch du bist noch nie Rennrad gefahren ...

Rechenhilfe:
http://www.j-berkemeier.de/Ritzelrechner.html

von Radgeber (Gast)


Lesenswert?

Bernd schrieb:
> du bist noch nie in deinem leben Rennrad gefahren, das sagt mir dein
> Beitrag.

Bernd schrieb:
> Auch du bist noch nie Rennrad gefahren ...

Bernd schrieb:
> Du hältst die
> Kurbel auf ca. 90-110 U/min, der Rest geht über die Schaltung, logisch,
> oder.

Nein, sie halten beide die Kurbel nicht auf ca. 90-110 U/min, weil sie
ja laut Deiner Ferndiagnose noch nie Rennrad gefahren sind.

Q.E.D.

Außerdem: Wer braucht am Fahrrad einen Umwerfer, wenn er auch ohne 
schon
ständig auf die Fresse fällt?

von so isses (Gast)


Lesenswert?

Bernd schrieb:
> du bist noch nie in deinem leben Rennrad gefahren

Radgeber schrieb:
> Q.E.D.

Mensch Leute, hier geht es nicht um Sinn und Zweck der elektronischen 
Unterstützung, sondern um den Bau der Elektronik!

Bespaßt euch bitte im Rennradforum und lasst uns hier den elektronischen 
Teil in Ruhe unterstützen.

von Andreas D. (Firma: ---) (gfighter)


Lesenswert?

Ich nehme jetzt nur noch einmal Bezug auf den Rennrad kram der hier so 
verzapft wird. Schalten unter last ist im konsumer fall doch nicht 
schalten unter 90u/min und dann aber kaum Drehmoment. wenn du mal in 
bedrullie kommst und deine gangwahl mist war dann ist es doch viel 
wichtiger bei 30u/min und im Sattel stehend noch schalten zu können ohne 
das mir das ganze Fahrrad unterm Arsch wegrutscht. Und ich habe ja immer 
noch die möglichkeit via anderer Progammierung zu wechsel von einer 
Schaltreihe auf getrenntes Schalten.

von Axel Shirakowski (Gast)


Lesenswert?

was wird hierfür eigentlich als Stellmotor verwendet?
Bzw wenn ich einen Modellbauservo nehme, wie viel Zugkraft sollte man 
etwa einplanen?

von MaWin (Gast)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.