PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AtMega8 PWM und simultan SPI



MarkusG
22.02.2006, 18:10
Hallo,

Ich bin dabei eine kleine Schaltung zu basteln, welche per CAN Bus Steuerbefehle entgegennimmt und dann per PWM entsprechend Servos steuert. Hierzu verwende ich den MCP2515.

Dieser Kommuniziert ja per SPI mit meinem AVR, das heißt unter anderem werden die Pnins MOSI und SS hierfür benötigt.

Nun sind diese Pins nun aber auch die Ausgänge für OC1B und OC2. Naja jetzt zu dem Problem: Ich habe zwar den Pin OC1A für PWM frei, aber wie kann ich nun noch einen zweiten Servo mit dem AVR ansteuern ??

Hat jemand da 'ne lösung parat ? Kann ich die beiden Pins irgendwie für beides hernehmen und wie sollte ich dies dann beschalten ?

Mfg Markus

Vitis
22.02.2006, 19:44
Welcher AVR ist das?

Vitis
22.02.2006, 19:46
ach so, ist mega8 .... hmmm ich würd mal darauf tippen,
das du ne software SPI machen müsstest um dem da nicht
ins gehege zu kommen .... oder n Mega16 verwenden ... in TQFP
sind die fast gleich groß.

ich glaub aber den SS brauchste nur im Slave-Modus, wenn der
mega 8 also Slave ist. der OC1B wär dann schonmal frei.

SS= Slave Select input. When the SPI is enabled as a Slave, this pin is configured as an input regardless of the setting of DDB2. As a Slave, the SPI is activatet when this pin is driven low.
When the SPI is enabeld as a Master, the data direction of this pin is controlled by DDB2 ....

Datenblatt ;)

SprinterSB
23.02.2006, 09:27
Ist der AVR nur Slave oder auch Master? Im zweiten Falls kannst du irgend nen Port hernehmen als SS.
Falls er Slave sein soll, müsstest du die SS-Leitung z.B. an extern INT legen und von Hand umschalten, wenn was ankommt.

Weitere Lösung wäre ne Soft-PWM, noch aufwändiger wäre den SPI-Slave in Software zu machen. Dann hättest du 3 PWM-Kanäle frei, abe das ist natürlich Programmierarbeit.