PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erster Schritt Richtung Digitaltechnik, analoges Signal digital steuern



Cysign
08.02.2012, 05:46
Hallo,

nachdem ich nun langsam ein wenig Ahnung davon habe, was ich mit meinem Lötkolben und einfachen, analogen bauteilen anstellen kann, möchte ich mich in nächster Zeit an mein erstes Projekt mit einem µC ranwagen.

Hierbei möchte ich ein Overdrive-E-Gitarren-Pedal modifizieren nach den bekannten Mods (Diezel-Mod, Boogie-Mod, Keeley-Mod eines Boss MT-2, Infos zu den Mods: http://freestompboxes.org/viewtopic.php?f=11&t=3130 ).

Je nach Mod werden Kondensatoren nicht beschaltet oder durch andere ersetzt, bzw. Dioden gegen Leuchtdioden getauscht oder Kondensatoren mit anderen Werten eingesetzt.

Ich möchte mir wirklich Mühe geben und meine Modifikation so klein wie möglich aufbauen, damit das Endergebnis weiterhin im Originalgehäuse platz findet. Ob das jedoch wirklich realisierbar ist, werd ich mir erst vorstellen können, wenn ich wieß, mit welchen Bauteilen ich hantieren muss und wie groß diese sind.

Zunächst werde ich mir eine Tabelle mit den Änderungen im jeweiligen Modifikationsmodus erstellen, um selber einen Überblick zu haben, wie viele Elemente ich schalten muss und um herauszufinden, wie viele I/Os ich benötige.


Die verschiedenen Mods aus dem oberen link möchte ich gerne per Drehregler digital aufrufen können.
Bzgl. der ergrößerung bzw. Verkleinerung der Widerstände für die Verzerrstufen dachte ich an Taster und eine Signalisierung durch mehrere SMD-LEDs.


Aber vorher habe ich eine Verständnisfrage:
Wie schalte ich mit einem µC z.B. C34 von normalen Kondensator auf einen anderen kondensator?
Da das Signal selbst ein Audiosignal ist, also eine Wechselspannung, scheidet eine Lösung alla &-Gatter vermutlich aus. Würde man sowas über Relais schalten?

Quasi das Signal, das zum kondensator 34 geleitet wird an zwei Relais anlöten und mit dem µC quasi einen Schaltimpuls ausgeben, ob und welcher Kondensator geschaltet wird?
So bräuchte ich für jedes zu verändernde Signal die Anzahl an möglichen Schaltwegen als Relais und müsste diese per µC ansteuern.

Außerdem wüsste ich gerne, welcher µC-Programmer sich für Einsteiger lohnt. Am liebsten wäre mit der Anschluß über USB und die Programmierung unter Windows 7, falls möglich mit 32bit als auch mit 64bit, so könnte ich sowohl Netbook als auch PC dazu missbrauchen ;)
Gibts denn obgleich der verschiedenen Atmel-Chips einen universellen Programmer, mit dem ich alle/die meißten µC programmieren kann?

Gerne dürft ihr mich auch erstmal einfach mit Links zuschmeißen, denn mein Anliegen erfordert einiges an Wissen, das ich noch nicht habe...

ranke
08.02.2012, 06:57
Zum Schalten von analogen Signalen mit einem MC sind Relais (oder Reed-Relais) keine schlechte Wahl. Alternativ gibt es auch elektronische Analogschalter, wie z.B. den Klassiker CD4066 (http://www.ti.com/product/cd4066b). Die elektronischen Schalter haben keine galvanische Trennung, also müssen die Potentiale des MC und der Audioschaltung geeignet zueinander definiert werden. Außerdem sind die EIN-Widerstände typischerweise höher als bei Relaiskontakten. Dafür bauen sie kompakter (im verlinkten IC sind 4 unabhängige Schalter drin), haben kein Kontaktprellen, unbegrenzte Lebensdauer, nahezu leistungslose Ansteuerung, etc. Sicherlich eine Alternative zu Relais für Audiosignale geringer Leistung.

Cysign
08.02.2012, 07:30
Schöne Sache, direkt n Bausteinbeispiel, wo ich das Datenblatt verschlingen kann ;)

Muss ich denn dem µC denn nen Speicher verpassen, damit er sich merkt, welcher Modus aktiv war, als die Spannung getrennt wurde und wie die Werte für die Widerstände stehen?
Bzgl. dem Verändern der Widerstände auf Knopfdruck hab ich noch keine genaue Vorstellung.
Theoretisch könnte man das aber auch mit den elektrischen Schaltern lösen.

Wenn man das Signal quasi multiplext (wenn ich das richtig verstanden habe...), kann ich mit wesentlich weniger Ausgängen am µC auskommen, was weniger Fehleranfälligkeit und einfachere Programmierung bedeutet...seh ich das richtig?

Cysign
08.02.2012, 07:38
Wobei...mit den e-Schaltern erübrigt sich quasi der µC. Wenn ich nen Drehschalter mit 3 Stellungen finde, wäre das einfacher umzusetzen als mit nem µC.
Und die Widerstände wären dann ebenfalls Potis.
Hmmm...n µC macht hier noch nicht wirklich Sinn, oder?

Aber andererseits wär das sicherlich ein schönes Projekt für den Einstieg.

ePyx
08.02.2012, 07:40
Wenn es sich nur um wenige Daten handelt, kannst du das interne EEPROM nutzen. Allerdings ist das bzgl. Schreibzyklen begrenzt. Was noch gehen würde, also an Analogschaltern wäre der CD4052.

Multiplext passt schon. Ein Multiplexer ist ja auch nichts anderes als ein Schalter. Ob es unanfälliger gegenüber Fehlern ist, liegt am Aufbau.

Cysign
08.02.2012, 07:43
Nur bzgl. Schreib- oder auch bzgl. Lesezyklen? In welcher Größenordnung läge das denn so etwa?
Ich denke, wenn ich irgendwann mal meine Lieblingseinstellung gefunden habe, werd ich da eher selten mal was verstellen. Also mit wenigen tausend Schreibzyklen sollte ich dicke auskommen.

ePyx
08.02.2012, 07:44
Wobei...mit den e-Schaltern erübrigt sich quasi der µC. Wenn ich nen Drehschalter mit 3 Stellungen finde, wäre das einfacher umzusetzen als mit nem µC.
Und die Widerstände wären dann ebenfalls Potis.
Hmmm...n µC macht hier noch nicht wirklich Sinn, oder?

Aber andererseits wär das sicherlich ein schönes Projekt für den Einstieg.


Kann man machen, kommt ja drauf an, was du bauen willst. Analog hat den Vorteil das du den Overhead für die Digitaltechnik nicht benötigst und auch weniger Probleme umschiffen musst. (galvanische Trennung, HF-Einstreuungen durch Takt Leitungen etc. )

Digital kann man sowas aufbauen, was sicherlich den ein oder anderen Vorteil hinsichtlich Komfort bringt ( uC kann man auch via PC steuern, Speichern des letzten Modus und der Parameter ).

