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
Ich würde auch zu den PICs raten. Beachte, dass die Tinys(zumindest der ATTiny12) kein Ram hat. Schau dir mal den PIC12F683 an. Der hat etwas mehr Speicher. http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1033&mid=10&lang=en&pageId=74
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
Wobei man der Fairness halber auch noch sagen sollte, dass man mit den Registern in dieser speziellen Anwendung mehr als dicke auskommt.
Der ist doch interessant (wenn er mal verfügbar ist): ATTiny88: 8KB Flash, 512Byte EEPROM, 512Byte RAM. 8Pinnig
ATTiny45: 4k Flash, 256Byte RAM, 256 Byte EEprom, 2 PWM, Spannung bis 1,8V Bei CSD-Elektronik für 2 Euro zu haben MfG
@ 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
Ich kann Peter nur beipflichten. Vor Jahren musste ich mal ein Project mit einem PIC und Assembler abgeben. Nie wieder!
Wie gesagt, wenn die Ansprüche an deine PWM nicht zu streng sind finde ich auch Atmel oder PIC OK. Mit Kanonen auf Spatzen schießen kann jeder und wenn du das mit einem <1 Euro Teil (digikey 25 er Staffel) hinbekommst ist das natürlich cooler. Cypress hat einige ANs zu PWM schau dir vielleicht diese mal an http://www.cypress.com/portal/server.pt/gateway/PTARGS_0_2_1289_209_0_43/http;/sjapp20;7001/publishedcontent/publish/design_resources/application_notes/contents/user_modules___24__8_bit_hardware_pwms_in_a_single_psoc___an2136_9.pdf Ziemlich eindrucksvoll 24 * 8 bit PWM. Es gibt auch einen Eindruck wie so was da einfach nur zusammengeklickt wird. Ansonsten kannst du dir ja mal den kostenlosen PSOC-DESIGNER runterladen und damit rumspielen (der ist weitgehend selbsterklärend ) Weitere ANs hier: http://www.cypress.com/portal/server.pt?space=CommunityPage&control=SetCommunity&CommunityID=205&PageID=209&resource=Application%20Notes Ich habe mich übrigens getäuscht nur der kleinen CY8C22123 sollen nicht mehr für Neuentwicklungen eingesetzt werden (statt dessen CY8C24123 ) aber noch gibt es sie bei Digikey. Es gibt noch andere kleine ich wüste aber jetzt nicht woher man die bekommt. Gruß
hast du dir schon den zilog encore xp angesehen der hier im shop beim starterkit dabei ist
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.