Hi, ich arbeite nun schon länger (hobby) Elektrische schaltungen aus. Habe einige ganz nette Projekte fertiggestellt. Schaltungen entworfen, Platinen entworfen, gelötet usw. Bisher nichts all zu großes oder Atemberaubendes aber ganz nett und nützlich ;) Nun merke ich so langsam dass ich für neuere Projekte ohne einen Programmierbaren Microcontroller einfach nicht oder schwer weiter komme... Meine Eigentliche Frage ist nun, wie kann ich am besten beginnen... habe nun schon extrem viel gelesen und mir auch hier das Tutorial angesehen (was mir nicht so zusagt) aber ich komm auf keinen grünen Zweig. Mein nächstes Projekt ist z.B. ein Wecker. Aber was nehme ich da, wo sind die Unterschiede? Ich habe nun seeehr viel über PICs gelesen. PIC16F*** PIC18F*** fand ich so schon mal nicht so schlecht! Wie ist eure meinung? Ist dies gut für anfänger? Ich bin Informatikstudent... zwar im ersten Semester aber ein wenig Erfahrung von Digitaltechnik und I/O bringe ich mit ^^ Ich habe mich teilweise schon für PIC** entschieden. Jedoch bereitet mir der Brenner sorgen. Ich möchte nicht zu eingeschränkt sein. Einen PIC Brenner selber bauen ist ganz nett, dazu muss ich aber einen PIC programmieren um einen Brennen zu können (laut tutorial)... Ich habe etwas über das PicKit3 gefunden... jedoch scheint der nicht sehr viele Familien und Bausteine zu unterstützen... Einen Link kann ich leider nicht anfügen... Der wird als hier als Spam erkannt ;) Jedoch besitze ich derzeit auch nur einen Laptop und brauche somit einen Brenner der per USB arbeitet! Aber zu teuer darf der auch wieder nicht sein ^^ Wie schon gesagt, bin Student. Naja dann noch ... Wo ist der Unterschied zu den AMTEL Controllern? Hier wird viel von denen gesprochen und auch von den STK200,500,600 jedoch teilweise liegen die weit über meinem Budget! Ich weiß, viele Fragen, aber ich hoffe ihr könnt mir helfen... Danke euch!
ruNN0r schrieb: > Ich habe mich teilweise schon für PIC** entschieden. Dann sind wir ja schon fertig. Aber dieses MP-Lab ist echt ein Krampf! Musste mich kürzlich mal wieder damit rumärgern... > Aber zu teuer > ... > weit über meinem Budget! Hast du da mal belastbare Zahlen? ruNN0r schrieb: > (laut tutorial) Quellenangaben fehlen!
Ob PIC oder Atmel ist weitgehend Geschmackssache. Für einen Einsteiger sind die Unterschiede nicht so wichtig. Hier im Forum ist man auf Atmels AVR zentriert. Von daher wirst du über PIC nicht viel finden. Wohl aber gibt es Forenteilnehmer die sich mit PIC auskennen. Einen Brenner: kauf dir einen fertigen oder kauf dir gleich einen Arduino (dann brauchst du erst mal keinen Brenner, die werden über Bootloader programmiert). Aber ansonsten: Du kannst lesen soviel du willst. Irgendwann musst du ins kalte Wasser springen und einfach mal anfangen. Der Einstieg kostet ein bischen Geld, schon richtig. Speziell dann, wenn es darum geht, selber Hardware an den µC drann zu bauen. Aber da führt kaum ein Weg drann vorbei. Höchstens ein Entwicklungsboard, welches schon einige Komponenten mitbringt (zb das Pollin Board). Aber abgesehen davon: Wecker ist schon zu komplex. Ein guter Einstieg ist erst mal - tata: ein paar LED an den µC hängen und mit denen spielen. Einzeln ein-/ausschalten, Muster programmieren, Lauflichter, etc. Das ist das kleine Einmaleins der µC-Programmierung.
ruNN0r schrieb: > Ich habe etwas über das PicKit3 gefunden... jedoch scheint der nicht > sehr viele Familien und Bausteine zu unterstützen Mit dem PICKIT3 sollte man eigentlich alles, was PIC im Namen hat und Flash besitzt, brennen können. Das PICKIT3 gibts auch als Clone in der Bucht für knapp über 20€. Ich hab so eins und bin damit zufrieden. Gruß Oliver
Hallo ruNN0r, leider bist Du hier bei den AVR-Atmel-Freaks gelandet. Über PIC findest Du hier nicht besonders viel. Ich bin mit den PIC's voll zufrieden. Meine ersten Gehversuche habe ich erfolgreich mit Hilfe der Seiten von "sprut" [http://www.sprut.de/index.htm] gemacht. Dort findest Du alle für den Anfang erforderlichen Grundlagen und Infos. Preislich ist die Tendenz eher zu Gunsten der Pics. Schau doch einfach mal bei Reichelt nach den Preisen und vergleiche selbst! @Lothar Miller Was Du daüber das Microchip-Entwicklungsssytem MPLAB schreibt ist einfach falsch! Ich hatte NOCH NIE damit ein Problem! Gruss Ottmar
Hey, erst mal vielen Dank! Das ging ja schnell bei euch ;) @Lothar Miller: Zu Teuer: Naja ich habe Teilweise Boards gesehen die als StarterKit galten und über 100 oder 200€ kosteten. War da sehr erschrocken! Ich dachte da an MAX. 80€ für das Programmier-equipment! Quelle: Wie von Ottmar erwähnt. Sprut (Link nicht möglich) Aber bei dem Brenner 8 ist mir aufgefallen dass ich erst mal den PIC18F*** Programmieren muss um diesen Brenner nutzen zu können! Sonst fand ich alles klasse da... unübersichtlich, aber sehr gut beschrieben und Detailreich! @Karl Heinz Buchegger: Ja, nur kann ich mich nicht entscheiden da ich irgendwie diese AVR Sache nicht verstehe... bei den PICs habe ich die arbeitsweise nun verstanden (denke ich) und einige Beispiele gesehen. Aber die AVR sachen... ich bin diesesn Tutorial hier noch mehrmals durchgegangen und irgendwie bleibe ich immer wieder stecken... bei einigen sachen... jedoch würd ich es gern verstehen um mich entgültig entscheiden zu können... daher war meine Frage wo die unterschiede sind. Der Wecker soll auch nur mein nächstes Projekt sein. Eine Uhr mit Countern habe ich bereits gebaut... nur für die 1Hz Taktung habe ich eine Schaltung... ich nenne es mal "Adaptiert" ^^ geklaut klingt so böse ^^ @Oliver J.: Irgendwo habe ich eine Liste gefunden wo die Unterstützten PICs drin standen... Finde es leider nicht wieder... Kann natürlich auch von der Software abhängig gewesen sein... denn laut einer Anleitung soll der das PICKit3 nur mit deren Software laufen! @Ottmar K.: Wie erwähnt, die Seite ist mir bekannt aber trotzdem Danke ;) --------------------------------------- Also ich werde noch mal versuchen mich in die AVR geschichte reinzulesen und mich entscheiden. Eure Infos waren schon mal sehr hilfreich und haben mir Denkanstöße gegeben. Ich werde mich mal weiter informieren. Wenn Ihr noch Ideen, Tipps, Tutorials usw. habt: Immer her damit! Egal was! ;)
ruNN0r schrieb: > Mein nächstes Projekt ist z.B. ein Wecker. Aber was nehme ich da, wo > sind die Unterschiede? Ich habe nun seeehr viel über PICs gelesen. > PIC16F*** PIC18F*** fand ich so schon mal nicht so schlecht! Wie ist > eure meinung? Ist dies gut für anfänger? Ich bin Informatikstudent... > zwar im ersten Semester aber ein wenig Erfahrung von Digitaltechnik und > I/O bringe ich mit ^^ Schau Dich auch bei den PIC24/dsPIC und PIC32 um. Die sind angenehmer zu programmieren. > Ich habe mich teilweise schon für PIC** entschieden. Gut! > Jedoch bereitet mir > der Brenner sorgen. Ich möchte nicht zu eingeschränkt sein. Einen PIC > Brenner selber bauen ist ganz nett, dazu muss ich aber einen PIC > programmieren um einen Brennen zu können (laut tutorial)... Einen Brenner willst Du nicht. Damit kannst Du nur brennen, aber nicht debuggen. Die Brenner sind noch aus der Zeit, als die PICs nur einmal programmierbar oder UV-löschbar waren. Das war Anfang der 90'er und ist heute nicht mehr relevant. > Ich habe etwas über das PicKit3 gefunden... jedoch scheint der nicht > sehr viele Familien und Bausteine zu unterstützen... Einen Link kann ich > leider nicht anfügen... Der wird als hier als Spam erkannt ;) Das PicKIT3 kann so gut wie alle aktuellen PICs programmieren und debuggen, und zwar PIC16, PIC18, PIC24, dsPIC und PIC32. > Jedoch besitze ich derzeit auch nur einen Laptop und brauche somit einen > Brenner der per USB arbeitet! Aber zu teuer darf der auch wieder nicht > sein ^^ Wie schon gesagt, bin Student. Kaufst Du hier für 42,59€: http://hbe-shop.de/Entwicklungskits-und-BoardsHalbleiter-ToolsHalbleiter-Zubehoer177-1323 Den Rest holst Du Dir bei microchip.com: MPLAB IDE, den passenden Compiler für Deine Architektur, Application Libraries. Beim Compiler nimmst Du die Lite-Versionen, die sind kostenlos und reichen für Dich. > Naja dann noch ... Wo ist der Unterschied zu den AMTEL Controllern? Atmel AVR meinst Du. Vorteile AVR: - verbreitet - GCC verfügbar (wie bei PIC24/dsPIC/PIC32) - angenehm in Assembler zu programmieren Nachteile AVR: - AVR Default-Programmierschnittstelle ISP: nur programmieren, nicht debuggen; PIC: ICSP kann mit nur zwei Pins plus Reset programmieren UND debuggen - JTAG zum Debuggen nur bei größeren Bausteinen verfügbar, braucht viele Pins, JTAGICE sehr teuer - nicht so große Auswahl an Typen und Peripherie, kein AVR mit eingebauten Ethernet (PIC: ja, PIC18F67J90 Familie, PIC32), kein kleiner AVR mit CAN erhältlich - Peripherie ist bei Microchip leistungsfähiger Vorteile PIC: - Herstellersupport von Microchip sehr gut - viele Peripheriebibliotheken von Microchip verfügbar (TCP/IP, USB, Bluetooth, WLAN, Grafik) - Alles passt nahtlos zusammen (IDE, Compiler, Debugger, Bibliotheken), Inbetriebnahme einfacher Nachteile PIC: - PIC16/PIC18: sehr alte Architektur, max 3968 Bytes RAM möglich (PIC24: Architektur ähnlich AVR aber 16-bittig, PIC32: MIPS-Kern (vgl alte SGI-Workstations, sehr leistungsfähig) fchk
in meiner FH werden mitlerweile MSP (430 glaube ich) benutzt. ich find, so zum µC ausprobieren, erfahrungen in C sammeln, und mal erste I/Os machen, ist das launchpad doch bestechend..?
@Frank K. Alter schwede!!! VIELEN DANK!!! Deine Infos waren/sind echt klasse. Du hast mich überzeugt. Es wird der PIC ^^ Trotzdem werde ich zunächst ältere Chips verwenden PIC16 oder 18. Dafür gibt es einige nette Tutorials oder Schaltungen die ich zum probieren nachbauen kann. Für eigene Projekte werde ich mich dann an die von dir genannten wenden ;) Hab noch ein wenig gelesen und was alles möglich ist... wow. Freu mich jetzt schon rumzubastelln und meine erste Errungenschaft fertigzustellen ;) Achja und danke für den günstigen Link ;)
ok, dann brauchst Du jetzt ein paar Downloads: 1. MPLAB IDE. Nimm die ältere MPLAB8. Die neuere MPLABX ist noch ganz neu, das kann an der einen oder anderen Stelle noch haken. Die 8'er funktioniert einwandfrei und ist bugarm, sieht aber nicht so schön aus. http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002 2. Compiler - die Lite-Versionen sind für Dich: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en534868&page=wwwCompilers 3. Application Libraries für TCP/IP, USB etc http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en547784 Zur Chipauswahl: PIC16 und PIC18 haben eine ähnliche Architektur. Bei PIC18 wurden allerdings einige Erweiterungen vorgenommen, damit es die C-Compiler einfacher haben brauchbaren Code zu erzeugen. Wenns geht, nimm also keine PIC16, es sei denn, Du willst für große Stückzahlen noch ein paar Cent sparen. Nimm von einer Familie immer den mit dem größten Speicher (Flash/RAM), das Knausern lohnt sich für Dich nicht. Hier hast Du eine gute Auswahlhilfe. Da kannst Du anklicken, was Du brauchst, und bekommst dann die passenden Typen angezeigt. http://www.microchip.com/productselector/MCUProductSelector.html Und dann mal viel Spaß. fchk
ruNN0r schrieb: > Trotzdem werde ich zunächst ältere Chips verwenden PIC16 oder 18. Noch ein paar Infos: Im 28-poligen Gehäuse (falls Dir das ausreicht) ist der PIC18F2520 quasi das upgrade zum beliebten PIC16F876. Wobei ich inzwischen auch den PIC24FV32KA302 verwende (gibts bei DigiKey) Gruß Anja
Der Spruch von der "sehr alten" Architektur ärgert mich ziemlich. Man bedenke, daß die Architektur vom ARM noch viel älter ist und die von MIPS (PIC32) ebenfalls und (eigentlich) die vom "Intel inside" PC und neuerdings auch MAC ist ebenfalls sehr alt. Es kommt nicht auf das angebliche Alter von Architekturen an. Die Architektur der Atmel-AVR ist eher als "klassisch" zu bezeichnen, wo man eine CPU mit Registern hat und dazu dann einen RAM und (wenn mich meine Erinnerung nicht trügt) einen extra I/O-Bereich. Die Architektur der PIC's ist hingegen sehr viel anders, etwa so wie beim Z8, wo die meisten Operationen nicht in CPU-Registern, sondern direkt im RAM stattfinden. Ich find's genial, aber manche Leute mögen es eben eher klassisch, die greifen dann zu Atmel. Die kleineren PIC's (16Fxxx) sind aus ihrer Historie heraus auch eher für kleinere Aufgaben in Assembler gedacht, aber sie sind sehr vielseitig, wenn man sich die Mühe macht, das Manual zu lesen. Du merkst schon, daß ich eher zur PIC-Fraktion gehöre. Meine AVR-erfahrungen basieren hauptsächlich auf dem Mega169, weil der ein gut benutzbares LCD-Interface hat (4 Backplanes+25 Segmente). Aber mittlerweile gibt's sowas auch bei den PIC's. Aber - bei allem Streit zwischen PIC und AVR - solltest du nicht vergessen, daß es auch noch mehr uC gibt und daß es gerade bei den Cortexen einiges an wirklich billigen Programmier-Bastel-Kits gibt. Und nochwas: Überschätze diese ganze Debuggerei nicht. Programmieren muß man so einen Chip immer, aber einen Debugger braucht man eigentlich nicht, wenn man lesen, verstehen und denken kann. Deswegen tun es all diejenigen Chips auch, die einen fest eingebauten Bootlader haben, den man per V24 benutzen kann (z.B. die Arms/Cortexe von NXP und ST). Ich hab mit denen schon einiges gebastelt und dabei nie nen Debugger gebraucht. Ja, ich habe einen von Segger, aber der liegt faul in seiner Schachtel und wartet darauf, daß ich ihn wirklich mal benötige. Besorg dir mal per Internet ne Freikarte für die Embedded in Nürnberg und fahre hin (wenn nicht gerade Prüfungen anstehen..). Mit etwas Glück drückt dir dort jemand ein Kit mit nem einfachen Bastel-Board inclusive Programmieradapter und ner Software-CD einfach so in die Hand. Für Studenten haben die Leute dort meist was übrig. W.S.
W.S. schrieb: > Der Spruch von der "sehr alten" Architektur ärgert mich ziemlich. Man > bedenke, daß die Architektur vom ARM noch viel älter ist Das stimmt nicht. Die klassische PIC-Architektur entstand Mitte der 1970'er Jahre bei General Instruments, aus deren Halbleitersparte Ende der 1980'er Microchip hervorging. ARM und MIPS sind Kinder der 80'er. Dem Rest stimme ich zu, bis auf ... > nochwas: Überschätze diese ganze Debuggerei nicht. Programmieren muß man > so einen Chip immer, aber einen Debugger braucht man eigentlich nicht, > wenn man lesen, verstehen und denken kann. Deswegen tun es all > diejenigen Chips auch, die einen fest eingebauten Bootlader haben, den > man per V24 benutzen kann (z.B. die Arms/Cortexe von NXP und ST). Ich > hab mit denen schon einiges gebastelt und dabei nie nen Debugger > gebraucht. Ja, ich habe einen von Segger, aber der liegt faul in seiner > Schachtel und wartet darauf, daß ich ihn wirklich mal benötige. Natürlich geht es auch ohne. Früher haben wir EPROMs gebrannt, in das Zielsystem gesteckt und geschaut, ob's geht. Und wenn nicht, eine Änderung gemacht, ein neues EPROM gebrannt und wieder probiert. Und wir wurden auch fertig. Ein Debugger macht allerdings viele Sachen einfacher, und wenn ich mir das Leben einfacher machen kann, dann mache ich es auch. Zumal das bei mir inzwischen mehr als nur Zeitvertreib ist und Zeit inzwischen für mich bares Geld ist. fchk
Frank k. schrieb: > Nachteile PIC: ... Ich bin mir nicht ganz sicher ob das immer noch alles aktuell ist, oder ob die PICs nun aufgeholt haben und würde dich bitten diese Aussagen zu bestätigen/wiederlegen: #1 Es gibt nur ein einziges (!) working Register, durch das man praktisch alles durchschieben muss was man machen möchte -> viel langsamer/ineffektiver als beim AVR #2 Die Teilung des Taktes durch 4 #3 Kann nicht per Hardware Multiplizieren sondern das muss mit umständlicher und langsamer Software realisiert werden #4 Das aufsplitten des RAMs in Bänke - zu was das gut sein soll hat sich mir nie erschlossen...^^ Falls das immer noch so ist sind die AVRs den PICs leistungstechnisch um längen überlegen... (Erschwerend kommt dazu, dass die meisten AVRs schneller getaktet werden können als PICs) (Mir persönlich sind AVRs deutlich lieber, ich finds doof dass in den Prüfungen der IHK PICs dran sind und freu mich dass ich die Controller beim betrieblichen Auftrag selbst aussuchen darf :-D )
-schumi- schrieb: > #1 Es gibt nur ein einziges (!) working Register, durch das man > praktisch alles durchschieben muss was man machen möchte -> viel > langsamer/ineffektiver als beim AVR > #2 Die Teilung des Taktes durch 4 > #3 Kann nicht per Hardware Multiplizieren sondern das muss mit > umständlicher und langsamer Software realisiert werden > #4 Das aufsplitten des RAMs in Bänke - zu was das gut sein soll hat sich > mir nie erschlossen...^^ Zu #1 jein: Du hast die Architektur nicht verstanden. Im Gegenteil. Der AVR hat nur 32 Working Register. Beim PIC ist jeder Befehl auf jede RAM-Zelle und jedes I/O-Register anwendbar. Im Schnitt braucht ein PIC18 nur 2 Befehle da wo der AVR 3 braucht. Zu #2 stimmt für PIC16 und PIC18. Bei PIC24 wird nur noch durch 2 geteilt. (und zwar nachdem erst mal der Quarz mittels PLL vervielfacht wurde). Zu #3 ab PIC18 gibt es den Hardware-Multiplier. Die ersten AT90Sxxxx hatten übrigens auch keinen Hardware Multiplier. Außerdem erschließt sich mir nicht wofür man bei einer Uhr einen Hardware-Multiplier braucht. zu #4 hängt wohl an der großen Anzahl Working Register. Das mit der Effizienz muß man wohl näher beleuchten: Die AVRs sind bei gleichem Quarz natürlich schneller als ein PIC16 oder PIC18, brauchen aber dafür auch entsprechend mehr Strom was bei Batterieanwendungen eher ärgerlich ist. Wenn man die Mips/mA in konkreten Anwendungen vergleicht, habe ich festgestellt daß beide etwa gleich leistungsfähig sind, also den gleichen Strom verbrauchen. Ansonsten: bei normalen Anwendungen (Uhr) wirst Du nie an die Grenze kommen wo es einen Unterschied macht ob du einen PIC oder AVR verwendest. -schumi- schrieb: > und freu mich dass ich die Controller > beim betrieblichen Auftrag selbst aussuchen darf :-D ) Das wird Dir dann der Einkauf schon noch sagen welchen Kontroller du bei größeren Stückzahlen zu verwenden hast. (z.B. einen aus der ST6-Serie) Gruß Anja
Anja schrieb: >-schumi- schrieb: >> und freu mich dass ich die Controller >> beim betrieblichen Auftrag selbst aussuchen darf :-D ) > >Das wird Dir dann der Einkauf schon noch sagen welchen Kontroller du bei >größeren Stückzahlen zu verwenden hast. (z.B. einen aus der ST6-Serie) Ich dachte jetzt eher an die Abschlussprüfung der Ausbildung EGS..^^ >Ansonsten: bei normalen Anwendungen (Uhr) wirst Du nie an die Grenze >kommen wo es einen Unterschied macht ob du einen PIC oder AVR >verwendest. Das ist mir natürlich klar - war jetzt eher allgemein gedacht. Vielen Dank -schumi-
-schumi- schrieb: > Ich bin mir nicht ganz sicher ob das immer noch alles aktuell ist, oder > ob die PICs nun aufgeholt haben und würde dich bitten diese Aussagen zu > bestätigen/wiederlegen: DIE PICs ist erstmal schon falsch. In den Köpfen der meisten Leute gibts nur die alten PIC16/PIC18. Schau Dir mal PIC24 dsPIC und PIC32 an. Das sind ganz andere Architekturen, deutlich leistungsfähiger als PIC18 und AVR, aber mit den gleichen Tools wie PIC18 zu programmieren. > #4 Das aufsplitten des RAMs in Bänke - zu was das gut sein soll hat sich > mir nie erschlossen...^^ Das hat mit der Äquivalenz RAM=Register zu tun, hat sich aber bei PIC18 auch erledigt. Der braucht das nicht mehr. > Falls das immer noch so ist sind die AVRs den PICs leistungstechnisch um > längen überlegen... (Erschwerend kommt dazu, dass die meisten AVRs > schneller getaktet werden können als PICs) Wie gesagt ... schau Dir mal die größeren Architekturen an. Fürs gleiche Geld bekommst Du dort deutlich mehr Leistung. fchk
Anja schrieb: > -schumi- schrieb: >> #1 Es gibt nur ein einziges (!) working Register, durch das man >> praktisch alles durchschieben muss was man machen möchte -> viel >> langsamer/ineffektiver als beim AVR Anja schrieb: > Zu #1 jein: Du hast die Architektur nicht verstanden. Im Gegenteil. Der > AVR hat nur 32 Working Register. Beim PIC ist jeder Befehl auf jede > RAM-Zelle und jedes I/O-Register anwendbar. Im Schnitt braucht ein PIC18 > nur 2 Befehle da wo der AVR 3 braucht. Zu Schumi's "Ehrrettung": Ich glaube nicht, dass es daran liegt. Ich kenne den aktuellen Stand (auch) nicht, aber es gab Zeiten, wo Schumi's Aussage stimmte. Die guten alten 8-Bit-PICs (PIC16 waren das glaub ich) waren definitv sog. Akkumulator-Maschinen. Nur, dass der Akkumulator eben "W-Register" hiess. Aber eben, wie Schumi selber schon sagte, er (und ich auch) weiss nicht, inwieweit das bei modernen PICs noch so ist.
Simon Huwyler schrieb: > Ich glaube nicht, dass es daran liegt. Ich kenne den aktuellen Stand > (auch) nicht, aber es gab Zeiten, wo Schumi's Aussage stimmte. Die guten > alten 8-Bit-PICs (PIC16 waren das glaub ich) waren definitv sog. > Akkumulator-Maschinen. Nur, dass der Akkumulator eben "W-Register" > hiess. Ist auch nicht ganz richtig. Aufklärung gibt ein Blick auf die Interna: Die ALU hat sinnvollerweise zwei Eingangsworte. Eins davon ist immer der Akkumulator (WREG), das andere hat einen Multiplexer vorgeschalten, der entweder ein File-Register (RAM) oder einen Teil des Opcode durchlässt (immediate value). Am Ausgang der ALU kann man für manche Befehle vorgeben, ob das Ergebnis in den Akkumulator oder ein File-Register geschrieben wird. Es ist also an jeder Operation der Akkumulator beteiligt, das heisst aber nicht dass in jedem Fall ein separates "umspeichern" vom Akkumulator ins RAM erfolgen muss, da dies innerhalb eines Befehls per Hardware erfolgen kann. Gruß, Edson
Ob nun der AVR oder PIC sparsamer mit Flash umgeht, ist sowas von egal, da sie genügend haben. Außerdem ist der 8051 deutlich sparsamer als beide, zumindest bei kleinen Programmen bis ~16kB. Und ob einer etwas schneller ist, spielt in der Praxis auch keine Rolle. Ich hab lange standard 8051 verwendet (12MHz/12 = 1MIPS) und hatte nie das Gefühl, daß mir CPU-Zeit fehlt. Unschön am PIC ist aber, daß man im Interrupthandler erstmal die Quellen auseinander klamüsern muß. Andere Architekturen haben je Quelle einen eigenen Vektor. Ich setze hauptsächlich AVRs ein und habe sehr gute Erfahrungen damit. Sie sind sehr robust und zuverlässig. Das ist für mich sehr wichtig, da ich in den Geräten bis zu 30kV steuern muß. Der AVR-GCC macht die Programmierung auch sehr einfach. Allerdings hat der GCC manchmal merkwürdige Ansichten bezüglich Optimierung. Peter
Wow... nun geht ihr aber ab ^^ von einigen Sachen habe noch nichts gehört und mich damit noch nicht beschäftigt :D Learning by Doing... Ich hab mir nun überlegt: das PICKit3 kaufen. Eine Platine (oder Steckboard) fertig machen mit Tastern und LEDs. Einfach mal rumprobieren... Dazu würd ich gern einen großen IC nehmen... da ich später auch größere dinge Testen will... Meine Kenntnisse in "Sparsamer" Programmierung halten sich logischer weise noch in grenzen ^^ Dies werde ich dann in der Praxis ausarbeiten... Was haltet ihr von diesem CHIP: PIC 18F46K20-IP <- Reichelt Art.Nr. Wenn ich das Datenblatt richtig verstehe besitzt dieser auch einen Internen Takt und ich muss keinen Quarz ansetzten!? Mit 36 I/O Pins sollte ich auch erst mal auskommen :D Wie ist eure Meinung? Gute Idee oder voll daneben? Eine Frage kam mir noch auf... der 8-Bit Timer und 16-Bit Timer... Ich weiß nicht ob ich den richtig verstanden habe... So habe ich es verstanden: der Timer zählt jedes mal bis 2^8 bzw 2^16. Der 18F46 hat 64MHz (hey, mein alter 486 auch ^^) also gibt es pro Sekunde 250.000 Overflows bei dem 8Bit Timer und 976,5625 bei dem 16Bit Timer. Auf diese art und weise könnte ich also meiner Uhr näher kommen oder? also wenn 250.000 Overflows voll sind, habe ich eine Sekunde erreicht... Sprich mit diesem Timer im innern kann ich Wartezeiten Programmieren oder auch LEDs Blinken lassen. Ist dies so halbwegs richtig?
Also ich hab schon so einige uC programmiert (PIC/AVR/Renesas/8051..) und bin beim Propeller hängen geblieben. Für Einsteiger bietet sich das QuickStart-board an. Einfach per USB an den Lappi anhängen und überall loslegen ;o) Für Anfänger ist es außerdem sehr bequem, dass der Propeller keine Interrupts hat und man keinerlei Configurations-Register braucht, um die Hardware-Interfaces zum Laufen zu bringen. Aber das nur so am Rande. Da du ja Informatiker bist kann ich hier auch mal ein wenig kleinlich sein ;o) Natürlich zählt der 8-bit Timer nicht bis 2^8, sondern NUR bis 2^8-1 ... dito für den 16-bit Timer. Aber ich glaube in deiner Rechnung hast du nicht berücksichtigt, dass der timer nicht mit dem system-takt läuft, sondern mit Fosc/4 (zumindest in dem PIC16-datasheet und ich hoffe mal bei deinem PIC ist es auch so ;o) Auf jeden Fall bietet es sich an den timer noch so aufzusetzen, dass ein prescaler eingesetzt wird. Ansonsten frisst dir die Interrupt-Routine mehr CPU-Zeit, als nötig. Vermutlich würde der Rest an CPU für die simple Tätigkeit eine Uhr durchaus reichen, aber lieber gleich verstehen, was da passiert und richtig machen! Auf Dauer wirst du allerdings mit einer rein internen Zeitbasis nicht sonderlich glücklich. Ich würde auch wegen des Lern-Effektes einen Funkempfänger empfehlen (DCF77-modul). Die gibt es z.B. bei Pollin für um die 6Euro glaube ich. Der liefert nicht nur die Uhrzeit, sondern auch einen genauen Sekunden-Takt. Dann braucht man den internen Timer nur noch als backup (für die 60. sekunde und falls das signal mal ausfällt).
ruNN0r schrieb: > Wenn ich das Datenblatt richtig verstehe besitzt dieser auch einen > Internen Takt und ich muss keinen Quarz ansetzten!? > > Mit 36 I/O Pins sollte ich auch erst mal auskommen :D > > Wie ist eure Meinung? Gute Idee oder voll daneben? Für den Einstieg reicht ansich jeder µC aus. Mit diesem wirst du erstmal nicht an Grenzen stoßen. Ja, er hat einen Internen Oscillator. Den kannst du soweit auch erstmal benutzen, doch er ist ansich nie so genau, wie von außen beschaltete Quarze oder allg. Taktgeber. Wann ein genauer Takt nicht benötigt wird, ist der interne ausreichend (ob eine LED nun 2 Sekunden anbleibt oder 2,00001 Sekunden, ist ja wohl egal, wenns für die Optik ist). Doch bei Zeitgenauen Sachen, wie z.B. USB, RS232 oder auch eine Uhr ;) ist ein Externer Quarz (es gibt auch Uhrenquarze) quasi Pflicht damit alles gut hinhaut. Teuer sind die auch nicht und 2 IOs weniger macht bei 36 auch nicht viel. ruNN0r schrieb: > Ist dies so halbwegs richtig? Du hast eine Taktquelle mit 64MHz. Das macht für den SystemClock 64MHz durch 4 = 16MHz oder anders, 62,5ns. Mit einem Takt wird über einen Zähler der Timer um eins erhöht. Also bei 8 bit sind das 256 Takte bis zum Overflow (also 16µs) und bei 16bit 65536 Takte -> 4096µs. Du kannst dem Timer aber auch einen Startwert geben und auch einen Vorteiler einstellen. Wenn du also einen Vorteiler von 32 einstellst, hat dein 8bit Timer den Overflow nach 512µs (pro Takt 2µs). Wenn du jetzt weißt, dass der Timer nach 2µs um 1 erhöht ist, kannst du den Startwert auf 6 legen und er is 6 Takte -> 12µs früher am overflow'en ;) Also genau nach 500µs. Wenn du einen 2. Zähler bei jedem Overflow um 1 erhöhst, dann kannst du sagen, dass du beim Wert 200 eine Zeit von 100ms, also 1/10 Sekunde gewartet hast. Dein "Problem" ist (als Anfänger und mit ASM statt Hochsprache), dass du nur 8bit bzw 1Byte Speicherzellen hast, das heißt du hast deine Speicherzelle nach 255 (127,5ms) ausgeschöpft. Das hieße, dass du dort auch den Overflow (Carrybit) prüfen musst und eine 2 Zelle um eins erhöhen musst. In beispielsweise C kannst du einen 16bittigen Integer nehmen und einfach bis 2000 hochzählen. Nur.. eine Uhr ist für den µC sehr langweilig (im Sinne von: der µC hat nichts zutun). Und da nützt es auch nichts den schnellstmöglichen Takt zu haben, eher im Gegenteil, da je höher der Takt, desto höher der verbrauchte Strom, was grade bei Batteriebetriebenen Sachen (wie z.B. eine Uhr) wichtig ist. Das gilt im übrigen auch für LED/Schalter Anwendungen. Und: Im vom mir genannten Rechenbeispiel ist es auch so, dass der µC sowieso zu 99% den Timer hochzählt und zu den anderen % dann Ausgänge setzt oder Eingänge liest. Also wenn man nur einen 4MHz Takt nimmt -> geteilt durch 4 -> einen 1MHz Systemclock hat, dazu den Vorteiler 32, dann ist der Takt, der den Timer hochzählt ~32kHz und ein Takt ist 32µs lang. Man sieht hier auch: Man hat den Takt durch 16 geteilt, also multipliziert sich die Zeit pro Takt mit 16. Einen Overflow gibts also nach 8,192ms. Auch hier wieder mit einem Startwert so eingestellt, dass es nach 8ms einen Overflow gibt und somit wären eine Sekunde 125 mal 8ms. Und siehe da: 125 passt in eine 8bit-Speicherzelle. Und wenn die Anwendung die ist, dass eine Taste gedrückt wird und direkt eine LED für 1s angeht, dann ist 1MHz mehr als ausreichend und erleichtert auch noch die Programmierung. Du siehst, nicht immer ist der/das schnellst der/das beste. Zu deiner Uhr. Es gibt wie genannt auch ein DCF-Signal, womit du eine recht gute und genaue Uhr machen kannst, die du nichtmal groß Stellen musst, außer evtl Zeitzonentechnisch. Alternativ, ich seh es immer so als Mittelding zwischen Uhrenquarz am µC und DCF, ist ein RCT-Modul mit ggf internem Temperaturkompensierten genauen Oscillator. Den Spricht man über eine Schnittstelle an und dort ist die Zeit und das Datum gespeichert und wird automatisch durch den internen Takt geändert. Viele RCTs bieten auch einen oder mehrere Alarme an. Das heißt, du schreibst eine Zeit in gewisse Speicherzellen und wenn diese erreicht wird, wird ein spezieller Ausgang gesetzt und du kannst beispielsweise einen Pieper (oder über ein Relais eine Wasserpumpe) einschalten ;) MagIO schrieb: > Natürlich zählt der 8-bit Timer nicht bis 2^8, sondern NUR bis > 2^8-1 ... dito für den 16-bit Timer. Das tut er, doch er fängt auch bei 0 an, d.h. er hat nach 256 Takten einen Overflow, obwohl von der Zahl her nur 255 "darstellen" kann
Du kannst dir ja mal hier auf der Seite den Artikel über PIC angucken, das fällt mir bei der (oft bemängelten) Vierteilung ein, zumindest der eine Abschnitt: http://www.mikrocontroller.net/articles/PIC#Missverst.C3.A4ndnisse_und_Eigenheiten Auch die Anderen Abschnitte zum Brennen oder Compilern z.b. Wer englisch versteht, dem kann ich das genannte Video nur empfehlen. Gerade für die Leute, die immer den eigenen µC beschützen und als einzig Wahres verkaufen wollen.
hi, zu den 2^8-1: Ja, ich habe mich da falsch ausgedrückt. Er zählt bis 2^8-1 aber nimmt 2^8 zählungen vor bzw. hat 2^8 Takte... ;) ich schrieb: > Du hast eine Taktquelle mit 64MHz. Das macht für den SystemClock 64MHz > durch 4 = 16MHz [...] Du teilst durch 4 weil, ... der PIC 4 Timer hat?! Bei dem Rest lag ich ja gar nicht mal so verkehrt... Den Vorteiler kannte ich, hatte ich aber einfach erst mal außer acht gelassen ;) Den PIC18F46 habe ich ja nur als TestPIC gewählt zum rumprobieren... Sollte also nicht unbedingt (wenn nicht erforderlich) für ein Späteres Projekt genutzt werden ^^ Das DCF-Modul kannte ich bereits jedoch das RTC noch nicht. Bechäftige ich mich aber erst mit, wenn ich mich dann wirklich an meine Uhr mache ^^ Zunächst war geplant eine 8x9 LED Matrix aufbauen und diese dann von dem PIC aus anzusteuern... Da kann ich dann erst mal einzelne LEDs Blinken lassen. Objekte oder so erzeugen... wie es mir beliebt... und wenn ich dann Komplexere Sachen anzeigen lassen will, brauch ja eine Bildwiederholung und da kann ich mich dann ja auch gleich an den Timer gewöhnen ;)
ruNN0r schrieb: > Du teilst durch 4 weil, ... der PIC 4 Timer hat?! Nein, mit den Timern hat es nichts zutun. Das ist eine (bei vielen komischerweise sehr nachteilige) Eigenschaft der 8bit PICs. Der Takt wird intern durch 4 geteilt. Aber nicht einfach nur so, um zu bremsen, sondern so können manche Dinge in nur einem Systemtakt durchgeführt werden. Als Beispiel muss ein µC aus dem Speicher einen Wert holen (1. Schritt), dann muss er ihn mit einer anderen Addieren (2. Schritt) und dann muss er ihn wieder ins Register zurückschaffen (3. Schritt). Das heißt, man braucht für eine Addition 3 Schritte und somit auch 3 Takte. Und durch die Vierteilung laufen quasi die vier Takte/Schritte im Hintergrund und machen das alles und deswegen ist die Addition in einem Systemtakt abgearbeitet (auch wenn er aus mehreren Schritten besteht). Da darfst du nicht durcheinander kommen. Es gibt Fosc und Fcyc. Fosc ist der Takt, der reinkkommt und Fcyc ist der durch 4 geteilte System- oder Cycletakt. In dem Datenblatt (http://ww1.microchip.com/downloads/en/DeviceDoc/41391D.pdf) steht auch ab Seite 327, wieviele Cycles ein Befehl braucht. Und du siehst es ist meistens nur einer. Wenn dir jemand also sagt, sein µC wär schneller, weil er kein 4 Teiler drin hat, dann stimmt das erstmal nicht, da er pro Befehl mehr Cycles braucht. Der Unterschied ist nur bei den Befehlen, die z.B. 3 oder nur 2 Schritte haben und somit der PIC 1 oder 2 Takte nichts tut.
Ah, ok... das mit den Timern war also nur Zufall ^^ Naja, etwas fehlerhafte Logik :D Hab diesen Absatz nun gefunden: External Resistor/Capacitor with FOSC/4 output on RA6 Dies bedeutet also er gibt am RA6 den Fcyc Takt aus?! So, ich mache gerade meinen Warenkorb fertig für meinen Start ^^ Jetzt habe ich noch mal eine super doofe Frage :D Sprut greift gern auf Keramikresonator zurück. Ich werde jedoch Quarze nehmen. Aber welchen Quarz für Welchen µC ^^ also mein schon erwähnter PIC18F* hat ja 64MHz um diese zu nutzen doch auch einen 64MHz Quarz. ganz logisch eigentlich... Ich habe nun auch noch einen PIC 16F73 eingepackt für später... dieser hat 20MHz also auch den Quarz... nun habe ich aber bei einigen Schaltungen schon gesehen dass einige einen µC nehmen mit 20MHz jedoch den nur mit einem 4MHz Quarz Tackten... bzw. mit einem 4,194304 MHz Quarz... Geht das? Kann man den µC "runtertakten". Sorry vielleicht ist die Frage echt doof aber ich denke mir, vielleicht gäbe es da Technische Probleme oder es gibt da einen tieferen Sinn... Die Kondensatoren am Quarz... muss ich die irgendwie berechnen? die einen haben dort 18pF ein anderer 22pF. Oder ist das so ein pi mal daumen wert?
ruNN0r schrieb: > Aber welchen Quarz für Welchen µC ^^ also mein schon erwähnter > PIC18F* hat ja 64MHz um diese zu nutzen doch auch einen 64MHz Quarz. > ganz logisch eigentlich... Vorsicht. Die maximalen 64MHz, bei der dein PIC noch innerhalb der Specs betrieben werden kann, müssen intern mit dem 4-fach PLL-Schaltkreis aus einer langsameren Grundfrequenz erzeugt werden. In deinem Fall also maximal einen 16MHz-Quarz verwenden. ruNN0r schrieb: > habe ich aber bei einigen Schaltungen schon gesehen dass einige einen µC > nehmen mit 20MHz jedoch den nur mit einem 4MHz Quarz Tackten... bzw. mit > einem 4,194304 MHz Quarz... Geht das? Das geht auf jeden Fall. Bei PICs geht die System-Clock von DC bis Fmax (Device-abhängig). Gruß, Edson
Der PIC18 hat ja einen Internen Takt... diesen werde ich verwenden... also brauche ich dort keinen Takt. der PIC 16F73 jedoch ist ein 20MHz... diesen muss ich mit einem Quarz "austatten", also darf ich da max einen 5MHz Quarz nehmen?
ruNN0r schrieb: > Hab diesen Absatz nun gefunden: > External Resistor/Capacitor with > FOSC/4 output on RA6 > > Dies bedeutet also er gibt am RA6 den Fcyc Takt aus?! Das bedeutet, dass du den Takt (Fosc/4 -> also Fcyc) als Rechteck ausgeben KANNST. Du hast ein Config-Word, das ist eine Anzahl von Bits, die beim Programmieren mit geschrieben werden. Darüber kann man einiges einstellen, beispielsweise ob der PLL benutzt werden soll, aussuchen, ob man an dem einen PIN den Reset haben will ODER ein IO. Oder eben welche Taktquelle man haben will. Einen Langsamen Quarz, einen Schnellen Quarz, ein RC-Glied oder den Internen. Und wenn du z.B. den internen Oscillator nimmst, dann kannst du entscheiden, ob du den Pin mit RA6 (also dem vorletzten Bit vom PORTA) ODER ob du den Takt ausgeben willst um Beispielsweise andere Bauteile genau gleich laufen zu lassen wie den PIC. ruNN0r schrieb: > Ich habe nun auch noch einen PIC 16F73 > eingepackt für später... Dir ist aber bewusst, dass der PIC18 mehr kann und auch schneller usw ist!? Für später klingt so... als wenn du mit nem einfachen schlechteren anfängst und dann später auf den besseren zurückgreifst^^ ruNN0r schrieb: > Geht das? Kann man den µC "runtertakten". Es ist ansich kein runtertakten. Die Frequenzen, die angegeben sind, sind Maximalwerte. Also da, wo er vom Hersteller garantiert läuft. Wie schon gesagt geht die Frequenz von DC (also Gleichspannung 0Hz) bis zur Maximalfrequenz. Also wenn du wolltest, könntest du auch einen Taster nehmen und den Takt selbst klicken. Dann dauert es natürlich etwas länger und du bekommst kaputte Finger ;) Aber rein praktisch funktioniert es. ruNN0r schrieb: > Die Kondensatoren am Quarz... muss ich die irgendwie berechnen? die > einen haben dort 18pF ein anderer 22pF. Oder ist das so ein pi mal > daumen wert? Die werden im Datenblatt auch erwähnt. Ich hab meist 18pF genommen. Sehr kritisch ist der nicht, er darf nich zu groß und nich zu klein sein.
ruNN0r schrieb: > Der PIC18 hat ja einen Internen Takt... diesen werde ich verwenden... > also brauche ich dort keinen Takt. > > der PIC 16F73 jedoch ist ein 20MHz... diesen muss ich mit einem Quarz > "austatten", also darf ich da max einen 5MHz Quarz nehmen? Also was du dir aufjedenfall, egal ob und welcher µC, angewöhnen solltest, ist das Datenblatt zu lesen. Dort steht für den PIC18 z.B. auf Seite 385, welche maximalen Frequenzen du bei den verschiedenen Modes haben darfst. Da steht z.B. auch drin, dass es ein 3,3V µC ist. Das heißt, du haust den mit 5V als Versorgung kaputt. Also nur das du es weißt. Es gibt aber auch viele (grad neue) PIC, die können alles von 1,8V-5,5V ab. Die find ich persönlich besser, da die die 5V TTL abkönnen, notfalls aber auch mit 3,3V laufen können. Im Datenblatt vom PIC16F73 steht, dass im HS (Highspeed) Mode die Maximalfrequenz 20MHz ist, also kannst du da auch direkt mit 20MHz rein. Dort steht z.B. auch auf Seite 92, welche Typischen, getesteten Werte es für verschiedene Quarze gibt. Ein weiteres Zeichen ist noch, dass der PIC16F73 deutlich älter ist (also auch kein Low-Power-Controller, also kein Stromsparender) und keinen PLL intern hat. Wenn er für 20MHz gemacht ist, du intern nicht die Möglichkeit hast den Takt zu "verschnellern", kann man ansich immer mit der maximalfrequenz auch da rein.
ich schrieb: > Wenn er für 20MHz > gemacht ist, du intern nicht die Möglichkeit hast den Takt zu > "verschnellern", kann man ansich immer mit der maximalfrequenz auch da > rein. Achso, ok. Dann hab ich das vorher falsch verstanden... sorry ich schrieb: > also auch kein Low-Power-Controller Ahhh, ich glaub ich habe das Low-Power-Controller mit dem LVP (Low Voltage Programming) verwechselt... hmmm ok ich werde wohl meine Wahl der PICs noch mal überdenken müssen... Danke ich schrieb: > Dir ist aber bewusst, dass der PIC18 mehr kann und auch schneller usw > ist!? Für später klingt so... als wenn du mit nem einfachen schlechteren > anfängst und dann später auf den besseren zurückgreifst^^ Nein, so meint ich das nicht ;) Ich wollte den PIC18 wirklich nur so zum rumprobieren haben... einfach um zu basteln. wenn ich dann wirklich eine nützliche Schaltung habe und diese umsetzen möchte, möchte ich aber auch einen PIC da haben den ich evtl. dann dafür einsetzen kann. Oder halt nur um an dem rumzuprobieren und mir evtl. Unterschiede klar zu machen und das ganze besser zu verstehen... daher wollte ich gern 2 PICs aus zwei Familien haben... mehr steckt da nicht hinter... meine Gedankengänge sind da ein wenig verworren ^^
ruNN0r schrieb: > Ahhh, ich glaub ich habe das Low-Power-Controller mit dem LVP (Low > Voltage Programming) verwechselt... hmmm ok ich werde wohl meine Wahl > der PICs noch mal überdenken müssen... Danke Bei LVP musst du "aufpassen". Es ist bei mir so gewesen, dass ich vergessen habe, es zu deaktivieren und dann kam der PIC durcheinander, wenn man mal die Pins angepackt hat. Allgemein bei den PICs ist es so, dass es von den Voreinstellungen "Prioritäten" gibt. D.h. Wenn du nur sagst, du setzt TRISA und meinst, deine Pins sind Eingänge, stimmt das ansich, doch bei den Pins, wo u.a. ein AD-Wandler hinter ist, ist dieser erstmal beschaltet. Also.. Wenn du digitale Eingänge haben willst, musst du den AD-Wandler für die Ports deaktivieren. Die Wahl ist schon nicht schlecht, wenn du denn mit 3,3V hinkommst. 5V Alternativen gibts aber genug. Und zum 16F73: Er ist für vieles sicherlich ausreichend, aber oftmals sind neue und bessere PICs günstiger. Zum einen weil man den so schneller im Markt hochziehen/bekannt machen kann und weil die PICs billiger herzustellen sind. ruNN0r schrieb: > Unterschiede klar zu machen > und das ganze besser zu verstehen... daher wollte ich gern 2 PICs aus > zwei Familien haben... mehr steckt da nicht hinter... Kannst du ja auch alles machen und wie gesagt reicht so ein PIC auch für viele Projekte. Doch wenn du dich in den PIC18 eingearbeitet hast, dann wirst du merken, dass der PIC16 ziemlich genauso ist, nur halt weniger und/oder schlechtere (8bit statt 10bit PWM als Beispiel) Peripherie hat. Aber die Module und deren Register sind ziemlich gleich aufgebaut. Aber das wirst du ja sehen ;)
Eine kleine Übersicht zu einfachen Pic16 / Pic18 und dem Pickit3 Tool mit erhältlichen EV-Boards habe ich gestern reingeschrieben in den Artikel Beitrag "Pic 16f876 Unterschied" Autor: Erich (Gast) Datum: 25.01.2012 15:36 Die Pic16F1xxx sind die neuen Bauteile, welche z.B. auch die 10-Bit-PWM erzeugen können, Pic16F1827 (18-Pin) und Pic16F1937 (40-/44-Pin), auch in DIP, das sind schöne Teile, günstig, auch bei Reichelt erhältlich. Gruss
Ah, ok ich danke euch. Was haltet ihr von dem: PIC 18F442-I/P der hat kein 64MHz sondern 40MHz... Läuft mit 5V... wenn ich mir das Datenblatt so anschaue und eure genannten "Regeln" und Hinweise anwende habe ich herrausgefunden: Er hat PLL (habe ich der Schematik entnommen) und somit darf ich dort keinen 40MHz Quarz ansetzen... Auf Seite 18 habe ich die Tabelle der Quarze entdeckt... die Frage ist halt nur was ich nutzen soll... viele Projekte die ich gesehen habe wurden schon mit einem 4 MHz gemacht und da ich mich erst mal auf LED und evtl. eine LED Matrix beziehen will die ein bissel rumblinkt sollte es wohl reichen ^^ Somit wäre die Frage des Kondensators geklärt nämlich 15pF... Also was haltet ihr davon? 3,3V sind mir definitiv zu komplex... dann muss ich wieder rumwerkeln und 5V kann ich meinem Netzteil so entnehmen.
Eideard Dogan schrieb: > Er hat PLL (habe ich der Schematik entnommen) und somit darf ich dort > keinen 40MHz Quarz ansetzen. Das Problem ist ein anderes, Du wirst schwer einen 40MHz Grundwellenquarz bekommen. Ab 20MHz muß man aufpassen, daß man kein Oberwellenquarz angedreht kriegt. Die PLL ist also dazu da, daß Du leicht beschaffbare Quarze verwenden kannst. Du kannst die PLL aber auch erstmal abschalten. Man darf die CPU ruhig niedriger takten. Wenn schon bei Einsteigerprojekten die CPU auf dem letzten Loch pfeift, dann mußt Du Deinen Programmierstil gründlich überdenken. Beim AVR findet man viele Projekte, die mit 1MHz laufen, obwohl der AVR bis 16MHz kann. Peter
Peter Dannegger schrieb: > Beim AVR findet man viele Projekte, die mit 1MHz laufen, obwohl der AVR > bis 16MHz kann. Manche sogar mit 128 kHz. Sehr positiv für den Stromverbrauch.
Google nach Arduino (möchte jezt nicht für einen Shop werben). Bietet einen leichten Einstieg und kostet um die 20€ mfg usr
>Zu #1 jein: Du hast die Architektur nicht verstanden. Im Gegenteil. Der >AVR hat nur 32 Working Register. Beim PIC ist jeder Befehl auf jede >RAM-Zelle und jedes I/O-Register anwendbar. ...nur sofern die richtige Bank gewählt ist! (Auch bei den neueren (24.., 33..) kann man nur einen eingeschränkten Adressbereich ansprechen, auch von Adressierungsart abhängig. Von orthogonalem Befehlssatz ist das weit entfernt)
MCUA schrieb: > Von orthogonalem Befehlssatz ist das weit entfernt Wie kommst du bloß auf so eine Aussage? Man kann tatsächlich alle auf Register anwendbaren Befehle auf alle Register der aktuellen Seite anwenden (sic...) - und das sind im Idealfall (je nach Typ) 128 Register inclusive Hardware. Und indirekt geht es über 256 Register (sofern vorhanden). Reicht dir das immer noch nicht? Ne andere Sache, die ich hier mal erwähnen möchte, ist der bei den PIC16 eingebaute Hardware-Stack. Man kann dort zwar keine Parameter "draufpushen", aber dafür ist dieses Konstrukt so ziemlich das schnellste beim Unterprogramm-Aufrufen - viel schneller als alle anderen uC, wo der Stack im RAM angeordnet ist. W.S.
>Was haltet ihr von dem: >PIC 18F442-I/P >der hat kein 64MHz sondern 40MHz... >Läuft mit 5V... Der ist auch n bisschen älter. Das ist ansich auch nicht soooo schlimm, aber abgesehen vom alter kostet er im dip bei reichelt über 8€. Was hälst du denn vom PIC 18F45K22-I/P? http://www.reichelt.de/PIC-Controller-nanoWatt-XLP/PIC-18F45K22-IP/index.html?;ACTION=3;LA=2;ARTICLE=109921;GROUPID=4508;artnr=PIC+18F45K22-IP;SID=13Ttgg9H8AAAIAABTFiGg3a902953ef849ef3989f5edc32d992a6 Der ist bedeutend billiger und kann mehr und läuft auch mit 5 Volt. Und wie gesagt, wenn du beispielsweise die ADCs beherrschst, kannst du ansich von allen PICs deren ADCs umgehen, da die Module gleich oder zumindest sehr ähnlich sind.
Nimm das Launchpad kostet nur 5 euro, man kann debuggen und es gibt guten support. Wenn du dann mehr kannst kauf den passenden controller für dein Projekt. Vor der ersten Zeile Code schon zum Fanboy eines Herstellers zu werden ist töricht.
Hans Mayer schrieb: > Nimm das Launchpad kostet nur 5 euro, man kann debuggen und es gibt > guten support. > Wenn du dann mehr kannst kauf den passenden controller für dein Projekt. Das Board was manchmal beim PICKIT3 dabei ist, ist schon nicht schlecht, wobei man ohne löten nur LEDs blinken lassen kann, einen Taster auswerten kann und einen Poti über ADC lesen kann. Wenn es Steckbar sein soll, dann ist ein DIP und ein Breadboard nicht schlecht, sonst müsste man erst noch Kabel an die Platine löten und aufs Board stecken, da ist ein DIP doch schon besser geeignet meiner Meinung nach. Aber wenn man das PICKIT mit der Platine kauft, dann hat man sie ja sowieso schon, für die aller ersten kleinen Schritte reicht das ja auch, sprich LEDs an und aus, Lauflicht usw.. Hans Mayer schrieb: > Vor der ersten Zeile Code schon zum Fanboy eines Herstellers zu werden > ist töricht. Er ist ja kein Fanboy. Er hat sich verschiedene angeguckt und für den PIC entschieden. Wo ist das Problem? Für einen muss man sich halt entscheiden.
@ich: Den habe ich auch in schon in betracht gezogen... jedoch bevor ich den hier geposteten PIC18F46 gewählt habe. Warum habe ich dann den 46 genommen? Ganz einfach... weil er eine 46 statt einer 45 hatte :D Nein, stimmt nicht ganz aber fast... Dachte einfach der ist besser wegen mehr RAM usw. Nun gut... Ich danke dir, jedoch ich denke, wenn nichts anders als der Energieverbrauch und das alter gegen den 18F442 spricht werde ich dabei bleiben... habe mich schon schwer durch das Datenblatt gearbeitet und Notizen gemacht usw. möchte jetzt ungern noch mal Wechseln ^^ Hab den zwar noch nicht, aber Vorbereitung ist alles ^^ @Hans Meyer: Nein, genau das möchte ich nicht! Ich möchte gerne wirklich lernen Effektiv auf Hardwareebene zu arbeiten. Ich denke, dass ich es mit meinem Vorwissen schaffen kann mich da reinzuarbeiten. Ich werde Fehler machen, dumme Fragen in Foren stellen und hier und da wird mir auch mal ein IC oder sonst was um die Ohren fliegen ^^ Naja, einen 220µF Tantal verpolen wird mir wohl nicht so schnell wieder passieren :D aber trotzdem. @ich (die 2te) komme mit den ganzen ICHs durcheinander ^^ Das Board fand ich zunächst auch nicht schlecht... aber ich fühle mich da ein wenig zu eingeschränkt, da es sich ja auch nicht um einen DIL handelt. vorher habe ich immer alles auf eine Platine gelötet um es zu testen... jetzt gönn ich mir auch ein Steckboard ;) Ich habe nun also: http://www.reichelt.de/PIC-18F-Controller/PIC-18F442-I-P/index.html?;ACTION=3;LA=5;GROUP=A3668;GROUPID=2968;ARTICLE=45010;START=0;SORT=user;OFFSET=100;SID=12Tx1KXn8AAAIAAE9FsRgb2e4f869f686dc2de53f5202d8eca285 http://www.reichelt.de/Quarze/4-0000-HC49U-S/index.html?;ACTION=3;LA=5;GROUP=B41;GROUPID=3173;ARTICLE=32837;START=0;SORT=user;OFFSET=100;SID=12Tx1KXn8AAAIAAE9FsRgb2e4f869f686dc2de53f5202d8eca285 http://www.reichelt.de/Scheiben/KERKO-15P/index.html?;ACTION=3;LA=5;GROUP=B353;GROUPID=3169;ARTICLE=9272;START=0;SORT=user;OFFSET=100;SID=12Tx1KXn8AAAIAAE9FsRgb2e4f869f686dc2de53f5202d8eca285 Dazu noch einiges an Krimskram... vieles an LEDs Widerständen besitze ich bereits... Irgendwann(wenn ich mich soweit fühle) möchte ich dann ein Matrix Display ansteuern... selber Bauen wollt ich nicht... daher dies hier: http://www.reichelt.de/Siebensegment-Anzeigen/TA-20-11-RT/index.html?;ACTION=3;LA=5;GROUP=A51;GROUPID=3002;ARTICLE=31587;START=0;SORT=user;OFFSET=100;SID=12Tx1KXn8AAAIAAE9FsRgb2e4f869f686dc2de53f5202d8eca285 Hab mich da auch schon ein wenig reingelesen, auch zum Thema Multiplexing... aber ganz bin ich da noch nicht fertig... weiß noch nicht welche Transistoren und Vorwiderstände ich genau nehmen muss/sollte...
Ich bin "ich". Nur auf der Arbeit wird das nie gespeichert und ich hab keine lust mich immer anzumelden;) Es ist ansich egal welcher von den beiden. Nur eben preislich unterschiedlich (bekommst 4 von dem von mir erwähnten PIC zum Preis von einem von deinem). Zum einarbeiten sind aber beide gut geeignet. Wenn du dir das PICKIT3 kaufen willst und das mit dem Board nur n paar euro mehr kostet, würde ich das aufjedenfall bestellen (also dass du die Platine zusätzlich zum Breadboard hast). Manchmal ist zum Testen (z.B. LED dimmen mit PWM) so ne kleine Platine ganz nett. Es sind auch Beispielprogramme dafür verfügbar, die halt auf den PIC und die Beschaltung angepasst sind. Wenn du Fragen hast kannst du ja hier jederzeit fragen. Wie "dumm" die frage ist, ist eigentlich egal. Entscheident ist, wie du sie stellst. Also nach dem Muster: was geht nicht, was hab ich probiert, Sourcecode und Schaltung. Dann ist alles ok und keiner kann meckern.
Ich danke dir, . Ich habe im Laufe dieses Threads echt gemerkt... dass wenn ich 80€ für alles veranschlage, wird es knapp... ich bin nur kein guter besteller und habe keine Lust in einer Woche wieder zu bestellen (wohne am arsch der Welt und bekomme hier nicht einen Widerstand, außer ich kauf mir nen Wecker und löte den aus ^^) Daher Plane ich gern vorraus! Somit diese sache mit dem Matrix! Komme da aber leider nicht weiter... Ich habe mir dies http://www.mikrocontroller.net/articles/LED-Matrix mehrfach durchgelesen und komme noch nicht so ganz dahinter. Beim Multiplexing schalte ich in dem Fall z.B. Spalte1 ein und die Zeilen derden LEDs leuchten sollen. Dann Spalte1 aus und Spalte2 ein usw. Der ganzen Rechnung zum ersten Beispiel konnte ich soweit auch folgen. http://www.mikrocontroller.net/wikifiles/6/64/LED_Matrix_8x5.png Jedoch! Wie komme ich auf die 430 Ohm Basiswiderstand der Q9-Q13? Das habe ich noch nicht verstanden... Sie Ströme Addieren sich doch in der Spalte... duch jede LED schicke ich 20mA somit 160mA pro Spalte und somit Ic = 160mA für die Lowside Transistoren. Dann kann ich Rv mit Sättigung berechnen... aber ich komme nicht auf den wert! Für das von mir ausgewählte Matrix display http://www.reichelt.de/Siebensegment-Anzeigen/TA-20-11-RT/index.html?;ACTION=3;LA=5;GROUP=A51;GROUPID=3002;ARTICLE=31587;START=0;SORT=user;OFFSET=100;SID=12Tx1KXn8AAAIAAE9FsRgb2e4f869f686dc2de53f5202d8eca285 passt diese Schaltung ja auch oder? Nur dass ich 7 Reihen habe... Jetzt muss ich nur die spezifischen Werte eintragen und durchrechnen. Wahrscheinlich den Low-side-Transistor anpassen da ich >500mA kommen werde und natürlich nach den Daten rechnen muss... Das war dann auch erst mal das letzte wo ich hilfe brauche ;) dann habe ich wirklich alles zusammen, werde bestellen und anfangen.
Eideard Dogan schrieb: > Jedoch! Wie komme ich auf die 430 Ohm Basiswiderstand der Q9-Q13? > Das habe ich noch nicht verstanden... Es werden alle Transistoren dort als Schalter benutzt. D.h. sie sollen alle ein wenig übersteuert sein, dass sie einmal bestmöglichst leiten und einmal schlechtmöglichst Leiten. Bei diesen Transistoren ist es so, dass ein Ube von ca 0,7V angenommen ist. Damit voll durchgesteuert wird (unter Berücksichtigung der Stromverstärkung usw) wurde hier in dem Fall ca 9mA angenommen. Also muss durch den Widerstand 9mA fließen und eine Spannung von 5V-0,7V=4,3V abfallen. Und 4,3V/9mA = 477,7 Ohm, also in der E-Reihe ein 470 Ohm Widerstand. Ich kenn solch eine Schaltung jedoch nur, dass für die Q1 bis Q8 einen PNP-Transistor nimmt.
AAAAHHHH. OK, ich habe immer 10mA angenommen zur durchsteuerung. So kam ich immer auf 430 Ohm... was je ziehmlich entfernt davon ist ^^ OK. Das habe ich verstanden. Dank dir. Habe in der zwischenzeit auch noch mit Transistor Array rumgespielt und die obrige Schaltung aufgebaut. Das Shiftregister ist für mich noch nicht so relevant, jedoch habe ich es mal mit eingesetzt weil ich später damit arbeiten will. Für als LEDs habe ich wieder das angegebene Matrix display genutzt und mit den Daten gerechnet. R1...R7 sind 48 Ohm bei 2,2V und 20mA der LEDs. Die rechnung habe ich wieder aus dem Tutorial entnommen und die Werte mit den Datenblättern abgeglichen. Ich denke so geht es auch.
Eideard Dogan schrieb: > OK, ich habe immer 10mA angenommen zur durchsteuerung. So kam ich immer > auf 430 Ohm... was je ziehmlich entfernt davon ist ^^ So weit entfernt ist das auch nich.. Und man übersteuert den Transistor ja, das heißt man muss einen gewissen Wert überschreiten, damit er aufjedenfall voll leitend ist. Und ob das 3mA mehr oder weniger zuviel sind, ist ansich egal. Natürlich ist eine genauere Anpassung besser. Eideard Dogan schrieb: > Habe in der zwischenzeit auch noch mit Transistor Array rumgespielt und > die obrige Schaltung aufgebaut. > > Das Shiftregister ist für mich noch nicht so relevant, jedoch habe ich > es mal mit eingesetzt weil ich später damit arbeiten will. Die IC-Wahl sollte so funktionieren, jedoch sind mir da 3 Dinge aufgefallen: 1. Du hast die beiden Eingangspins einmal an Clock vom Oberen und einmal am Clock vom Unteren 4094. Du brauchst noch einen Anschluss für die Datenleitung, sonst weiß der 4094 ja nicht, welche Daten und somit Ausgänge er laden soll. Abgesehen davon ist es üblich, diese 2 Anschlüsse, also Clock und Data, an ein SPI-Modul zu hängen, da dort die Übertragung einfacher ist und man für den Clock kein Ausgang togglen muss. Doch wenn du nur ein Modul hast aber 2 mal Clock funktioniert das nicht. Daher nimmt man den Serial-Data Output vom einen und schließt ihn an den Datainput vom Anderen an. Also schiebt man einmal die 8 Bit komplett durch einen der beiden 4094 durch und diese kommen dann im Zweiten an. 2. Du hast an dem OE 12V angeschlossen. Das verträgt der Pin, sofern die Versorgungsspannung auch 12V ist. Im Datenblatt ist zusehen, dass bei einer Versorgungsspannung von 10V ein High Input mindestens 7V haben muss, bei 12V also noch etwas mehr. Dann müsstest du dein Clock und deine Datenleitung auf diese Spannung hochsetzen. Also bietet es sich an, den 5V Pegel vom µC zu behalten und daher auch 5V Vdd zu haben und somit auch OE auf 5V zu haben. Man könnte auch den bzw beide OE an einen Ausgang vom µC hängen und für die Dauer der Übertragung die Ausgänge abschalten, somit bekommen die Ausgänge garnicht mit, dass dort Daten durchgeschoben werden. 3. Du hast 5 Spalten von LEDs, aber hast davon nur 4 am Treiber ULN2003. Denke das ist einfach ein kleiner Flüchtigkeitsfehler Eideard Dogan schrieb: > Für als LEDs habe ich wieder das angegebene Matrix display genutzt und > mit den Daten gerechnet. R1...R7 sind 48 Ohm bei 2,2V und 20mA der LEDs. Du hast bei 5 LEDs 5*20mA=100mA Maximalstrom, nämlich wenn eine ganze Zeile komplett leuchten soll. Jetzt musst du gucken, wieviel an deinem Widerstand abfallen muss. Du hast 12V, es fallen ca 1,8V am UDN2981 ab (Siehe Datenblatt Vce(sat), also Sättigungsspannung am Transistor, der die Spannung an den Ausgang schaltet), dann 2,2V an der LED und noch 1,1V am ULN2003 (auch hier Vce(sat)). Das heißt, du hast 3 Bauteile wo insgesammt 5,1V abfallen. Das heißt im Umkehrschluss, du brauchst einen Widerstand, an dem 6,9V abfallen und 100mA fließen, Sprich U/I=69 Ohm. Jedoch: Die Leistung, die am Widerstand abfällt (und somit in Wärme -> unnötige/unerwünschte Energie umgewandelt wird), berechnet sich durch U * I, also 6,9V * 100mA = 690mW. Da du 8 Zeilen und somit 8 Widerstände hast, hast du insgesamt 5,52Watt, die du einfach in Wärme umwandelst. Würdest du einzelne Transistoren nehmen, die eine extra kleine Sättigungsspannung von z.B. 0,3V haben, dann hättest du 2,2V+0,3V+0,3V = 2,8V, die an den 3 Bauteilen abfallen. Somit könntest du die LED auch mit 5V betreiben und du kannst z.B. ein 5V-Trafo/Netzteil nehmen und gut. Sonst müsstest du ein 12V Netzteil nehmen und noch mit extra Bauteilen die 5V für den µC generieren (mehr Bauteile-> mehr kosten & mehr Platz) oder du müsstest aus 5V per Stepup-Converter deine 12V machen. Ganz abgesehen davon hättest du an dem Widerstand 2,2V abfall bei 100mA und somit 22 Ohm und eine Verlustleistung von 220mW pro Widerstand -> insgesammt 1,76Watt Wärmeenergie. Was du tust ist dir überlassen, es wäre aber ggf. sinnvoller solche Transistoren zu suchen und zu verwenden oder solche Treiber zu suchen, wie du sie gewählt hast, nur dass diese dann eine kleinere Uce(sat)-Spannung haben. Deine Vorteile wären halt eine Einheitliche Spannung und weniger Verlustleistung.
zu 1: ja, da habe ich mich auch versehen. CLK und STR sollten zusammen und die Datenleitung an den Jumper. Ich wollte also nur 4 Pins des µC verwenden. Mit STR sperre ich ja die ausgänge soweit ich es verstanden habe. mit CLK sage ich dem IC er soll Daten annehmen und mit D übergebe ich die Daten. Es war also so geplant, ich sperre beide, gebe die Daten an beide durch und gebe sie wieder frei. Aber wie gesagt, dies ist ein plan für später, habe da noch nicht viel weiter drüber nach gedacht. zu 3: jo, hab ich übersehen ^^ zu 4: da hast du recht, mit diesem Plan musste ich jedoch mit der Spannung höher gehen, da ich sonst meine gesamte Spannung verbraucht hätte ^^ Ich habe nur 5V (10A); 12V (1,5A) und eine Variable Spannungsquelle bis max 2A... bin ehrlich, hab kein Labornetzteil und war bisher zu geizig mir ein zu kaufen... daher habe ich ein altes PC-Netzteil zweckendfremdet... Ebenfalls musste ich bemerken, dass die UDN2981 irre teuer sind... also 1,50 für einen! Da kann ich besser mit Transistoren arbeiten. Aber bei 12V habe ich da wirklich viel Verlustleistung da hast du recht. Ich werde nun erst mal mit meinem µC rumspielen und rumprobieren. Habe mit den PICKit3 mit Board bestellt so dass ich da auch mit testen kann. Ich denke aber, dass ich mit meinen Bauteilen einiges erreichen kann. Und auch meine Matrix sollte funktionieren. Sonst ersetze ich den UDN2981 durch BC337 und belasse den ULN2003 auf der low-side... habe nun keinen Transistor der >500mA leisten kann. Nun gut, ich werde weiter machen. Sobald mein µC da ist werde ich anfangen und bestimmt wieder Fragen stellen! Ich bedanke mich auf jeden fall für eure tatkräftige Unterstützung und werde hier zwischendurch noch in das thread schauen. Also wenn noch jemand anregungen hat, einfach schreiben ich bin da und immer bereit was zu lernen ;)
Joa, der BC337 hat ein Uce(sat) von 0,7V. Alternativ der BC640 mit 0,5V Uce(sat). Aber was auch gut ginge wäre die MOSFET-"Version", die auch in dem Matrix-Artikel hier auf der Seite zusehen ist. Zugegebenermaßen ist der IRF7103/7104 bei Reichelt nur als SMD-Bauteil zu haben.
ja der BC640 ist mir auch schon in die augen gefallen... ich mein der hat auch 1A Maximalstrom. Aber da kümmer ich mich dann mal drum wenn ich ein Projekt starte und wirklich exakt auf jedes Detail eingehe wie z.B. energiesparend usw. Also meinen Wecker :D auf den freu ich mich schon... dann werd ich endlich mal richtig wach ;)
ah ich hab noch mal ne Frage ;) Wenn ich meinen PIC programmieren möchte, also den PIC18F442, dann wird mir das PICkit3 wohl kaum 12V liefern für den MCLR/VPP Pin. Also müsste ich den mit LVP Programmieren und den RB5(PIN 38) mit dem LVP PIN des PIC verbinden. Laut Datenblatt ist LVP bei dem PIC als Standard definiert und ich kann den Programmieren. Im Betrieb muss ich dann den RB5 auf masse ziehen. Ist das richtig? Da ich ICSP zunächst (wegen unwissenheit) nicht in meine Schaltung intigrieren möchte, wollte ich mir einen Sockel machen in den ich den DIL einsetzen kann... Hier wurde so etwas gemacht: http://www.jb-electronics.de/html/elektronik/digital/d_artikel06_pickit3_und_icsp.htm Geht dies auch mit dem PIC18F**2? Ebenfalls hat mein PIC VDD an PIN 11 und 32 VSS an PIN 12 und 32... wozu hat der je zwei?
Eideard Dogan schrieb: > Wenn ich meinen PIC programmieren möchte, also den PIC18F442, dann wird > mir das PICkit3 wohl kaum 12V liefern für den MCLR/VPP Pin. > Also müsste ich den mit LVP Programmieren und den RB5(PIN 38) mit dem > LVP PIN des PIC verbinden. Laut Datenblatt ist LVP bei dem PIC als > Standard definiert und ich kann den Programmieren. Im Betrieb muss ich > dann den RB5 auf masse ziehen. Ist das richtig? Bloß gut daß meine PIC18F2520/PIC16F876 noch nicht gemerkt haben daß RB5 nicht durchverbunden ist wenn ich laut Anleitung die Buchse anschließe. ;-) Gruß Anja
Eideard Dogan schrieb: > Wenn ich meinen PIC programmieren möchte, also den PIC18F442, dann wird > mir das PICkit3 wohl kaum 12V liefern für den MCLR/VPP Pin. Doch. Im PICKIT ist ein Stepupwandler, der aus der USB-Spannung die 12V macht. Deshalb deaktivier ich ansich auch immer das LVP. Eideard Dogan schrieb: > Also müsste ich den mit LVP Programmieren und den RB5(PIN 38) mit dem > LVP PIN des PIC verbinden. Was Anja auch schon mitteilen wollte, macht deine Aussage keinen Sinn ;) Ich denke du meinst "... mit dem LVP PIN des PICKITs verbinden.". Aber wie gesagt brauchst du das LVP nicht. Eideard Dogan schrieb: > Da ich ICSP zunächst (wegen unwissenheit) nicht in meine Schaltung > intigrieren möchte, wollte ich mir einen Sockel machen in den ich den > DIL einsetzen kann... Du MUSST den ICSP nicht dadrin haben. Nur kompliziert ist es nicht und es ist halt angenehmer eine 5polige Steckerleiste dazu zu packen. Belegung: 1: Vpp/MCLR 2: Vdd 3: GND 4: ICSP Data/RB7 5: ICSP Clock/RB6 Dir wird das stendige wechseln vom PIC aus der Schaltung in den Adapter irgendwann auf den nerv gehen. Also wenn das noch locker geht ist es bedeutend angenehmer mit soeiner Leiste. Die von dir gelinkte Seite, ganz unten der Adapter sollte ansich bei allen 18Poligen PICs gehen. Sicherheitshalber guckst du im Datenblatt nach der Belegung. Und wenn es nicht stimmt schließt du einfach die ICSP-Pins an die richtigen Pins des IC-Sockels an. Und das ist eben genau das selbe, wie wenn du es in der Schalung machst, nur dass halt keine andere Hardware da ist.
Michael Skropski schrieb: > Eideard Dogan schrieb: >> Also müsste ich den mit LVP Programmieren und den RB5(PIN 38) mit dem >> LVP PIN des PIC verbinden. :D Ja, ich meinte das PICKit ^^ Daher habe ich Anjas Meldung auch nicht verstanden :D sorry ^^ Michael Skropski schrieb: > Du MUSST den ICSP nicht dadrin haben. Nur kompliziert ist es nicht und > es ist halt angenehmer eine 5polige Steckerleiste dazu zu packen. Naja wenn der 12V liefert, kann man das machen, stimmt. Ich habe bisher immer nur Schaltungen gesehen die dann im Betrieb sind während man per ICSP den µC neu Flashed. So kann ich es dann ohne Betriebsspannung machen. Ok, da komm ich mit klar und weiß weiter. Danke dir. Was ist mit zwei VDD und VSS? Verstehe noch nicht wieso es zwei gibt^^
Eideard Dogan schrieb: > Naja wenn der 12V liefert, kann man das machen, stimmt. Ich habe bisher > immer nur Schaltungen gesehen die dann im Betrieb sind während man per > ICSP den µC neu Flashed. So kann ich es dann ohne Betriebsspannung > machen. Ok, da komm ich mit klar und weiß weiter. Danke dir. Man kann beim PICKIT einstellen, ob die Zielplatine die Spannung bringt oder ob diese Quasi ausgeschaltet ist. Jenachdem macht er dann nur die 12V oder eben 12V und 5V. Du musst, wenn du den ICSP benutzt aber drauf achten, was an dem RB6 und RB7 angeschlossen ist. Doch da gibts im Datenblatt auch Beispiele wie man es machen kann. Dennoch, wenn es mir nicht so richtig um den Platz geht, dann nehme ich lieber einen PIC, der ein paar Pins mehr hat und nehme RB6&7 dann ausschließlich für die ICSP-Schnittstelle. Wenn ich aber DIP haben will und die 36 IOs alle brauche, bleibt halt nichts anderes über, als den ICSP da irgendwo zwischen zu hängen. Dann sind das bei mir meist Tastereingänge oder irgendwas, was man abziehen kann (Stecker, Klemmen oder andere gesockelte ICs). Eideard Dogan schrieb: > Was ist mit zwei VDD und VSS? Verstehe noch nicht wieso es zwei gibt^^ Es gibt mehr oder weniger verbreitete Bezeichnungen. Vdd ist die digitale Versorgungsspannung. Vss ist Source bzw Masse/GND. Vpp ist die Programmierspannung, (Bei PICs) AVdd/AVss ist die Versorgungsspannung für die AD-Wandler. PICs haben auch noch Vref+ und Vref-, auch für ADCs oder Comparatoren. Es gibt auch noch mehr: http://de.wikipedia.org/wiki/Spannungsbezeichnung Aber die für den PIC wichtigen bezeichnungen stehen oben. Also bei dem ICSP ist es so: 1: Vpp -> ~12V 2: Vdd -> 5V 3: GND -> 0V 4: ICSP Data 5: ICSP Clock Wenn du sagst, die Platine hat ne Spannung, dann wird meines wissens der Pin2 im PICKIT hochohmig, d.h. er braucht keine 5V liefern. Wenn nicht, bekommt die Schaltung durch pin2 vom PICKIT die 5V Versorgungsspannung
hi, da bin ich noch mal. So mein PicKit ist da und das Testboard auch. Habe auch gleich angefangen rumzuspieln und bin echt begeistert. Zunächst funktionierte nichts. Der ließ sich nicht Programmieren... woran es lag weiß ich nicht, denke die Treiber waren nicht richtig installiert... unter Linux läuft es nun... Habe meine ersten LED muster Programmiert und dem Taster eine Funktion gegeben. So ganz erschließt sich mir der ADC und die Interrupts noch nicht (ich weiß was ein Interrupt ist nur wie er hier gemacht wird usw.)... das schaff ich aber noch ;) zwischen VDD und GND befinden sich bei dem PIC18F45K20 zwei Bauteile. Da es SMD ist, kann ich es nicht ganz entziffern sieht aber nach Kondensatoren aus... habe das bisher noch nirgends gesehen und wollte fragen ob ich für spätere Schaltungen da was beachten muss... spricht kann ich die weg lassen? Was sind das für welche usw. Ich danke euch echt für eure ganzen Tips, Tricks und die Unterstützung! So, werde erst mal noch ein bissel rumspielen ;)
Eideard Dogan schrieb: > zwischen VDD und GND befinden sich bei dem PIC18F45K20 zwei Bauteile. Da > es SMD ist, kann ich es nicht ganz entziffern sieht aber nach > Kondensatoren aus... habe das bisher noch nirgends gesehen und wollte > fragen ob ich für spätere Schaltungen da was beachten muss... spricht > kann ich die weg lassen? Was sind das für welche usw. Seite 73: http://ww1.microchip.com/downloads/en/DeviceDoc/41370C.pdf: C1 und C2? Erklärung z. B.: http://www.rn-wissen.de/index.php/Abblockkondensator
Ach, ok. Danke dir. Habe daraufhin nun auf mal meine Schaltung aufgebaut... siehe Anhänge... JEDOCH... es klappt nicht ^^ Ich denke nicht dass es am PIC oder der Achaltung liegt, sondern eher am Programm MPLAB X. Mit dem Testboard hatte ich das gleiche Problem zu anfang... Ich stecke den Programmer auf, will mein Programm hochladen bzw. Flashen und es passiert nichts außer dass er den Compiler startet... Wenn ich den PIC explizit abfrage, erhalte ich die Wert und der PIC wird erkannt! Ich kann auch das Programm des PICs runterladen... jedoch Flashen is nicht... Zuvor habe ich den PIC18F45K20 des Testboards bearbeitet und bin die Lessions aus dem Userguide durchgegangen. Echt Klasse gemacht und gut beschrieben finde ich... Dann habe ich das PICKIT 3 umgestellt auf 5V und den PIC18F442 ausgewählt... nun geht wieder nix... ich Klick auf Programmieren und er startet den Compiler, Compiliert mein Programm und schickt es nicht rüber... Vielleicht weiß ja jemand warum... Danke euch noch mal!
Eideard Dogan schrieb: > Vielleicht weiß ja jemand warum... Danke euch noch mal! Dumme Frage, ich weiß, aber.. kommen irgendwelche Fehlermeldungen? ^^ Welche 2 Eigenarten ich mal hatte: - Das PICKIT3 hatte ich immer am FrontUSB vom PC hängen. Dann konnte ich damit ca 2 Minuten arbeiten und danach hat er sich aufgehangen bzw war nicht mehr ansprechbar. Dann hab ich ihn mal in einen Heck-USB bzw USB-Buchse einer PCI-Erweiterungskarte gesteckt und siehe da, funktioniert immer. - Zum Anfang hatte ich mal Probleme beim beschreiben. Man muss den PIC vor dem Beschreiben erstmal Löschen! Also Löschen, dann wird geprüft, ob der Flash leer ist und danach kann man dann Programmieren. Manchmal kann man auch einstellen, dass er vor jedem Programmieren automatisch löschen soll. Guck mal ob davor irgendwas zutrifft.
Michael Skropski schrieb: > Dumme Frage, ich weiß, aber.. kommen irgendwelche Fehlermeldungen? ^^ Nee, leider. :( die hätte euch auch mitgeteilt ;) Aber hier mal alle ausgaben: > ***************************************************** > Connecting to MPLAB PICkit 3... > Firmware Suite Version.....01.26.92 > Firmware type..............PIC18F > Target detected > Device ID Revision = 7 Und vom Compiler: > make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf> > make[1]: Entering directory `E:/My Data/Windows/MPLABXProjects/My first > board.X' > make -f nbproject/Makefile-default.mk dist/default/my_first_board.x.lib > make[2]: Entering directory `E:/My Data/Windows/MPLABXProjects/My first > board.X' > make[2]: `dist/default/my_first_board.x.lib' is up to date. > make[2]: Leaving directory `E:/My Data/Windows/MPLABXProjects/My first > board.X' > make[1]: Leaving directory `E:/My Data/Windows/MPLABXProjects/My first > board.X' > BUILD SUCCESSFUL (total time: 361ms) hmm... Normal springt er nach dem Compiler automatisch zum PikKit und fängt an den zu programmieren... aber dies mal... compilieren ende... wie gesagt ich hatte es schon mal... aber da war es auf ein mal weg und ich hab mir nichts mehr bei gedacht... USB Ports habe ich auch schon gewechselt... jedoch hängt der normal an einem usbswitch mit externer Stromversorgung welche aktiv bleibt wenn der Rechner aus ist... so dass nichts passieren kann (weiß nicht was aber bin ja auch noch anfänger und wills nicht kaputt machen ;) ) Michael Skropski schrieb: > Zum Anfang hatte ich mal Probleme beim beschreiben. Man muss den PIC > vor dem Beschreiben erstmal Löschen! Also Löschen, dann wird geprüft, ob > der Flash leer ist und danach kann man dann Programmieren. Manchmal kann > man auch einstellen, dass er vor jedem Programmieren automatisch löschen > soll. Hmm interessant... ich weiß nur nicht wo das im MPLAB X zu finden ist... hab mich schon weggegoogelt... das einzige ist "Erase bevor programming" das ist aktiv!
Ich habe das Problem gefunden... denke ich... mit dem PIC18F45K20 vom Demoboard habe ich ein "Library Projekt" gestartet. Das Funktionierte auch... aber nun habe ich einfach mal ein "Stand alone" für den PIC18F442 gestartet und... siehe da, es funktioniert... Also sollte jemand das gleiche oder ähnliche Problem haben... einfach mal ein neues Projekt starten... ;)
Hi, Ich bin ein Anfänger im programmieren mit dem PICKIT3 von MPlab (Software MPLAB IDE v8.60). Habe ein Assemblerprogramm eines PIC16F88 und wollte es auf einen PIC16F73 anwenden/umschreiben. Das ist von einem Uhrenprojekt, das ich um ein Funk-Schalt-Set (433 MHz) von CONRAD erweitern wollte, deshalb der PIC16F73 mit mehr I/O’s. Ich habe es mit „Projekt einfügen“ und „Importieren“ versucht, nur hat es nicht geklappt. Kann mir da einer helfen (Schrittreinfolge) und welche Dateien dabei sein müssen. Vielleicht fehlt mir einfach ne Datei. Ich weiß, bestimmt wieder so ne Fragen. Wäre super wenn Ihr mir helfen könntet. Danke euch im Voraus!
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.