Aber wie gesagt, dass liegt ja nur an dir.

EDIT: 100.000 Schreibzyklen laut Datenblatt (ATTiny2313)

Cysign
08.02.2012, 07:58
Mit 100000 sollte ich locker hinkommen. Ne Steuerung/auslesen via PC ist nicht nötig.
Da ich immer schonmal was mit nem µC machen wollte, dachte ich halt, dass das heir ein nettes Einstiegsprojekt sei.
Die galvanische Trennung könnte ich durch Optokoppler machen, aber die Störeinstrahlung bringt mich grade ein wenig ins Stutzen. Also müsste ich den µC nochmal im Gehäuse abschirmen?

Im Endeffekt muss der µC ja nur Ausgeben Modus 1-4 und welchen Wert die beiden Widerstände haben.
Letztere könnte ich beim Umbau dann ja erstmal mit analogen Potis in einem sinnvollen Rahen festlegen und dann in eine sinnvolle Aufteilung gliedern.

Der µC gäbe dann quasi pro Drehrastung oder Knopfdruck beim Modi nur an 0, 1, 2, 3 was ich direkt an die eSchalter weiterleiten könnte, um die entsprechenden Komponenten freizugeben. Dazu wird mit dem Signal gleichzeitig ne RGB-Led angesteuert, die signalisiert, in welchem modus man sich grade befindet (oder drei low-current LEDs....mal schaun).

I zweiten Schritt werden dann die Werte für die beiden Widerstände ausgelesen und geschaltet. Aber ich denke, das nehme ich erst in Angriff, wenn die Modiwahl funktioniert.

Ich weiß nur noch nicht genau, wie ich die Rs über den µC steuern könnte. Eine Verkettung von Widerständen, einzeln geschaltet durch I/Os der µC wäre zwar machbar...aber eigentlich zu aufwändig, da man dafür enorm viele Pins bräuchte.

ePyx
08.02.2012, 08:05
Die Einstreuung hast du nur, wenn du Taktleitungen im Analogteil unterbringst. Deshalb trennt man auch oft Digital- und Analogteil auf Platinen.

Das Schalten von Widerständen wird meist per OPV gemacht, wo dann die virtuelle Masse durch einen Spannungsteiler verschoben wird. Gleiches erreicht man auch bei der nutzung eines DACs mit nachgeschaltetem Impedanzwandler. Bei kleinen Strömen gehen auch Digital-Potentiometer, wo man aber aufpassen muss ob die als Switched-Capacitor aufgebaut sind. Man will ja das Signal nicht ungewollt filtern.

Cysign
08.02.2012, 08:23
Wie verschiebt man dann die virtuelle Masse? Quasi durch nen Spannungsangleich an den Spannungsreglern? Aber dazu bräuchte ich doch wieder (digitale) Potis?!
Ich glaub, ich zieh mir jetzt erstmal den Wikipediaartikel zu digitalen Potis rein :)

ePyx
08.02.2012, 08:55
Nein brauchst du nicht. Ein OPV ist ein Differenzverstärker und versucht die Differenz an seinen Eingängen (nichtinvertierend und invertierend) zu Null zu regeln. Also vergleicht er beide Pegel und führt den Ausgang nach.

Was mir aber gerade auffällt ist, dass das an deinem eigentlichen Problem vorbei geht. Für die Auswahl des Modus, reicht ein Analogmultiplexer wenn man Lautstärke etc. steuern will dann über einen PGA ( multiplizierende OPV umd die Verstärkung zu variieren, halt das obige angesprochene Verfahren ).

Wenn du Signale digital umschalten willst, empfiehlt sich die Verwendung von Optokoppler und eine Trennung der Bezugsmassen.

Cysign
08.02.2012, 19:35
Trennung der Bezugsmassen?
Puh. Also ich bekomm in dem Bodentreter ne 9V-Gleichstromversorgung von außen (über n Netzteil).
Ich vermute mal, dass das Gerät an sich schon Kondensatoren beinhaltet, um die Spannung zu filtern.
Also müsste es vermutlich reichen, wenn ich den von mir benötigten Schaltstrom ebenfalls am 9V-Eingang abgreife und ggf. - falls ich keine Spannungsregler und damit eh Kondensatoren als Buffer nutzen muss - mit Kondensatoren einen Buffer herstelle.

Aber bzgl. der digitalen Potentiometer bin ich noch nicht wirklich sehr schlau geworden. Ich finde dazu einfach keine gute Lesequelle.

//Edit:
Bzgl. digitalem Poti:
www.intersil.com/data/fn/fn8222.pdf

Bzgl. Schaltungsaufbau damit:
http://www.google.de/url?sa=t&rct=j&q=digitales%20potentiometer&source=web&cd=8&ved=0CIUBEBYwBw&url=http%3A%2F%2Fwww.elv-downloads.de%2Fservice%2Fmanuals%2FDP1%2FDP1_KM.pd f&ei=6s0yT_yuCazZ4QSt18GlBQ&usg=AFQjCNEGpuVtMFvjWF1wEk-lIzqmevUe8A&sig2=u8Dre2bN39OWBSFHadRmDw&cad=rja

ePyx
08.02.2012, 20:00
Bezugsmassen trennen = Potentialfrei = Galvanisch trennen.

