Schönen guten Morgen
bin auf der suche nach nem sau günstigen, weil viele davon benötigt
werden, 8Pin µC mit 3 PWM (Hard- oder Software) und nem Seriellen BUS.
Nach einigem googeln bin ich auf den PIC 12F629 oder 12F635 gestossen,
doch könnte der Speicher etwas wennig sein für 3 Software PWM und noch
nen Seriellen bus. Will zwar in ASM schreiben, doch kenne ich den
Umfang noch nicht.
ich dachte mir den Komparatoren als Eingang für den Seriellen BUS im
Gegenspanungsprinzip, es ist nur einen Digitale Steuerung des PICs
nötige keine echte Kommunikation. Wenn dies möglich wär ist auch net
schlecht.
zur Funktionsweisse etwas:
Auf dem BUS lauschen ob die 32Bit Addresse die Eigene ist und dann die
3 8Bit Werte lesen und damit die PWM einstellen.
und immer so weiter
Bin noch an keine Architektur gebunden und für Vorschläge offen.
Tschö
René
Ich habe zwar noch nichts mit ihnen gemacht, aber ATMEL hat eine ganze
Reihe 8-Beiner: Tiny
Ob die das können, was du verlangst kann ich nicht beurteilen...
Moin...
Nimm einen der PIC, wenn du dich mit denen auskennst. Ansonstn einen
Tiny von AVR, da aber den kleinsten der noch vom gnu Compiler
angenommen wird. Der Speicher reicht dafür immer , das sind ja nur
wenige Zeilen Code die du da formulieren musst. Evtl. nimmst du einen
Chip der eine eigene, unabhängige UART hat. Dann wirds GANZ einfach.
--
Sven Johannes
Du verwechselst da etwas
ATtiny12
Description:
1-Kbyte In-System programmable Flash Program Memory, 32 byte SRAM, 64
Byte EEPROM, Up to 8 MIPS throughput at 8 Mhz.
Der ATtiny15 hat kein Ram, da hat man nur die Datenregister.
mfg Sepp
Hi!
Auch beim Tiny12 sind mit den 32 byte SRAM die Register gemeint.
11, 12, 15 und 28 scheinen nur Register zu besitzen. Die haben dann
auch alle einen HW-Stack.
13 hat dann wieder 64 Bytes.
Gruß
Dirk
@ Mehmet
ist der Tiny45 wirklich schon verfügbar oder nur mit Preis im Katalog.
Bei Schukat sind die Tiny25/45/85 auch gelistet aber irgentwie nicht
vorrätig.
Gruß
2 Euro ! dafür kannst du das ja beinahe in einem PSOC mit Hardware PWM +
Seriel realisieren.
Wenn es nur billig sein darf stimme ich Karl Heinz Buchegger zu. Da
sind wahrscheinlich Thinys am günstigsten von PIC gibts noch die
12F509 41 Register + 12F508 mit nur 25 Register alle <1Euro. Ich
glaube nicht das das RAM das Problem wir, eher die Geschwindigkeit/
Genauigkeit der PWM. Wie gesagt bei PSOC kannst du dir die PWM auch in
Hardware bauen (3 x PWM müsste eigentlich auch in ein 8 Piner passen).
Leider will Cypress die kleineren Typen bald abkündigen (nicht mehr für
Neuentwicklung empfohlen).
Gruß
@Thomas Pototschnig
von einem Tiny88 hab ich noch nix gehört... falls Du den Mega88 meinst
ist der 28Pinnig
@ich
Der Tiny45 (4k) ist schon länger verfügbar, die 25er (2k) und 85er (8k)
sind mir allerdings bisher noch nicht untergekommen...
@all
Danke für die schnellen Antworten
Sollte dann in SMD sein und ein C-compiler wird nicht gebraucht, da ich
nur Assembler machen möchte.
@PIC Beführworter
wo kann ich z.B. den 12F635 oder den 12F683 kaufen?
@Atmel Beführworter
hätte den Tiny25 gern mal angesehen, da in der Tabelle bei Atmel auch
was von 4 PWM kanälen steht, doch im Datenblatt wieder nur was von 2,
verwirrung und kaufen kann man das ding auch noch nicht.
@Cypress PSOC Beführworter
Sieht gut aus doch wenn die abgekündigt werden, ist das net so gut,
doch würde ich gern mal nen tutorial lesen, kannst du mir da
weiterhelfen?
Dank an alle
Tschö René
Eigentlich braucht man für diese Sache weder RAM noch Hardware PWM.
Lediglich ein Timer Interrupt wird benötigt. In der Hauptschleife wird
der serielle Bus ausgelesen und die drei PWM Werte in je ein Register
geschrieben. Für jeden PWM Ausgang braucht man noch ein zweites
Register, das bei jedem Timer Interrupt um einen gewissen Wert erhöht
wird. Ist der Wert dieses Registers größer als der Sollwert, wird der
Ausgang auf 1 geschaltet, sonst auf 0. Mit diesem Konzept könnte man
nahezu jeden kleinen µC verwenden. Ein interner Oszillator ist
natürlich aus Kostengründen (und wegen der Anzahl der IO Pins)
sinnvoll.
Ich würde auch zum ATTiny** raten.
Bzw. ATTiny13, 25, 45 kann man sogar in C programmieren.
Der PIC-Befehlssatz ist dermaßen kryptisch, das ist nichts für
Anfänger.
Und dann immer erst die Interrupts auseinanderfitzeln zu müssen,
welcher wars denn nun.
Peter
Nochmal dank an alle
werde wohl den PIC nehmen, da ich kein Problem mit Assembler habe
(8080, 8051, 68HC11). Der Preis ist alles, da sehr viele benötigt
werden und die Module nicht zu teuer werden dürfen.
Danke für den Ansatz des Programms
Tschö
René
Mit Assembler allgemein vielleicht nicht, aber mit der Architektur des
PIC...
Die hat mich damals auch davon abgehalten mehr mit den Dingern zu
machen.
"werde wohl den PIC nehmen, da ich kein Problem mit Assembler habe
(8080, 8051, 68HC11)"
Wenn Du schon 8051 usw. kannst, dann wirst Du viele wichtige und
sinnvolle Instruktionen beim PIC schmerzlich vermissen.
Alle PIC-Benutzer, die ich kenne, haben mit dem PIC angefangen, d.h.
sie kannten vorher noch nichts besseres.
Es gibt gute PIC-Webseiten (Sprut), die man unbedingt lesen sollte, da
doch einige ziemlich gemeine Fallstricke im PIC drin sind, z.B.
Registerrettung bei Interrupts (Es gibt MOV-Befehle, die die
Statusflags ändern !).
Aber guck ruhig rein und mach Dir selber ein Bild.
Peter
Hallo Peter,
da bin ich offenbar die erste Ausnahme von Deiner Regel.
Bin beruflich seit 5 Jahren PIC Programmierer (erst 16C, jetzt 18F
Serie), hab aber mit Z80 angefangen, dann HD64180 und anschließend 8051
beackert (was tut man nicht alles um in seinem Job zu Geld zu kommen)
Es stimmt auf jeden Fall dass die 16er Architektur extrem
gewöchnungsbedürftig ist, die 18er sind schon wesentlich freundlicher.
Dieter
Hallo zusammen. Bin gerade dabei das zu versuchen, was eigentlich der
Aufgtrag ist. (3 PWM mit Serieller Schnittstelle) Ich bin nicht in der
Lage, die PWM so hinzubekommen, das ich sie nicht blinken sehe (LED).
Ich programmiere unter mikroBasic. Ist das Programm deshalb solangsam?
oder wie kann ich die Ausfüghrung beschleunigen? Habe schon diverses
ausprobier, aber es reciht noch nicht. Oder ist einfach der Asembler
code zu ineffizient??
LG MB
Welcher uC und welche Taktfrequenz? Ich meine mich zu erinnern, dass die
Atmels per Default nicht auf Max-Speed stehen sondern nur 1MHz -
vielleicht noch mal ein Blick auf die Sicherungen (Fuse-Bits) werfen
:).
ausserdem kann man ein Programm immer so oder so schreiben. Wenn man es
mit einem Compiler macht, kann man da sehr viel Unfug anrichten, wenn
man nicht weiss, wie der Compiler bestimmte Sachen übersetzt...