Die ist mein erster Beitrag, daher erstmal hallo hier im Forum.
Ich möchte gerade mein erstes Projekt mit einem µController starten und
scheitere schon an der Auswahl der Hardware. Die herzustellende Platine
wird über CAN angesprochen. Die CAN-Nachricht soll das PWM-Signal von
insgesamt 8 PWM-Ausgängen setzen. Das PWM-Signal umfasst 0%-100%
dutycycle.
Nun meine Fragen:
Wenn ich 8 PWM-Signale frequenzunabhängig einstellen will, gibt es eine
Möglichkeit mit weniger als 8 internen Timern das vorhandene
Hardware-PWM einiger Controller einzustellen? Oder muss ich es mit
Software erzeugen und über einen digOut ausgeben?
Welche Leistungsklasse wählt man, damit der Controller 8
Software-PWM-Kanäle + CAN-Kommunikation bewältigt?
Die ersten Controller, die mir aufgefallen sind, waren der AT90CAN128
und der ATmega64M1 (10x Hardware-PWM).
Kann ich diese beide einfach mit einem Philips PCA82C250 oder MCP 2551
verbinden und die CAN Kommunikation steht (mit ein paar Zeilen Code
natürlich)?
Für Hinweise/Lösungsansätze bin ich dankbar. Mit dem richtigen
Controller kann ich mit dem Platinenentwurf beginnen ;)
Grüße Erik
@ Erik L. (harqa)
>Wenn ich 8 PWM-Signale frequenzunabhängig einstellen will,
Was soll das sein? Bei PWM ist die Frequenz konstant, nur das
Tastverhältnis ändert sich. Wenn deine acht Kanäle jedoch verschiedene
PWM-Frequenzen haben sollen, wirst du wohl sowas wie acht Timer
brauchen.
>gibt es eine>Möglichkeit mit weniger als 8 internen Timern das vorhandene>Hardware-PWM einiger Controller einzustellen? Oder muss ich es mit>Software erzeugen und über einen digOut ausgeben?
Wenn die PWM eine niedrige Frequenz von wenigen hundert Hertz hat, kann
man Soft-PWM machen.
>Welche Leistungsklasse wählt man, damit der Controller 8>Software-PWM-Kanäle + CAN-Kommunikation bewältigt?
AVR mit 16 MHz reicht.
>Die ersten Controller, die mir aufgefallen sind, waren der AT90CAN128>und der ATmega64M1 (10x Hardware-PWM).
Geht auch.
>Kann ich diese beide einfach mit einem Philips PCA82C250 oder MCP 2551>verbinden und die CAN Kommunikation steht (mit ein paar Zeilen Code>natürlich)?
Sicher, aber wozu dann der AT90CAN128? Dann reicht ein kleiner ATmega88
oder sogar ATtiny2313.
MFG
Falk
Erik L. schrieb:> Wenn ich 8 PWM-Signale frequenzunabhängig einstellen will, gibt es eine> Möglichkeit mit weniger als 8 internen Timern das vorhandene> Hardware-PWM einiger Controller einzustellen? Oder muss ich es mit> Software erzeugen und über einen digOut ausgeben?
Es gibt Controller, die dafür passende Hardware haben.
Schau Dir den dsPIC33FJ128MC506A an. Der hat alles, was Du brauchst. Ein
MCP2551 als CAN Tranceiver, Ausgangstreiber für die PWM-Signale, und
dann gehts los. Das Teil ist für die Steuerung von BLDC Motoren gedacht,
aber die PWMs darfst Du natürlich auch für andere Dinge einsetzen.
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en541815
fchk
Erik L. schrieb:> Welche Leistungsklasse wählt man, damit der Controller 8> Software-PWM-Kanäle + CAN-Kommunikation bewältigt?
Serienfertigung? Je nach Stückzahl, den "günstigsten", der die
Anforderungen erfüllt, ansonsten einen der die jetzigen Anforderungen
übererfüllt und "einfach" handhabbar/bekannt ist und Reserven hat.
> Die ersten Controller, die mir aufgefallen sind, waren der AT90CAN128> und der ATmega64M1 (10x Hardware-PWM).
Renesas RX600
http://www.rxmcu.com/EU/Rx600series.html
dsPIC33EP, PIC24EP und andere dsPICs und PIC24HJ
http://www.microchip.com/maps/microcontroller.aspx
und div Controller mit Cortex-M3/M4-Core
> Kann ich diese beide einfach mit einem Philips PCA82C250 oder MCP 2551> verbinden und die CAN Kommunikation steht (mit ein paar Zeilen Code> natürlich)?
Wenn man selber festlegen kann, was über den CAN-Bus geht, ja...
> Für Hinweise/Lösungsansätze bin ich dankbar. Mit dem richtigen> Controller kann ich mit dem Platinenentwurf beginnen ;)>> Grüße Erik
Erst mal danke für die schnelle Hilfe.
Die PIC-Controller hören sich für meine Anwendung absolut passend an.
Nur hätte ich erwähnen sollen, dass ich auf AVR-Controller festgeletgt
bin (leider), da hier die Hardware (avratjtagice_mkii) schon vorhanden
ist.
Ich werde wohl den AT90CAN128 nehmen. Hier kann ich 4 PWM mit
unterschiedlicher Frequenz direkt aus den Hardware-PWM-Kanälen erzeugen,
da dieser Controller 4 Timer hat. In der ersten Ausbaustufe werden nur 4
PWM-Signale benötigt.
Alternativ sind 8 Soft-PWM auch kein Problem, da ich hier Frequenzen von
max. 200 Hz benötige. Dafür gibt es ja auch ein ausführliches Tutorial
auf dieser Seite.
Die CAN-Kommunikation kann ich nach meinem Gusto gestalten und da es ein
erster Prototyp wird, ist der Preis nicht unbedingt entscheidend.
Grüße und Danke
Erik
Erik L. schrieb:> Erst mal danke für die schnelle Hilfe.>> Die PIC-Controller hören sich für meine Anwendung absolut passend an.> Nur hätte ich erwähnen sollen, dass ich auf AVR-Controller festgeletgt> bin (leider), da hier die Hardware (avratjtagice_mkii) schon vorhanden> ist.
Ein PicKIT3 kostet 60 Euro, und die Software inkl. fertigen
Peripheriebibliotheken kannst Du Dir bei microchip.com runterladen. Das
ist also kein Argument.