Digipotis sind so oder so die schlechtere Wahl, da als geschaltete Kapazität aufgebaut ( http://en.wikipedia.org/wiki/Switched_capacitor ). Daher lieber OPV als Multiplizierer benutzen (http://de.wikipedia.org/wiki/Analogmultiplizierer) oder einen DAC mit nachgeschaltetem Impedanzwandler und Tiefpass.

Asko
08.02.2012, 20:31
Hallo Cysign

Hast Du eigentlich dort einen symmetrischen Ausgang dranne ?? (XLR-Stecker ??)
Oder wird das Signal unsymmetrisch ausgegeben.
Bei Unsymmetrisch kanns arge probleme mit der Schirmung der Fremdspannungen geben. Gerade im Buehnenbereich.
Dann ist die Frage, die Kondensatoren und Widerstaende, werden die einfach gegen Masse geschaltet ?
Wenn ja, dann waere das einfach. Ich dachte auch sofort an den 4066, den habe ich bereits mehrfach
erfolgreich bei aehnlichen Sachen eingesetzt. Man muss nicht mal unbedingt eine symmetrische Betriebsspannung haben.
Fuer Deinen Anwendungsbereich, wuerde ich entweder "back to the roots" fuer einen Normalen "Schalter" plaedieren, oder
da Du ja was mit µC machen willst, die Sache mit den Optokopplern nicht aus dem Gedaechtnis verlieren.
Uebrigens spielte bei mir ein 4066 als Eingangswahlschalter im HiFi-Bereich zur vollsten zufriedenheit.
Und das< war keine Erfindung von mir, das war Kommerziell geloest. (Tape-Deck V770 von Teac.)
...und das ist keine Billigware....

Gruss Asko.

Cysign
08.02.2012, 21:14
Ne, einzelne Gitarrenbodentreter sind in der Regel unsymmetrisch. Symmetrische Ausgänge hat man eher bei großen Modelern, wie den Boss-Geräten oder den besseren Digitech...

Hmmm...also mit den E-Schaltern und einem 3-Fach Umschalter wäre das Ganze auch recht einfach zu lösen. Vielleicht sollte ich wirklich sowas in Angriff nehmen und bzgl. µC ein anderes, einfachers Projekt ins Auge fassen.
Is ja nicht eilig, ich werd mich auf jeden Fall noch was einlesen und dann entscheiden.

Aber wie siehts denn derzeit mit USB-Programmern für Win7 64/32 bit, Ubuntu 64bit/32bit aus?
Auf was sollte ich in der Richtung achten? Oder tuns da die einfachen für 15€ im USB-Stick-Format aus China?

ePyx
08.02.2012, 21:20
Atmel AVRISP mk2 (http://www.atmel.com/tools/AVRISPMKII.aspx) kostet rund 30-40 € und du wirst damit keine Probleme haben. Weder unter Linux noch unter Windows. Der China-Kram funktioniert eventuell, aber auf lange Sicht hast du mit dem Orginalgerät weniger Nerven/Haare gelassen.

EDIT:

Wenn du Student bist oder einen Studenten kennst, kriegst du den mk2 für 23 €.

http://student.embedded-projects.net/index.php?module=artikel&action=artikel&id=367

Cysign
08.02.2012, 21:56
Und damit kann ich dann quasi unter 32bit/64bit arbeiten und alle Chips programmieren? Oder gibts da Einschränkungen?
Was brauch ich denn sonst noch, um damit zu starten?
Klar, ne Platine, wo ich ne IC-Fassung auflöte, an die ich das Teil anschließen kann...

Hier gibts doch bestimmt irgendwo nen Beitrag mir einfachen Testschaltungen um die erste Schritte zu machen, oder?
Und welche Chips eignen sich denn da am Anfang am besten?
Oder spielt das keine Rolle und ich kann queerfeldein einen günstigen aussuchen?

ePyx
08.02.2012, 22:05
Jap 32/64-Bit ist kein Problem und du kannst alle Atmel-Controller programmieren, die ISP oder PDI als Schnittstelle habe. Die neueren Typen die Debug-Wire unterstützen, kannst du sogar On-Chip debuggen.

Gängige Controller sind Atmega8, Atmega48/88/168/328 wenn man in C programmieren möchte. Für Assembler langt ein ATTiny2313. Für die einfachste Schaltung brauchst du einen 10kOhm Widerstand, einen 100nF Kondensator und natürlich einen uC. Welcher ist letzendlich egal. Früher oder später wirst du eh merken, dass zwar Vieles ähnlich aber eigentlich alles anders ist. :)

Sprich Register heißen anders etc., also kommt man nicht um das Datenblatt wälzen. Und wenn gar nichts geht, dann kannst du ja hier im Forum fragen. ;)

Aber dazu gibt es eine recht gute Wiki-Seite (http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht).

Asko
08.02.2012, 22:07
Hi Cysign

Wie viele Ports Du brauchst, richtet sich ja 100% an die menge Deiner Filter die Du stellen willst.
Aber selbst, wenn die Ports nicht reichen koenntest Du ja mit ´nem 4051 oder so die Ports erweitern.
Wenn ich das richtig gelesen habe, stellst Du max vier verschiedene Moeglichkeiten.
selbst mit 5 Ports, kannste dann 2 x 4 verschiedene Sachen steuern.
Ich hab mir das auch nochmal ueberlegt. Auch ist wirklich die sache mit den DIL-Relais oder ebend Reed-Relais nicht aus
der Flucht zu schlagen, sofern sich die sache auf ueberschaubare schaltbeispiele begrenzt.
schreib doch mal, wie, und wie viele Filter Du umschalten musst/willst. ?
Hast Du von den vorhandenen Pedal einen Schaltplan ?

Gruss Asko.

Cysign
08.02.2012, 22:12
Das klingt super, dann werd ich mich mal zu den µCs ein wenig einlesen und meinen Kontostand prüfen.....vllt. ist ja in den nächsten Tagen so ein Programmer in der Post ;)

Cysign
09.02.2012, 03:31
Oooooooookay, Programmer geordert
Aber mit der Bestellung von Chips und Kleinteilen warte ich noch, bis ich genau weiß, was ich alles brauche

//Edit: Hier mal die Aufstellung, was verändert werden soll.

Ich denke, dass ich die Modi-Änderungen mit dem µC verwirklichen werde und die Widerstandsänderungen mit nem herkömmlichen Poti, das wird am praktikabelsten sein, zumal ich ja auch nicht unbegrenzt Platz habe.

21452

//Edit 2:
Wens interessiert, auf Youtube gibts Vergleichsvideos, wie sich die Mods auf den Klang auswirken:

Stock vs. Boogie/Bogner-Mod
http://www.youtube.com/watch?v=yany7LN_kjA&feature=related

Stock vs. Diezel-Mod:
http://www.youtube.com/watch?v=sIlb7Vq4qa0&feature=related

Cysign
10.02.2012, 23:38
Wenn du Student bist oder einen Studenten kennst, kriegst du den mk2 für 23 €.
http://student.embedded-projects.net/index.php?module=artikel&action=artikel&id=367

Hast du ne Ahnung, wie lange die zum Bearbeoten brauchen? Ich hab da vorgestern nen Scan von Perso und Studentenausweis hingemailt...und bisher nichts von denen gehört...

ePyx
10.02.2012, 23:44
Nee, leider nicht. Hab aber bisher auch nichts Negatives über den Shop gehört.

Cysign
11.02.2012, 00:25
Na wer weiß, vllt. sind da grade viele im Urlaub, eingeschneit oder krank ;)
Is ja auch nicht so eilig. Wär halt nur praktisch gewesen, den Programmer bald zu haben, da ich eh noch eTechnik und C-Programmierung für meine Klausuren lernen muss ;)

ePyx
11.02.2012, 07:28
Kenn ich, dann wird man schnell ungeduldig. Nennt man Vorfreude ;). Ein wenig rumprobieren kannst du ja mit dem Simulator aus AVRStudio oder wenn du Linux dauerhaft einsetzt mit simavr. Ob Pins gesetzt wurde etc, kann man da auch sehen.

Torrentula
11.02.2012, 09:52
einzeln geschaltet durch I/Os der µC wäre zwar machbar...aber eigentlich zu aufwändig, da man dafür enorm viele Pins bräuchte.

Oder per Portexpander und einem R2R-DAC. Mit einem DAC, z.B. über I²C ansteuerbar, wie es ePyx vorgeschlagen hat ists dann eben noch eleganter.

MfG

EDIT: Oh da war ich aber mal viel zu langsam, sorry!

