Hallo,
Ich möchte mir ein Lichtmischpult bauen.
Dazu verwende ich einen ATMega32 mit einem MAX485 um DMX daten zu
senden.
Das Mischpult soll 26 Fader und ~32 Buttons haben.
In diesem Beitrag "Wie ADC erweitern/muxen (ATmega)?" wird der 74HC4067
erwähnt, aber der wird ja nicht über SPI angesprochen, oder?
Gibt es einen externen ADC der über SPI angeschlossen wird? - und wenn
ja, wie steuere ich ihn an? (Programmiere in Bascom)
Zum erweitern der Eingänge würde ich 47HC165 verwenden, allerdings weiß
ich auch hier nicht wie ich die per Software anspreche.
Oder soll ich einfach weitere µC (Atmega32) per SPI anschließen und die
Eingänge so erweitern?
Und dann ist da ja noch das EEprom
(http://www.reichelt.de/EEPROM-seriell-SPI-Microchip/25LC320A-I-P/3//index.html?ACTION=3&GROUPID=4512&ARTICLE=96660&SHOW=1&START=0&OFFSET=500&)
Wie kann ich mit Bascom Daten schreiben und wieder auslesen?
Und zu guter letzt: Der Atmega wird mit einem 8MHz Quarz getaktet. Laut
Datenblatt braucht er 32pF Kondensatoren. Aber ich finde keine 23pf
Kerkos bei Reichelt.
Schonmal Danke im Voraus! ;)
@ Luca E. (derlucae98)
>Dazu verwende ich einen ATMega32 mit einem MAX485 um DMX daten zu>senden.>Das Mischpult soll 26 Fader und ~32 Buttons haben.
Klingt nach 26 Potentiometern, die per ADC gelesen werden sollen sowie
32 einfachen Tastern, welche digital per Porterweiterung gelesen werden.
>In diesem Beitrag "Wie ADC erweitern/muxen (ATmega)?" wird der 74HC4067>erwähnt, aber der wird ja nicht über SPI angesprochen, oder?
Nein, das ist ein analoger Multiplexer.
>Gibt es einen externen ADC der über SPI angeschlossen wird?
Wozu? Dein AVR hat einen ADC, der hier vollkommen ausreichend ist. Nutze
ihn.
> - und wenn>ja, wie steuere ich ihn an? (Programmiere in Bascom)>Zum erweitern der Eingänge würde ich 47HC165 verwenden, allerdings weiß>ich auch hier nicht wie ich die per Software anspreche.
Muss man "per Hand" machen, bzw. SPI.
AVR-Tutorial: Schieberegister>Oder soll ich einfach weitere µC (Atmega32) per SPI anschließen und die>Eingänge so erweitern?
Nein.
>Und dann ist da ja noch das EEprom>(http://www.reichelt.de/EEPROM-seriell-SPI-Microchi...)>Wie kann ich mit Bascom Daten schreiben und wieder auslesen?
Keine Ahung. Kann sein dass es dafür schon fertige Funktionen gibt. Kann
aber auch sein, dass du das Protokoll selber handhaben musst.
>Und zu guter letzt: Der Atmega wird mit einem 8MHz Quarz getaktet. Laut>Datenblatt braucht er 32pF Kondensatoren. Aber ich finde keine 23pf>Kerkos bei Reichelt.
Nimm 22pF oder 33pF die reichen auch.
Danke für deine Antwort, falk
Falk Brunner schrieb:
> Klingt nach 26 Potentiometern, die per ADC gelesen werden sollen sowie> 32 einfachen Tastern, welche digital per Porterweiterung gelesen werden.
Richtig.
> Nein, das ist ein analoger Multiplexer.
Das dachte ich mir. Einziges problem -> ansteuerung in Bascom.
>>Und dann ist da ja noch das EEprom>>(http://www.reichelt.de/EEPROM-seriell-SPI-Microchi...)>>Wie kann ich mit Bascom Daten schreiben und wieder auslesen?>> Keine Ahung. Kann sein dass es dafür schon fertige Funktionen gibt. Kann> aber auch sein, dass du das Protokoll selber handhaben musst.
Bereits gelöst.
> Nimm 22pF oder 33pF die reichen auch.
Alles klar.
Das heißt ich brauche 2 Analogmultiplexer für die Fader, 4 74HC165 für
die Taster und 4 74HC595 für die Taster LED'S.
Kann ich mir eigentlich die Ports für SCL, SCK, usw. selbst aussuchen,
oder gibts da "feste" Ports?
@ Luca E. (derlucae98)
>> Nein, das ist ein analoger Multiplexer.>Das dachte ich mir. Einziges problem -> ansteuerung in Bascom.
Wo ist das Problem? Du musst einfach nur vier Bit (IO-Pins) per Software
steuern, welche an S0-S3 beider Multiplexer gehen. Damit wählst du den
kanal aus, welcher vom ADC gelesen werden soll. Der 1. Multiplexer geht
an ADC0, der zweite an ADC1. Fertig.
>Das heißt ich brauche 2 Analogmultiplexer für die Fader, 4 74HC165 für>die Taster und 4 74HC595 für die Taster LED'S.
Ja.
>Kann ich mir eigentlich die Ports für SCL, SCK, usw. selbst aussuchen,>oder gibts da "feste" Ports?
Wenn du SPI in Hardware und damit mit maximaler Geschwindigkeit
betreiben möchstest, musst du die festen Ports nehmen. Machst du SPI in
Software, kannst du sie frei wählen.
Falk Brunner schrieb:> Wo ist das Problem? Du musst einfach nur vier Bit (IO-Pins) per Software> steuern, welche an S0-S3 beider Multiplexer gehen. Damit wählst du den> kanal aus, welcher vom ADC gelesen werden soll. Der 1. Multiplexer geht> an ADC0, der zweite an ADC1. Fertig.
Ah doch so einfach. cool.
Falk Brunner schrieb:> Wenn du SPI in Hardware und damit mit maximaler Geschwindigkeit> betreiben möchstest, musst du die festen Ports nehmen. Machst du SPI in> Software, kannst du sie frei wählen.
Ok gut. Ich erstelle mal einen Schaltplan. Vielleicht kann jemand mal
drüberschauen.
Den Schaltplan habe ich als Anhang hinzugefügt.
Ist alles korrekt verbunden?
Mir ist aufgefallen, dass man den 74HC4067 auch als Eingangserweiterung
einsetzen kann. Quasi so:
Kanal wählen => Pinstatus in Variable schreiben; nächsten Kanal wählen
=> Pinstatus in nächste Variable; usw.. Macht das Sinn?
Die Anzahl der Fader habe ich auf 12 reduziert.
Da es in Eagle keinen 74HC4067 gibt, habe ich mal schnell eine lib
erstellt.
MfG Luca
@ Luca E. (derlucae98)
>Den Schaltplan habe ich als Anhang hinzugefügt.>Ist alles korrekt verbunden?
E\ muss auf GND.
An AREF gehört ein 100nF Kondensator gegen GND, aber keine +5V!
DMX Out willst du besser an PD1 anschließen.
Haben deine Taster Pull-Ups/downs?
>Mir ist aufgefallen, dass man den 74HC4067 auch als Eingangserweiterung>einsetzen kann. Quasi so:>Kanal wählen => Pinstatus in Variable schreiben; nächsten Kanal wählen>=> Pinstatus in nächste Variable; usw.. Macht das Sinn?
Ja, ist ja ein Multiplexer.
>Da es in Eagle keinen 74HC4067 gibt, habe ich mal schnell eine lib>erstellt.
Naja, verbesserungsfähig. Der Name gehört in Layer NAMES, die Pins sind
zu kurz, damit die Zahlen zu nah am Symbol. Z als Ausgang zeichnet man
normalerweise rechts im Symbol. VCC/GND macht man bei Logik-ICs meist
als eigenes Gatter, siehe die 74er Serie.
Falk Brunner schrieb:> E\ muss auf GND.> An AREF gehört ein 100nF Kondensator gegen GND, aber keine +5V!
Ok werde ich ändern.
Falk Brunner schrieb:> DMX Out willst du besser an PD1 anschließen.
Ich wollte das DMX signal erst per Software UART senden, weil der UART
Code bei mir 4 Fehler versucht hat, deswegen PD7.
Habe aber gerade herausgefunden warum und werde es jetzt an PD1 hängen.
Der DMX_OUT am rechten, unteren Bildrand bei SV6 gehört da nicht hin.
Ich habe nur vergessen den Wert des Anschlusses zu ändern.
Falk Brunner schrieb:> Haben deine Taster Pull-Ups/downs?
Ich verwende die Pullups des Atmegas.
Falk Brunner schrieb:> Naja, verbesserungsfähig. Der Name gehört in Layer NAMES, die Pins sind> zu kurz, damit die Zahlen zu nah am Symbol. Z als Ausgang zeichnet man> normalerweise rechts im Symbol. VCC/GND macht man bei Logik-ICs meist> als eigenes Gatter, siehe die 74er Serie.
Wie gesagt: Ist mal eben schnell erstellt. Werde mich mal dransetzen und
ordentlicher machen.
@ Luca E. (derlucae98)
>Ich wollte das DMX signal erst per Software UART senden, weil der UART>Code bei mir 4 Fehler versucht hat, deswegen PD7.
250.000 Bud per Soft-UARt istr nicht sinnvoll, dann sit dein CPU
wirklich komplett ausgelastet.
>> Haben deine Taster Pull-Ups/downs?>Ich verwende die Pullups des Atmegas.
Ach so, du willst ja auch Multiplexer für die Taster nutzen, keine
Schieberegister. Naja, kann man machen, aber wenn du die schnell
abfragen willst, brauchst du deutlich niederohmigere Pull-Ups. Nimm
liwber einen externen.
Falk Brunner schrieb:> Ach so, du willst ja auch Multiplexer für die Taster nutzen, keine> Schieberegister. Naja, kann man machen, aber wenn du die schnell> abfragen willst, brauchst du deutlich niederohmigere Pull-Ups.
100R - 1k etwa? oder noch niedriger.
Reicht es wenn ich den PullUp am Ausgang des MPX anschließe oder braucht
jeder Eingang einen?
@ Luca E. (derlucae98)
>> abfragen willst, brauchst du deutlich niederohmigere Pull-Ups.>100R - 1k etwa? oder noch niedriger.
Na, 1-10k sollten reichen.
>Reicht es wenn ich den PullUp am Ausgang des MPX anschließe
Ja.
>oder braucht jeder Eingang einen?
Nein.
Karl Heinz Buchegger schrieb:> Ein passendes Flachbandkabel und einen Schraubstock.
Du meinst, den Wannenstecker in den Schraubstock einspannen und die
Drähte mit nem Schlitzschraubendreher in die Schneidklemmen reindrücken,
oder wie?
Das war meine erste Idee.
Luca E. schrieb:> Karl Heinz Buchegger schrieb:>> Ein passendes Flachbandkabel und einen Schraubstock.>> Du meinst, den Wannenstecker in den Schraubstock einspannen und die> Drähte mit nem Schlitzschraubendreher in die Schneidklemmen reindrücken,> oder wie?
Brauchst du gar nichts 'reindrücken'. Solange der Bügel nicht
geschlossen ist, ist da ein Spalt. Und wenn nicht, dann setzt man den
Bügel eben erst dann auf, wenn man das Kabel auf die Schneidklemmen
aufgesetzt und ev. ein bischen angedrückt hat.
Nein.
Du spannst den Stecker in den der quer in den Schraubstock ein, so dass
du mit den Backen des Schraubstocks den Bügel zudrücken kannst. Das geht
nämlich ganz schön schwer. Der Trick besteht darin, dass der Bügel
parallel zugedrückt werden soll/muss. Also vergiss alle 'mit der
Kombizange Stück für Stück den Bügel zumachen' sachen.
Stecker der quer in den Schraubstock, Kabel einfädeln, Schraubstock
zudrehen. Das Kabel wird vom Bügel in die Schneidklemmen gedrückt! Und
den Bügel wiederrum drücksz du mit dem Schraubstock an den
Stecker-Körper.
Aber leg dir je nach Schraubstock etwas zwischen Backen und Stecker.
Sonst hast du das Muster der Schraubstockbacken im Kunststoff des
Steckers.
Im Ernst: das braucht einiges an Kraft, 10 oder mehr Kabel gleichzeitig
in die Schneidverbinder einzudrücken. Unterschätz das nicht!
Unglaublich: es gibt kein youtube-Video von dem Vorgang! Zumindest hab
ich nichts gefunden.
So, der Schaltplan ist fertig. Gibt es einen Trick, Vielpinner wie den
74HC4067 mit dem Wannenstecker auf der Platine zu verbinden?
Karl Heinz Buchegger schrieb:> Unglaublich: es gibt kein youtube-Video von dem Vorgang! Zumindest hab> ich nichts gefunden.
Vielleicht sollte man das mal ändern :D