Hallo, ich möchte mit einem ATMega128A und zwei TDA7439 sowie TDA7375 einen "kleinen" Verstärker mit "Audio Processor" bauen... Ich habe den TDA7375 mehrfach erfolgreich in Betrieb genommen. Ein Testaufbau mit einem Steckbrett und dem TDA7439 verlief ebenso erfolgreich. Nun wollte ich das ganze wie auf dem Bild im Anhang bauen. Also ein Wannenstecker für Audio R/L, GND sowie I2C. Das I2C Signal geht zu einem ATMega128A. Das Audiosignal geht zu den TDA7439. Nun werden die TDA7439 über I2C gesteuert. Die Adresse ist jedoch nicht einstellbar. Somit dachte ich, diese an freie PINs des ATMega128A anzuschließen und die TDA7439 mittels Software I2C anzusteuern, sodass ich jeden einzeln ansteuern kann. Der ATMega128A würde also die Daten per Hardware I2C bekommen und an den jeweiligen TDA7439 weiter geben. Hierfür brauche ich also den Hardware I2C und zwei Software I2Cs. Da der ATMega128A auch noch Mute & Co. von den TDA7375 schalten soll... Schafft der ATMega128A das? Brauche ich einen externen Quarz? Vielen Dank
I²C per Software lässt sich auf jedem AVR problemlos implementieren. Nur kann er während der Kommunikation kaum noch etwas anderes machen - was je nach Anwendung akzeptabel sein kann.
Ein AVR128DA64 hat schon mal zwei I2C Ports in Hardware. Je einer geht an einen TDA7439, und einer von beiden geht an den Wannenstecker. Problem gelöst. Oder Du nimmst eine I2C Multiplexer wie PCA9544 oder so. fchk
Wo hat der denn zwei Hardware I2Cs? http://ww1.microchip.com/downloads/en/devicedoc/atmel-8151-8-bit-avr-atmega128a_datasheet.pdf Seite 10
Christop schrieb: > Nun werden die TDA7439 über I2C gesteuert. Die Adresse ist jedoch nicht > einstellbar. Ich würde hier einfach den I2C multiplexen. https://www.ti.com/de-de/interface/i2c/switches-and-multiplexers/products.html Christop schrieb: > Wo hat der denn zwei Hardware I2Cs? Du hast das Datenblatt eines anderen Controllers. Der AVR128 ist kein Mega128, sondern brandneu bei Microchip: https://www.microchip.com/wwwproducts/en/AVR128DA64
:
Bearbeitet durch Moderator
Geil! ATmega128 Xmega128 AVR128 Und alle sind AVRs. Ich hätte auch gerne etwas von den Kraut, dass die nehmen.
Stefan ⛄ F. schrieb: > Xmega128 Gibb's nich. Es gab verschiedene ATxmega128*, aber die Xmegas sind alle durch nachfolgende Buchstaben klassifiziert (die die Familie bezeichnen). Die 128 ist da eben einfach nur die Flash-Größe, bei den "klassischen" Megas war es die nachfolgende Ziffer (ATmega1280, ATmega164 etc.). Bei den jeweils ältesten einer Speichergröße fehlte diese Ziffer - so weit hatte man dazumals wohl nicht in die Zukunft gedacht, dass es davon mal jeweils mehrere gäbe … Vermutlich wollte Microchip nun zwar den AVR-Namen weiter leben lassen, aber nicht den darin implizierten Atmel-Namen … obwohl sie's bei den Mega0 noch getan haben (ATmega4809 etc.).
:
Bearbeitet durch Moderator
I2C kann ja nun (fast) beliebig langsam getaktet werden, da schafft ein ATmega auch mehrere in Software. Sinnvoll wäre es natürlich, dabei nicht mir delays zu arbeiten, sondern das Protokoll von einer TImer-ISR mit state machichine im "Hintergrund" ausführen zu lassen. Oliver
Wie schon gesagt entweder einen XMega mit 4 TWIs oder einen Multiplexer.
Naja, das bisschen kann man allemal in Software abhandeln.
I2C-Master ist problemlos mehrfach implementierbar, da zu jedem Zeitpunkt beliebig lange Unterbrechungen egal sind. (Wenn man kein neumodisches Zeugs hat, das Busfehler korrigiert etc.) Gilt genauso für SPI(-Master), davon kannst Du auch soviel in SW machen wir die Portpins hergeben (Bei SPI sogar beliebig viele mit Schieberegistern).
Also der ATMega128 hat ja so oder so nicht viel zu tun wie ich gerade sehe. Ich habe das PCB mal geroutet.... Also was soll/muss er machen? 2 x I/O (Mute pro TDA) 2 x Software I2C (I2C pro TDA) 1 x Hardware I2C (zum Master) ----- 2 x LED (wird zusammen mit Mute geschaltet, Visuelle Anzeige, Mute On/Off) Und noch UART (wird hinterher nicht benötigt und könnte aktivier/deaktivierbar sein. Was muss der AVR machen? Eigentlich nur Idlen.. Wie oft stellt man Treble, Middle, Bass ein? Also bleibt eigentlich nur Volume.. Und das ist ein sehr kurzer Befehl.... Das mit einem 16Mhz Quarz... ------------------ Dann das PCB.. Da mal eine Frage zu... Man hat ja den Analogen und Digitalen bereich.... der Digitale Bereich ist grün eingerahmt... Wie macht man das am besten wegen Störungen etc? Kann ich "zwei" Masseflächen erzeugen? Also eine in den grünen Rahmen.. eine mit dem Rest.. und dann beide Flächen ein einer Stelle mit einer Leiterbahn verbinden? Das wäre zwar keine "Sternmasse".. aber Analog & Digital mischen wäre doch so besser, oder?
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.