Cysign
12.02.2012, 06:42
Puh, die letzten zwei Tage waren echt fies...so mit Husten, Fieber, etc. :(
Hab mich grad n bisschen weiter eingelesen und da kam immer wieder die RS232-Schnittstelle/Kabel zum Gespräch.
Also der Programmer verbindet sich via ISP. Aber für Ausgaben vom µC brauch ich dann ne RS232-Lösung, um die am Rechner auswerten zu können? Oder kann das der MKII schon von Hus aus? Fand die Herstellerseite da nicht so aufschlußreich diesbezüglich...
Falls ich denn ne einzelne RS232-Lösung brauche, gibts da auch ne gute USB-Lösung, die wieder möglichse Win&Lin 32&64bit kompatibel ist?
Ich hab da bisher dieses hier gefunden: http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=250

ePyx
12.02.2012, 11:28
Erst einmal gute Besserung.

Nee da ist kein RS232 Wandler drauf. Ist ein reiner USB-Programmierer. Der http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=250 schaut recht brauchbar aus. Aber abgesehen davon, sollten alle funktionieren.

Cysign
13.02.2012, 00:25
Okay, bis auf die System-Unterstützung für "Windows Vista x65" sieht das China-Produkt hier eigentlich auch interessant aus:

PC USB auf RS232/RS485/TTL-UART Konverter-Adapter NEU
http://www.ebay.de/itm/PC-USB-RS232-RS485-TTL-UART-Konverter-Adapter-NEU-/250881728569?pt=DE_Technik_Computerzubeh%C3%B6r_Ka bel_Adapter&hash=item3a69b76039

Vorteil wäre die zusätzliche RS454-Schnittstelle. Könnte die evtl. bei späteren Projekten Sinn machen?

ePyx
13.02.2012, 05:32
Wenn du das für spätere Sachen benötigst, musst du dir eh eine passende Elektronik schustern. Zum Anfang, bzw. generell, lieber Dinge benutzen wo du dir 100%ig sicher bist das sie funktionieren und ruhig mal ein wenig mehr ausgeben. Deine Nerven danken dir das ungemein. Ich kann da selbst aus Erfahrung sprechen, dass es nicht unbedingt hilfreich ist wenn man mehrere potentielle Fehlerquellen hat die man nicht wirklich überprüfen kann (kein Oszi oder Logikanalysator etc. )

Ansonsten git es zum mk2 noch zu sagen, dass der VTarget-Pin keine Spannung erzeugt, sondern nur die Versorgungsspannung der Zielschaltung misst. Wenn du es dir zutraust, kann man ihn aber wie folgt modifizieren.


http://www.youtube.com/watch?v=ICQXqVy3Hpc

Cysign
13.02.2012, 06:09
Das is ja mal n praktischer Mod. Schalter, Widerstände und Kondensatoren dafür hab ich sogar hier ;)
Ich denke, das werd ich in Angriff nehmen. Erspart ne Menge Nerverei, wenn man dann mal was neues aufbauen will und keine Lust hat, mit Spannungsreglern und Akkus oder nem Labornetzteil (was ich eh noch nicht habs) rumzuhantieren. Danke für denk Link.
Ich werd nacher erstmal bei der Firma anrufen und nachfragen, ob meine Bestellung evtl. im Spam gelandet ist...

Cysign
13.02.2012, 11:51
Ah, grade Antwort von embedded-projects.net bekommen. Sobald die den Programmer (der laut Webseite ab Lager verfügbar war und ist) wieder auf Lager haben, bekomm ich meine Zahlungsinformationen und kann quasi endlich zahlen und auf die Lieferung warten. Bisschen trantütig...aber naja, ich bin jung, ich kann warten ;)

ePyx
13.02.2012, 12:27
Besser als Geld schon weg und Rennereien wegen zurückholen usw.. Haste noch etwas Zeit dich einzulesen, was nie verkehrt ist.

Cysign
14.02.2012, 05:38
Das war wohl nur ne System-Mail. Als ich die darauf hingewiesen habe, adss er im Shop noch als lagernd da steht, wurde mir gesagt, dass sie ihn noch da haben und ich im Laufe des Tages ne Mail mit den Zahlungsinformationen bekomme. Die ist dann gestern Abend um 23h auch endlich angekommen, was ich grade gesehn und direkt gezahlt habe.
Kann also bald losgehn :)

Cysign
15.02.2012, 18:18
So, Programmer ist heute angekommen. Treiber muss man manuell nach der AVR-Studio-Installation aus dessen Ordner installieren. Aber dann scheint er unter Win7 64bit keine Probleme zu haben.
Aber da ich noch keineµCs habe, kann ich das noch nicht genau sagen ;)
Ma schaun, ob ich meine ersten µCs heute noch bestelle^^

ePyx
15.02.2012, 18:22
Treiber muss man manuell nach der AVR-Studio-Installation aus dessen Ordner installieren.

Welche Version von AVRStudio ? Normalerweise wird der Treiber bei der Installation von AVRStudio gleich mit installiert. Irgendwas mit Jungo, glaube ich. Hab aber momentan keine Lust rüberzugehen und mein STK anzuschmeissen.

Cysign
15.02.2012, 18:26
Ich hatte den Programmer _vor_ der Installation angeschlossen, da ich sehen wollte, obs native Win-Treiber gibt. Vermutlich musste ich ihn deshalb manuell installieren.
AVR Studio 4.19 - neuste Version von der Webseite. Mitgeliefert wurde irgend ne CD von 2010...das kann nicht gut sein :D

Cysign
08.05.2012, 22:03
So, ich hab endlich mal Zeit gefunden, den ATTiny 2313, die 4066er und nen USB-to-RS232-Platinchen zu bestellen. Bei robotikhardware.de müsste ich 5€ Mindermengenzuschlag zahlen bei einer Bestellung unter 25€. Daher versuch ichs erstmal mit dem günstigen hier, vielleicht reicht er ja für meine ersten Gehversuche: http://www.ebay.de/itm/140631736808?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649

Cysign
31.05.2012, 22:03
Also das RS232-USB-Ding ist inzwischen angekommen, genau wie die ATTiny2313, aber die 4066er lassen noch auf sich warten. Ich hoffe mal, dass ich nächste Woche loslegen kann.
Da ich jetzt noch endlich mal n bisschen Kleinkram bei pollin.de bestellen will, frag ich mich, was ich da sinnvollerweise noch gleich mitbestellen sollte.
So Buchsenleisten und Steckerleisten um den Kram zu verbinden auf jeden Fall. Vielleicht noch n paar Optokoppler, aber auch Kondensatoren, bei denen ich allerdings nicht weiß, in welcher Größenordnung sie sein sollten (also außer die, die für meine Schaltung nötig sind...).
Es wurde anfangs mal die Potentialtrennung angesprochen.
Da ich immer noch nicht weiß, wie ich das anstellen soll, und in meinem Kopf nichts dagegen spricht, die µC-Schaltung parallel zum eigentlichen Effektgerät an die DC-9V-Inputbuchse/Den Akku zu hängen...wärs schön, wenn mir jemand hierzu n paar Informationsfetzen an den Schädel schmeißt ;)

Cysign
26.06.2012, 19:39
So, inzwischen sind die Teile da. Ende der Woche sollte mein Labornetteil kommen... und ich les mich grde n bisschen in die Materie ein.
Laut dem AVR-Tutorial hier kann an den AtMega32 ja mit nem Programmer, Wiederstand, Spannungsquelle und Kondensatoren in ner einfachen Grundschaltung aufbauen, programmieren und mit ner LED testen. Kann ich analog dazu mit dem ATTiny2313 vorgehen? Also die selben Pins (natürlich unterBerücksichtigung der Belegung)

021aet04
27.06.2012, 08:54
Die AVR sind alle gleich aufgebaut. Du kannst die gleichen Bezeichnungen verwenden. Bei den SPI Anschlüssen habe ich schon einige kleine Differenzen festgestellt aber das wirst du schon herausfinden. Die Resetschaltung (Widerstand auf VCC und Kondensator auf GND) ist immer gleich. Versorgung bleibt auch immer gleich (100nF Kondensator nicht vergessen).

MfG Hannes

Kampi
27.06.2012, 09:26
Die AVR sind alle gleich aufgebaut. Du kannst die gleichen Bezeichnungen verwenden. Bei den SPI Anschlüssen habe ich schon einige kleine Differenzen festgestellt aber das wirst du schon herausfinden. Die Resetschaltung (Widerstand auf VCC und Kondensator auf GND) ist immer gleich. Versorgung bleibt auch immer gleich (100nF Kondensator nicht vergessen).

MfG Hannes

Der Kern der AVRs ist bei allen identisch (sprich vom kleinen Tiny bis hin zum großen Mega).
Das einzigste worin die sich unterscheiden ist die Peripherie und (natürlich) die Pinbelegung.
Natürlich musst du auch gucken, dass du einen Chip nimmst mit ISP sonst kannste den nicht programmieren. Aber ein Tiny2313 hat eins von daher passt es :)

Cysign
27.06.2012, 16:50
Super, danke für die Info. So langsam kribbelts mir in den Fingern und ich will endlich loslegen :D

Cysign
28.06.2012, 04:33
So, ich hab mir eben mal meinen RS232-Dongle angeschaut. Der stelle 3,3V und 5V zur Verfügung. Also müsste ich doch damit zum Rumspielen meinen ATTiny2313 betreiben können.

Wenn ich mich nun an die Beispielschaltung mit der LED vom Tutorial halten möchte:
http://www.rn-wissen.de/images/f/f8/Avrtutorial_grundschaltung_mitled.gif
Ignorier ich die Pins 30 & 32 einfach?

Die LED ist beim Mega32 an PC0(SLC) angeschlossen.
Muss ich am ATTiny2313 dann ebenfalls an SCL (was hier dann Pin 19 wäre)? Oder darf ich mir einen der Pins aussuchen?
Laut Datenblatt steht SCL für:
"SCL: Two-wire mode Serial Clock for USI Two-wire mode."
Was auch immer das bedeutet :D

Weiterhin wüsste ich, wie sich der 1K Vorwiderstand für die LED ergibt. Hab ich hier, hab ich schon am Steckbrett drauf...aber ich wüsste gerne , woher der Wert kommt, bevor ich da was befeuere ;)

JonnyBischof
28.06.2012, 08:07
Dieser Pin hat eine Doppelfunktion:

Normalerweise ist es PortC, Bit 0 (PC0)

Der AVR hat aber auch ein Serielles Transceivermodul integriert (SPI, I2C..). Wenn du dieses Modul aktivierst, dann ist dieser Pin nicht mehr PortC, Bit 0, sondern er übernimmt die SCL Funktion (Serial Clock).
Wenn du im Datenblatt das entsprechende Kapitel liest, wirst du das sicher verstehen.

Wichtig: Wenn du diesen Pin als PortC, Bit 0 verwenden willst, dann darf das serielle Transceivermodul nicht aktiviert sein (standard). Details dazu findest du ebenfalls im Datenblatt.


Edit:

Den Vorwiderstand für die LED berechnest du folgendermassen:

U = R * I (Ohmsches Gesetz)

U RV = R V * I F (in unserem Fall)

U RV= Spannungsabfall am Widerstand
R V => so nennen wir den Widerstand in diesem Fall, weil es ein Vorwiderstand für die LED ist
I F = "forward current" -> Strom, der durch die LED fliesst

Das Ziel des Vorwiderstandes ist ja, die LED auf ihrem Betriebswert zu halten, deshalb muss am Widerstand die Differenzspannung aus deiner Versorgungsspannung und der LED Spannung abfallen.

-> U RV = U - U LED

Da du den Widerstand R V suchst, ergibt sich nun die Formel:

R V = (U - U LED) / I F

Torrentula
28.06.2012, 08:09
Zuerst einmal kannst du dir eigentlich jeden freien IO-Pin aussuchen, d.h. du musst ihn nicht an SCL anschließen, das ist hier wohl eher Zufall (viele Pins haben alternative Funktionen, die aber konfiguriert werden müssen damit sie diese auch annehmen, ansonsten sind sie freie IOs).

SCL ist die Taktleitung für den I2C-Bus (Inter IC Bus; IIC, I quadrat C) / TWI (Two-wire interface), wenn das TWI-Modul im ATtiny nicht verwendet wird ist dieser auch ein freier IO-Pin, d.h. du kannst deine LED da anschließen musst es aber nicht unbedingt.
Du musst nur schauen, dass du das richtige DDR (Richtungs Register) konfigurierst, also DDRA, DDRB etc.

Cysign
28.06.2012, 10:09
@Jonny: Danke für die Auffrischung. Aber meine Frage war eher darauf bezogen, wie ich rausfinde, was aus dem Port des µCs raus/rein kommt.
Das Datenblatt hat 226 Seiten...und da würde mir n Suchbegriff auf die Schnelle sicherlich weiterhelfen. Wenn ich mir das alles so oft durchlese, dass ich es komplett verstehe...steh ich nächstes Jahr noch an dieser Stelle ;)

Die LED die ich benutze, hat mir unbekannte Daten (aus nem alten Bastelprojekt). Ich geh einfach mal von 3V und 20mA aus. Aber ich muss ja wissen, was mir der µC liefert.


Okay, nun weiß ich schonmal, dass SCL I²C ist ;)

Torrentula
28.06.2012, 11:27
Du kannst im Datenblatt unter "Electrical characteristics" schauen. Da ist ein DC current per I/O pin von 40 mA angegeben, man sollte diese aber eigentlich nicht ausreizen. Mit deiner 20mA LED wirst du da schon hinkommen, allerdings könntest du sie bestimmt auch mit weniger Strom z.B. 5mA betreiben.

Cysign
28.06.2012, 14:18
Alles klar, ich les gleich mal nach. Geht mir ja erstmal nur ums testen. Wenn ich da was zum blinken bekomme, ist mir der Stromverbrauch erstmal egal :D

021aet04
30.06.2012, 09:39
Leds leuchten auch bei einigen mA schon relativ hell. Ich kenne die Datenblätter auch noch nicht auswendig. Du musst nur die Grundbegriffe kennen. Willst du z.B. Interrupts verwenden (unterbrechen das Hauptprogramm bei einem Ereigniss), suchst du das Kapitel Interrupt und schaust es durch was du brauchst. Willst du ein PWM Signal verwenden schaust du nach dem Kapitel PWM,....

MfG Hannes

Cysign
30.06.2012, 10:00
PWM ist sicherlich eins der interessanten Themen am Anfang. Damit müsste ich doch auch ein Dimmen einer LED emulieren können, oder?
Erstmal mach ich mich nacher an die Pinbelegung des AVRIPS MKII. Ich bin noch nicht so ganz schlüssig, wie die 6 Pins belegt sind.

021aet04
30.06.2012, 10:37
Man kann mittels PWM die Led dimmen, der Strom ist aber immer so groß wie mit dem Widerstand berechnet. Mit der PWM veränderst du nur den Mittelwert.

MfG Hannes

Cysign
30.06.2012, 17:24
So, ich hab eben mal ein bisschen Zeit in meine Vorbereitungen investiert.
Hab mir n paar Stecker gebaut, damit ich alles aufm Breadboart zusammenschubsen kann und dann hab ich meinen RS232-Dongle als Stromquelle missbraucht und den AVRISP mkII angeschlossen.
Eine LED zeigt mir an, dass überhaupt Strom beim µC ankommt. Soweit so gut.
AVR-Studio hat auch gleich meinen AVRISP mkII in der Firmware geupdatet.
Schöne Sache.

Scheinbar wird auch der ATTiny2313 erkannt.Im Connect-Dialog kann ich zumindest die Fuse-Bits sehn.
Wenn ich im Tab "main" jedoch die Signatur des ATTiny auslesen möchte, sagt mit AVR Studio, dass die Signatur nicht mit dem ausgewählten Gerät übereinstimmt.
Ich bekomme0x00 0x00 0x00 zurück.

Da ich unter http://www.mikrocontroller.net/topic/161971 folgendes gelesen habe:


Hab den Fehler gefunden. Hatte ein Beitrag gelesen wo der Auslieferzustand erwähnt wird. 8 Mhz und CKDIV8. Also Takt geteilt durch 8 sind 1 Mhz. Bei meiner Unkenntnis habe ich die ISP Frequenz auf 1 MHZ gestellt, also weniger als ein 1/4 Takt des Prozessor. Richtig ist 250 MHz bei 1 Mhz dann hat's funktioniert. Wenn der CKDIV8 deaktiviert wird kann die ISP Frequenz wieder höher sein.

hab ich unter Main - Settings die ISp-Frequent auf 1Mhz gestellt.


Allerdings ist mir jetzt noch nicht so ganz klar, wie ich ein Programm schreiben kann und wie ich es übertrage, um zu testen, ob es funktioniert.22672 (die grünen LEDs sind vom AAVRISP mkII, die blaue zeigt mir lediglich, dass der ATTiny2313 ne Versorgungsspannung hat und die rote LED ist der RS232-Dongle, den ich lediglich als Stromversorgung nutze...am µC selber hängt noch ne weisse LED, die aber ohne Programm nicht leuchten kenn xD )

Statt des I²C-Pins hab ich nun für meine LED den PB4 (OC1B/PCINT5) gewählt, damit ich nicht gleich für mein erstes Beispiel-Programm an den Fuses rumschrauben muss.
Außerdem hab ich bei den Fuses eh nicht die richtige für das Deaktivieren des I²C gefunden...

Ist es egal, welche Debuggingumgebung ich nutze?

021aet04
30.06.2012, 17:46
Die I2C Schnittstelle wirst du in den Fuses nicht finden. Die musst du mit deinem geschriebenen Programm konfigurieren. Was du wo hinschreiben musst steht im Datenblatt unter "Universal Serial In terface - USI" da du hier nicht nur den I2C sondern auch den SPI (wird u.A. auch zum Programmieren per ISP verwendet) einstellen kannst. In den Fuses kannst du nur für die JTAG Schnittstelle (wird zum Debuggen verwendet) etwas einstellen. Alle anderen Sonderfunktionen der I/Os musst du in deinem Programm konfigurieren.

Es ist eigentlich egal welches Programm du verwendest solange es die Atmels unterstützt. Ich verwende das normale AVR Studio (noch in der Version 4). Ich programmiere mit dem USB AVR Lab von www.ullihome.de (http://www.ullihome.de), mit dem Debuggen habe ich noch nichts gemacht. Zum Debuggen des Programmes verwende ich Leds zur Statusanzeige,...

Ich würde am Anfang einfach eine Led blinken lassen.
Das geht relativ einfach mit

int main (void)
{
DDRD = (1<<PD0);
while (1)
{
PORTB |= (1<<PD0);
_delay_ms(1000);
PORTB &= ~(1<<PD0);
_delay_ms(1000);
}
}

Das ist nur die Main (Hauptprogramm). Die Led wäre hier an PD0 (Pin 2) angeschlossen. Die Led ist 1sec ein und 1sec aus. Es fehlen noch die Includes. Kennst du das AVR GCC Tutorial von www.mikrocontroller.net?

MfG Hannes

Cysign
30.06.2012, 19:03
Ne, kenn ich noch nicht.
Ich dachte aber, dass ich mit Hilfe des AVR-Einstieg-Wikiartikels hier evtl. schon die LED zum Blinken bekomme.

Also scheinbat gibts Probleme beim Kompilieren.
C:\Users\Cysign\Documents\waschi2.asm(1): error: Cannot find include file: avr/io.h
C:\Users\Cysign\Documents\waschi2.asm(2): error: Cannot find include file: util/delay.h
C:\Users\Cysign\Documents\waschi2.asm(4): error: syntax error, unexpected FUNCTION

Hab die Includes des AVR-Artikels genommen, da die mir einleuchtend erschienen.
Muss man die header-files unter Windows manuell nachrüsten??

021aet04
30.06.2012, 19:31
Du hast einen kleinen Fehler gemacht. Du verwendest ".asm". Das wäre Assembler. Gleichzeitig verwendest du aber ".h" als Headerdateien. Das ist wiederum C. Das sind 2 verschiedene Programmiersprachen. Wenn du Assembler verwendest nennt sich die Endung für die "Headerdateien" glaube ich ".a". Bei den C-Dateien hast du als Endung ".c", dann kannst du ".h" als Headerdateien verwenden.

Welches Programm verwendest du? Wenn du AVR Studio verwendest musst du ein C-Projekt anlegen und als Datei hast du dann "*.c"

Hier siehst du es beim AVR Studio 5. http://www.youtube.com/watch?v=kHnxozE4X2I

Die Standart Bibliotheken werden bei der Installation mit installiert, wenn man auch den AVR GCC Compiler wählt. Wenn dieser Installiert wurde solltest du unter C: einen Ordner WINAvr-"Datum" besitzen. In dieser sind dann die Headerdateien zu finden.

MfG Hannes

Cysign
30.06.2012, 19:32
Dir "Toolchain" ist wohl erst ab AVR Studio 5 mit an Bord. Ich lade grade Atmel Studio6 runter. Ich hoffe, dass es jetzt geht ;)

021aet04
30.06.2012, 19:34
WinAVR ist bereits bei AVR Studio 4 dabei. Hier muss man es aber auswählen.

MfG Hannes

Cysign
30.06.2012, 21:02
So, also das Atmel Studio 6 wirkt auch mich schon wesentlich benutzerfreundlicher. Hier konnte ich direkt und ohne Probleme n C-Projekt starten.

#include <avr/io.h>
#include <avr/delay.h>

int main (void)
{
DDRD = (1<<PD0);
while (1)
{
PORTB |= (1<<PD0);
_delay_ms(1000);
PORTB &= ~(1<<PD0);
_delay_ms(1000);
}
}

Ich denke mal, das dürften die richtigen Includes sein, da ich keinen Fehler beim Compilieren bekomme.

Aber ich bekomm immer wieder die Meldung "Unable to enter programming mode".
Und die Device infos kann ich auch nicht auslesen, die anliegenden 4,9-5.0V Spannung jedoch werden scheinbar richtig angezeigt.

Wenn ich die ISP-Geschwindigkeit einstelle bekomme ich allerdings die Meldung, dass alles OK ist.

Kanns sein, dass ich einen der Pins falsch angekabelt hab?

Cysign
30.06.2012, 21:10
"22:05:57: [WARNING] The device [attiny2313] is not supported in ASF Version [3.1.3] that is used in the project Waschbaer1
22:06:22: [ERROR] Unexpected signature 0x00000000 (expected 0x001e910a)., ModuleName: TCF (TCF command: Device:startSession failed.)"

Was ist denn jetzt ASF schon wieder?

021aet04
30.06.2012, 21:15
Wenn er nicht in den Programming Mode kommt kann es sein das die Leitungen falsch sind. Kontrolliere noch einmal alle Leitungen. Hast du zwischen Reset und VCC (+ Versorgung) einen Widerstand?
Ess müssen VCC, GND, Reset, Clock, MISO und MOSI angeschlossen sein. Die Leitungen müssen 1:1 durchverbunden sein (VCC mit VCC, Reset mit Reset, Miso mit Miso,...).

Was ASF ist weiß ich leider nicht.

MfG Hannes

Cysign
30.06.2012, 21:19
Atmel Software Framework^^
Ich prüf jetzt nochmal die Leitungen. Aber eigentlich hab ich das schon mehrfach geprüft, bevor ich Strom drauf gegeben hab...

Cysign
30.06.2012, 21:29
Hmmmm....ich bin mir da schon ziemlich sicherm, dass die richtig sind.
Widertand ist auch zwischen VCC und RST. 100nF-Kondensator zwischen VCC und GND, nah am µC.
Ich zieh jetzt mal meine Power-LED raus. Eigentlich kann die ja nicht so viel verbraten... aber ich weiß ja nicht, wie viel Saft mein RS232-Dongle liefert...

021aet04
30.06.2012, 21:36
Hast du ein Messgerät? Wenn ja dann miss einmal die einzelnen Spannungen.

MfG Hannes

Cysign
30.06.2012, 21:39
Welche Spannungen? VCC gegen GND? 5,07V.

021aet04
30.06.2012, 21:44
VCC, Reset, Miso, Mosi, Clock gegen GND.

MfG Hannes

Cysign
30.06.2012, 21:50
VCC 5,06 V
Reset 5,04 V
Miso 0,00 V
Mosi 0,00 V
SCK 0,00 V

R zwischen Vcc und Rst 9,25 KOhm
C zwischen Vcc und Gnd 99,3 nF

Cysign
30.06.2012, 22:11
Ich hab jetzt auch nochmal das AVRStudio 4 installiert. Aber ich bekomm immer wieder die Meldung, dass ich kein GCC installiert hätte:


Loaded plugin STK500
gcc plug-in: No AVR Toolchain installation found. The AVR GCC plug-in can still be used if you set up your own build tools.
Loaded plugin AVR GCC
Loaded partfile: D:\Programme\AVR Studio 4\PartDescriptionFiles\ATtiny2313.xml
gcc plug-in: No AVR Toolchain installation found. The AVR GCC plug-in can still be used if you set up your own build tools.
gcc plug-in: No AVR Toolchain installation found. The AVR GCC plug-in can still be used if you set up your own build tools.

021aet04
30.06.2012, 22:46
Hast du Win AVR installiert (eventuell mit AVR Studio 5 oder 6)? Wenn ja solltest du es relativ einfach einbinden können. Öffne ein Projekt (wenn du es noch nicht hast). Anschließend wählst du "Project" (neben File) und "Project Options". Es sollte sich jetzt ein Fenster öffnen. In diesem Fenster ist auf der linken Seite normalerweise ganz oben "General", darunter "Include Directories",...
Gehe ganz nach unten bis "Custom Options" steht, wähle dieses. Auf der rechten Seite sollte jetzt unter "External Tools" die Option "Use WinAVR" angewählt sein. Wenn nicht mach einen Haken. Im Pfad darunter sollte jetzt einmal "C:\WinAVR-"Datum"\bin\avr-gcc.exe" bzw "C:\WinAVR-"Datum"\utils\bin\make.exe" stehen. Anschließend sollte es funktionieren.

Solltest du den WinAVR Ordner nicht besitzen kannst du über Google die Dateien suchen (einfach WinAVR eingeben) und installieren. Das Einbinden sollte gleich funktioniern.

MfG Hannes

Cysign
30.06.2012, 22:53
Ich hab die Toolchain von der AVR Webseite installiert und der GCC-Fehler ist nun weg.
Allerdings findet Studio 4 den Treiber fürs AVRISP mkII nicht. Scheint wohl n häufigerer Fehler zu sein
http://www.mikrocontroller.net/topic/222060
Aus dem Grund deinstallier ich grade beide Studios nochmal und versuchs von vorne^^

Cysign
30.06.2012, 23:08
Hmmm....ich vermute grade, dass mien AVRISP mkII ne zu neue firmware fürs 4er Studio hat...
Studio 4 hatte die firmware des Programmers geupdatet. Und Studio 6 hts danach direkt nochmal geupdatet...

Cysign
30.06.2012, 23:20
Okay, mit Studio 6 auf 150Khz im ISP-Modus hats nun geklappt.
Scheinbar lags nur an der Übertragungsgeschwindigkeit.
Ich hab eben gelesen, dass die SVRs immer auf 1Khz ausgeliefert werden. Und da man im ISP-Modus wesentlich darunter liegen soll...hab ichs einfach mal ausprobiert.

Mit deinem Code leuchtet die LED nun:

#include <avr/io.h>
#include <avr/delay.h>

int main (void)
{
DDRD = (1<<PD0);
while (1)
{
PORTB |= (1<<PD0);
_delay_ms(1000);
PORTB &= ~(1<<PD0);
_delay_ms(1000);
}
}

Aber sie blinkt nicht.
Mal schaun, ob ich das hinbekomme ;)

Cysign
30.06.2012, 23:34
Ha, geil, es blinkt! ;)

Danke für deine Hilfe!


int main (void)
{

DDRD = (1<<PD0);
while (1)
{
_delay_ms(1000);
DDRD = (0<<PD0);
_delay_ms(1000);
DDRD = (1<<PD0);
}


/*
DDRD = (1<<PD0);
while (1)
{
PORTB |= (1<<PD0);
_delay_ms(1000);
PORTB &= ~(1<<PD0);
_delay_ms(1000);
}
*/
}

Cysign
01.07.2012, 00:33
Hmmm.....jetzt darf ich mich erstmal in die Grundlagen der AVR-Programmierung einleben ;)

021aet04
01.07.2012, 08:36
Das kann nicht funktionieren. Du schaltest nur den Pin zwischen Ein- und Ausgang um. Beim Ausgeklammerten ist der Fehler das du den PD0 (Port D Pin 0) als Ausgang definierst, aber mit PORTB den Port B (nicht D) ansteuerst. Habe gerade gesehen das ich das falsch geschrieben habe. Ich ändere es gleich. Richtig wäre statt PORTB PORTD zu schreiben.

Entschuldige
MfG Hannes

Cysign
01.07.2012, 18:02
Das mit den Ports hab ich schon gemerkt. Hab die LED deshalb erstmal testweise an den von dir genannten Port gestöpselt, um diesbezüglich nen Fehler auszuschließen.
Inzwischen hab ich an beiden Ports ne LED zum Spielen ;)

Hast du ne gute Referenz zu den möglichen Befehlen auf Lager?

Torrentula
01.07.2012, 19:41
Hast du ne gute Referenz zu den möglichen Befehlen auf Lager?

Also die beste Seite, um mit dem AVR-GCC warm zu werden ist meiner Meinung nach diese: mikrocontroller.net (http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial)

Cysign
01.07.2012, 20:02
Alles klar, dann mal ab damit als PDF aufs Tablet ;)
Danke!

Cysign
20.11.2012, 11:52
So, nachdem ich lange keine Zeit mehr gefunden habe, mich weiter mit der Materie zu befassen, hab ich eben endlich mal wieder das Atmel Studio gestartet. Nach anfänglicher Verwunderung, warum der µC meine LED nicht mehr blinken lassen wollte, hab ich dann die Ursache gefunden. Das Studio hat scheinbar (vllt. hats sich geupdatet oder sonst was?!) die Übertragungsrate von 150KHz auf 250KHz gestellt. Und so lief die Übertragung an meinen µC nicht mehr. Komische Sache.
Aber jetzt blinkts endlich wieder und ich kann weiter machen :)

021aet04
20.11.2012, 17:13
Auf welche Frequenz ist der Atmega eingestellt (Taktfrequenz) bzw wieviel Mhz verwendest du? Wenn die Übertragung schief geht sollte AVR Studio eine Meldung ausgeben (Device not found, Programmer not found,...). Hat das AVR Studio einen Fehler ausgegeben?

MfG Hannes

Cysign
20.11.2012, 21:33
Noe, also nicht, dass ich es mitbekommen hätte. Der 2313 läuft noch so schnell wie er im Auslieferungszustand war - ich hab mal gelesen, dass das nicht sonderlich schnell sein sollte. Hab nämlich noch nicht rausgefunden, wie ich seine Geschwindigkeit ändere ;)

021aet04
21.11.2012, 19:29
Standartmäßig ist glaube ich der interne 8MHz RC-Oszillator mit dem CKDIV8 Fusebit (8MHz/8=1MHz) ausgewählt. Wenn du nur die internen Oszillatoren wählen willst hast du den 125kHz Watchdogoszillator, den 4MHz und den 8MHz Oszillator wählen. Zusätzlich kannst du noch das CKDIV8 Bit wählen, damit kann man noch den Takt durch 8 teilen. Du kannst noch verschiedene Zeiten wählen, das ist aber nur die Zeit zwischen Reset und Start des Programmes.

Diese Änderungen machst du bei den Fusebit Einstellungen, achte aber darauf das du nichts falsches verstellst, da du im schlimmsten Fall nicht mehr auf den µC zugreifen kannst (außer mit HV-Programmer) oder bei gesetzem Lockbit gar nicht mehr.

Wenn du ein Programm kompilierst musst du darauf achten das du die richtige Frequenz gewählt hast, da ansonsten das Programm nicht richtig funktioniert.

MfG Hannes

Cysign
15.01.2013, 02:24
Ich hab gestern und heute mal wieder ein wenig Zeit gefunden, mich mit dem µC zu befassen. Eigentlich wollte ich einen Platinenentwurf für den MUX anfangen damit es endlich mal voran geht. Aber dabei ist mir aufgefallen, dass ich das Multiplexen nicht wirklich verstehe. Vor geraumer Zeit war mir so halbwegs klar geworden, wie es funktionieren soll, aber irgendwie ist das nicht mehr so präsent. Kann mir da vielleicht jemand mit nem guten ink aushelfen? Hab selbst schon was gesucht, aber so wirkilch einleuchtend war das Ergebnis nicht...

- - - Aktualisiert - - -

Ah, okay, mir ist grade ein Licht aufgegangen. Ich hab beim CD4051 die Steuerkanäle A, B und C. Und damit kann ich dann beliebig nach der im Datenblatt angegebenen Wahrheitstabelle die Pins schalten. Aber wenn ich das richtig verstehe, ist das doch nur temporär, oder?
Da ein MUX ein analoges Bauteil ist, eine Verknüpfung von Gattern, kann ich doch immer nur den Pin schalten, den ich grade mit den drei Steuerpins anspreche.
Also kann ich mit dem CD4051 gar nicht den CD4066 für mein Vorhaben ansteuern, denn da muss ich ja immer mehrere Pins simultan schalten.
Ich werd mir gleich mal das Datenblatt vom CD4066 anschauen. Wenn da "getastet" werden muss, um die Ports am CD4066 zu schalten, dann funktionierts ja doch.
Aber ansonsten wäre eini I/0-Expander über I2C sinnvoller, oder?

Sorry für Tippfeher....ich schreibe grade im Blindflug...weil das Forum nicht sauber auf Android läuft...und leider immr noch kein Tapatalk unterstützt wird :/