Forum: Mikrocontroller und Digitale Elektronik ATMEGA169 Programmierung DAC7718 varibale Ausgangsspannung


von Michael R. (michael1992)


Lesenswert?

Guten Tag,

Ich bin kompletter Neuling was uC Programmierung angeht, daher hoffe ich 
ihr seid gnädig, wenn ich dumme Fragen stelle.

Es geht um folgendes. Ich möchte mit dem ATMEGA169 4 DAC7718 dazu 
bringen eine varibale Spannung auszugeben. Die DACs sind über SPI 
angeschlossen. Damit der DAC die gewünschte Spannung ausgibt muss ich ja 
eigentlich nur ein Register ändern. Allerdings weiß ich nicht, wie ich 
dem Mikrocontroller mitteile, dass er diese Aufforderung über die SPI 
Schnittstelle schickt.

Die Programmierung soll über einen USB Port ablaufen, der über den 
FT232R an den Mikrocontroller angebunden ist.

Leider scheitert es bei der Programmierung schon an den Grundlagen, 
daher wollte ich versuchen die Arduino IDE zu verwenden. Hier gleich die 
erste Frage, ist das überhaupt möglich oder sind die Befehle durch 
andere Pinbelegung/Architektur dafür falsch? Wenn dies nich möglich ist 
wollte ich den Mikrocontroller mit Atmel Studio programmieren.

Soweit ich das verstanden habe benötige ich dafür erstmal einen 
Bootloader, richtig? Wenn dem so ist, wie kann ich diesen in mein 
Programm einbinden? Danach muss ich die SPI Schnittstelle konfigurieren 
und dann mit dem richtigen Befehl die Bitfolge über SPI schicken. Wenn 
ich auf die Register des Mikrocontrollers zugreifen kann sollte die SPI 
konfiguration nicht das Problem sein, aber wie sende ich dann über SPI?

Leider bin ich komplett überfordert wie ich dieses Problem angehe und 
meine bisherige Recherche hat mich nicht wirklich weiter gebracht.

Ich wäre über jede Hilfe dankbar und hoffe niemanden mit diesen 
Anfängerfragen zu nerven.

Grüße
Michael

von Michael R. (michael1992)


Lesenswert?

Ergänzung:

Ich habe gerade gelesen, dass die Programmierung des Mikrocontrollers 
nur über ISP, also SPI oder JTAG möglich ist. Somit ist meine Idee, den 
Mikrocontroller über meinen USB to USART Port nicht möglich, ist das 
richtig?

von Jim M. (turboj)


Lesenswert?

Michael R. schrieb:
> dem ATMEGA169

Warum ausgerechnet dieser?

Ich hätte an Deiner Stelle erstmal mit einem fertigen Arduino Board 
(o.ä.) angefangen - dort sind etliche Probleme wie das Flashen nämlich 
schon gelöst.

Daran klöppelt man die 4 DACs zum Testen. Für SPI ist ein Oszilloskop 
zwecks Überprüfen der Signalform empfehlenswert.

Erst dann würde ich das auf den ATMEGA169 portieren. Viele Arduino Boars 
kann man mit einem geeigneten Sketch als ISP Programmer benutzen.

Mach zu Anfang lieber möglichst kleine Schritte.

von Michael R. (michael1992)


Lesenswert?

Vielen Dank für die Antwort. Leider besteht diese Option nicht, da ich 
das Board im Zuge meiner Bachelorarbeit entwickeln sollte. Mir war 
jedoch nicht bewusst welcher Aufwand mit der 
Mikrocontrollerprogrammierung einhergeht. Ich habe es leider versäumt 
mich im Vorfeld ausreichend darüber zu informieren.

Nun ist die Platine bereits fertig bestückt und in diese Form wohl 
anscheinend nicht programmierbar. Da die übrige Zeit bereits vorher 
knapp war wird mich das evtl. meine Bachelorarbeit kosten, es sei denn 
ich kann den Fehler schnell korrigieren.

Mein momentaner Gedanke ist einen Anschluss zum flashen händisch 
draufzulöten. Spielt es dabei eine Rolle ob ich dies über die JTAG oder 
SPI Pins tue? Die SPI pins sind bereits an die DACs angeschlossen, diese 
würde ich fürs flashen notfalls unterbrechen.

Ich weiß jedoch dann immernoch nicht, wie ich die Programmierung 
durchführe.

Welchen Programmer verwendet man zum flashen? Mir fiel jetzt bisher der 
Atmel-ICE auf.

Wie flashe ich ihn jedoch dann? Gibt es dafür vorgefertigte Programme?

von Peter (Gast)


Lesenswert?

Du kannst die isp pins mit an deine spi ranlöten zum flashen. 
Unterbrechen musst du normal nix. Mach mal ein foto von der platine

von Michael R. (michael1992)


Angehängte Dateien:

Lesenswert?

Ok das sollte kein Problem sein, ich muss ihn ja nur einmal kurz flashen 
und dann löt ich die Verbindungen einfach wieder runter.

Was das flashen angeht, ist das einfach nur das draufladen des 
Bootloaders? Könnte ich dann den AVR Bootloader FastBoot von Peter 
Dannegger einfach nutzen?

Anbei ein Bild der Platine.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Welcher Teufel hat Dich geritten, auf der Platine eine USB-A-Buchse zu 
verbauen?

von Michael R. (michael1992)


Lesenswert?

Da über den USB Port nur sehr wenige Daten gesendet werden hat es meiner 
Meinung nach keine Rolle gespielt welchen Typ ich verwende.

von Michael R. (michael1992)


Lesenswert?

Aber zurück zu meiner eigentlichen Frage. Da ich keinen Bootloader 
kompatibel mit dem ATMEGA169 gefunden habe spiele ich grade mit dem 
Gedanken, ihn durch den ATMEGA128 zu ersetzen und den Bootloader BLIPS 
zu verwenden. Oder kennt jemand einen Bootloader für den ATMEGA169?

Link zum Bootloader BLIPS: 
https://www.avrfreaks.net/projects/blips-4-bootloader?module=Freaks%20Academy&func=viewItem&item_id=625&item_type=project

Habe ich das überhaupt richtig verstanden, dass ich sobald ich den 
richtigen Bootloader draufgeladen habe die restliche Programmierung über 
den USB Port vornehmen kann?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das ist kaputt, das ist die falsche Buchse. Egal, um welche Datenrate es 
geht, diese Buchse darf nur bei USB-Hosts verbaut werden. Dein FT232 
aber ist ein USB-Device, und braucht daher zwingend eine USB-B-Buchse.

So lässt sich Deine Platine nur mit einem Müll-Kabel nutzen, das an 
beiden Enden einen USB-A-Stecker hat.

Warum hast Du Dich nicht wenigstens informiert? Kein gutes Zeichen für 
eine Bachelor-Arbeit.

Welche Funktion hat der dicke Übertrager auf der Platine?

Magst Du uns einen Schaltplan zeigen?

von Wolfgang (Gast)


Lesenswert?

Jim M. schrieb:
> Daran klöppelt man die 4 DACs zum Testen. Für SPI ist ein Oszilloskop
> zwecks Überprüfen der Signalform empfehlenswert.

Die Signalform ist oft gar nicht das Problem, sondern die Sequenz, die 
da seriell über die Leitung huscht. Ein kleiner Logikanalysator mit 
Protokolldekoder für wenige Euro ist für soetwas oft das geeignetere 
Werkzeug.

von Harald (Gast)


Lesenswert?

@Rufus
Die Verwendung eines USB-Steckers Typ A an dieser Stelle ist sicherlich 
nicht normenkonform, aber funktionieren wird das trotzdem. Muss man da 
unbedingt in dieser Intensität drauf rumreiten? Habe auch schon an 
„professionelleren“ Produkten nicht-normenkonforme Lösungen gesehen...

von Michael R. (michael1992)


Lesenswert?

Ich kann dir da schlecht widersprechen. Ich hätte nicht direkt anfangen 
sollen, sondern um eine Einlesezeit bitten sollen.

Der Transformator ist Teil der Spannungsversorgung, es war ein Versuch 
nur eine Eingangsspannung zu benötigen. Diese Spannungsversorgung ist 
allerdings nicht zwingen notwendig. Über die richtigen Stiftleisten kann 
darauf verzichtet werden.

Das Kabel ist vorhanden, allerdings hast du da vollkommen recht, es war 
nicht sinnvoll die Platine so zu designen.

Ich weiß, dass ich vieles hätte besser machen können, aber ich kann die 
Hardware nur noch bedingt ändern. Ich muss nun das Beste darauß machen 
und ich glaube Hardwaretechnisch sollte sie ihren Zweck erfüllen, auch 
wenn der Entwurf günstiger und sinnvoller hätte sein können.

von spess53 (Gast)


Lesenswert?

Hi

>Habe auch schon an
>„professionelleren“ Produkten nicht-normenkonforme Lösungen gesehen...

Ja z.b. Logicport von Intronix.

MfG Spess

von Michael R. (michael1992)


Lesenswert?

Danke Harald, aber er hat irgendwo recht. Es ist richtig mich auf meine 
Fehler aufmerksam zu machen. Der Sinn der Bachelorarbeit ist ja, dass 
ich etwas für die Zukunft lerne.

von Harald (Gast)


Lesenswert?

Habe gerade mal gegoogelt, Arduino ließe sich ja auf den 169er 
portieren, RX/TX hängen auch an den richtigen Pins. Bzgl. DTR(Reset) bin 
ich mir nicht sicher, vielleicht kann das hier ein Arduino-Mensch 
beantworten. Mit Arduino hättest du es evtl. für den Anfang leichter. 
Das Programmieren geht dann vielleicht schneller von der Hand.

Gibt es einen Schaltplan?

von Peter Z. (hangloose)


Lesenswert?

Bei Chip45 gibt es einen Bootloader
Herr Lins würde bestimmt auf Nachfrage den Mega169 mit aufnehmen.
Steht zumindest auf der Seite...
https://www.chip45.com/categories/chip45boot2_avr_atmega_xmega_uart_bootloader_frei_kostenlos_hexfiles.php

von Michael R. (michael1992)


Angehängte Dateien:

Lesenswert?

Hallo Harald,

Im Anhang befindet sich der Schaltplan.

Die Verbindung zwischen dem FT232R und dem ATMEGA169 ist im Schaltplan 
fehlerhaft. Die 4 0Ohm Brücken sind nicht bestückt, stattdessen wurde 
darüber mit Fädeldrähten RXD und TXD überkreuzt verbunden, wie es 
eigentlich geplant war. Der Fehler fiel erst nach Bestellen der Platine 
auf. Die Handshake-Signale sind nicht mehr angeschlossen.

Es wäre natürlich großartig, wenn es sich portieren lässt, aber soweit 
ich das gesehen habe gibt es keinen Arduino mit 64Pin Mikrocontroller. 
Ist es trotzdem möglich?

von Michael R. (michael1992)


Lesenswert?

Hallo Peter Z.,

Vielen Dank für diese Information, es sieht sehr vielversprechend aus.

von Tom (Gast)


Lesenswert?

Michael R. schrieb:
> Oder kennt jemand einen Bootloader für den ATMEGA169?
Ja. Im  AVR-Butterfly ist auch ein ATmega169 verbaut. In der Firmware 
gibt es einen passenden Bootloader für die serielle Schnittstelle.

Mir scheint Dir fehlt an einigen Stellen noch das Wissen und die 
Erfahrung. Von daher würde ich die Zahl der Baustellen (und damit der 
Fehlerquellen) arg reduzieren. Mit einem ISP-Programmer 
(https://www.mikrocontroller.net/articles/AVR_In_System_Programmer) 
bekommst Du auch die Software in den Flash vom ATmega. Und ohne 
Programmer würdest Du auch den Bootload nicht in den Chip bekommen...

von Michael R. (michael1992)


Lesenswert?

Hallo Tom,

Das ist vollkommen richtig. Ich habe bisher keine nennenswerte Erfahrung 
im Hardwarentwurf und habe mich wohl ziemlich übernommen. Die Bauteile 
lassen sich nicht mehr reduzieren, da die Platine ja bereits vorliegt. 
Ich kann jedoch die gesame Spannungsversorgung abtrennen, falls diese 
nicht funktionieren sollte.

Den AVR Butterfly habe ich bereits gefunden, aber noch nicht 
herausgefunden woher ich den Bootloader bekomme. Ich werde dahingehend 
weiter recherchieren, danke.

von Jim M. (turboj)


Lesenswert?

Michael R. schrieb:
> Da über den USB Port nur sehr wenige Daten gesendet werden hat es meiner
> Meinung nach keine Rolle gespielt welchen Typ ich verwende.

Durchgefallen. USB Spec verlangt da klar den B-Typ, weil es kein "Host" 
sondern "Device" ist. Und ja, die sollte man vorher mal gelesen haben.

Mit den -gottseidank nur selten verfügbaren- A-zu-A Kabeln kann man PCs 
kaputt machen (einige Äpfel vertragen die 5V nicht im ausgeschalteten 
Zustand).

von Michael R. (michael1992)


Lesenswert?

Hallo Jim,

Mir ist nicht ganz klar, wie das den PC beschädigen kann, kannst du das 
weiter erläutern?

von Peter Z. (hangloose)


Lesenswert?

Hier findest du den Butterfly Bootloader --> butterfly_boot_rev04.hex
http://uglyduck.ath.cx/PDF/Atmel/AVRButterfly/

Hier noch Infos zum Bootloader
https://www.microchip.com/webdoc/avrbutterfly/avrbutterfly.Bootloader.html

Hier noch infos zum Butterfly
http://www.microchip.com/DevelopmentTools/ProductDetails.aspx?PartNO=ATAVRBFLY

: Bearbeitet durch User
von Gerhard (Gast)


Lesenswert?

Hallo Michael,

wo hast Du eigenlich die Abblockkondensatoren für die 12V und 5V 
Versorgungsspannungen gelassen? Sie gehören an alle 
Versorgungseingänge aller ICs. Vor allem auch an IC1!

Gerhard

von Michael R. (michael1992)


Lesenswert?

Vielen Dank Peter Z., das hilft mir schon enorm weiter. Ich gehe richtig 
in der Annahme, dass nach Aufspielen des Bootloaders die weitere 
Programmierung problemlos über die UART/USART Schnittstelle 
funktionieren sollte, richtig?

@Gerhard: Dies ist mir auch bereits aufgefallen, leider aber erst 
nachdem die Platine bereits bestellt wurde. Ich werde mir darüber 
Gedanken machen, ob sich das nachträglich noch korrigieren lässt, bin da 
allerdings skeptisch. Danke für den Kommentar.

von georg (Gast)


Lesenswert?

Michael R. schrieb:
> aber noch nicht
> herausgefunden woher ich den Bootloader bekomme. Ich werde dahingehend
> weiter recherchieren, danke.

Das ist derzeit irrelevant, denn den Bootloader müsstest du ja auch erst 
ins Flash programmieren, was du ja nicht kannst. Ist so wie ein 
Henne-Ei-Problem mit unfruchtbaren Hühnern. Ein Bootloader ist nur 
sinnvoll, wenn er schon vor dem Bestücken programmiert ist und auch 
nicht versehentlicht gelöscht wird.

Georg

von Harald (Gast)


Lesenswert?

Wo du jetzt kurz vor der Programmerstellung stehst: Hast du einen Logic 
Analyzer? Wenn nein würde ich dir dringend empfehlen, einen solchen zu 
besorgen. Kostet nur ca. 10€ und wird dir unglaublich nützlich sein. 
Software gibt es kostenlos in Form von Sigrok.
Scope kann für die Begutachtung der Analogsignale auch nicht schaden.

von Michael R. (michael1992)


Lesenswert?

Danka Harald, ich werde mir das ganze anschauen.

@Georg: Habe ich da etwas missverstanden? Ich dachte über ISP (SPI) kann 
ich eben den Bootloader auf den Mikrocontroller laden und dann mit 
definierter USART Schnittstelle über den FT232R meinem Mikrocontroller 
Befehle erteilen.

von Harald (Gast)


Lesenswert?

Fürs Programmieren des Bootloaders brauchst du MISO MOSI CLK RESET und 
einen geeigneten Programmer. Dann kannst du den Bootloader aufspielen 
und danach brauchst du den Programmer dann nicht mehr.

von georg (Gast)


Lesenswert?

Michael R. schrieb:
> Ich dachte über ISP (SPI) kann
> ich eben den Bootloader auf den Mikrocontroller laden und dann mit
> definierter USART Schnittstelle über den FT232R meinem Mikrocontroller
> Befehle erteilen.

Wenn du unter "Befehle erteilen" dein Programm verstehst, das ist doch 
2mal das gleiche. Du kannst mit ISP den Bootloader ins Flash 
programmieren, und genauso die von dir entwickelte Software.

Unter Befehle verstehe ICH was anderes, z.B. zu sagen "fahre mit dem 
Motor an die Position XY", das ist aber eine ganz andere Baustelle und 
hat auch mit dem Bootloader absolut nichts zu tun.

Georg

von Michael R. (michael1992)


Lesenswert?

Die Platine soll in der Lage sein 32 varibale Spannung auszugeben. 
Welche Spannung welcher DAC ausgeben soll möchte ich dem Mikrocontroller 
über den USB Port mitteilen können. Also einfache Befehle in der Art 
"Ändere den Registereintrag im DAC auf diesen Bitwert", damit er die 
passende Spannung ausgibt.

Der Bootloader hat mit der eigentlichen Funktion nichts zu tun, er soll 
mir nur ermöglichen diese zu realisieren.

von Harald (Gast)


Lesenswert?

Äh, ja, die Schnittstelle hat eine Doppelfunktion, Programm aufspielen 
wenn Bootloader aktiv und im Normalbetrieb „Befehle“ entgegennehmen.

von Harald (Gast)


Lesenswert?

Bis wann muss das fertig sein? Wenn ich die Fragen so sehe würde ich dir 
dringend zur Arduino-Portierung raten. Ein erfahrener Programmierer kann 
das natürlich locker auch ohne Arduino binnen weniger Stunden 
zusammenklöppeln.

Bei Arduino sehe ich einfach den Vorteil, dass du eines der zahlreichen 
ähnlichen Programme aus dem Netz abwandeln könntest.

von Michael R. (michael1992)


Lesenswert?

Danke Harald, ich war durch Georgs Aussage etwas verwirrt. Anscheinend 
habe ich ihn missverstanden. Du hast mir wirklich sehr geholfen. Ich 
habe nun zumindest die Hoffnung, dass die Platine vielleicht doch noch 
funktionieren könnte.

Programmer und Logic Analyzer sind hoffentlich am Lehrstuhl vorhanden, 
so dass ich direkt am Montag Testen kann, ob es funktioniert.

Allerdings hätte ich noch die Frage, wie ich das File 
butterfly_boot_rev04.hex auf den Mikrocontroller kriege? Muss ich ein 
Programm schreiben, das das hex-File einbindet und dann dieses mit dem 
AVR Studio 4 in den Flash speicher laden?

von Michael R. (michael1992)


Lesenswert?

Meine Deadline endet in einem Monat.

Ich würde es gerne portieren, aber ich weiß nicht wie das gehen soll. 
Meine bisherige Suche dazu hat leider nichts ergeben.

von georg (Gast)


Lesenswert?

Michael R. schrieb:
> ich war durch Georgs Aussage etwas verwirrt

So allmählich kritallisiert sich heraus, dass es um 3 Vorgänge geht:

1. Bootloader ins Flash programmieren. Das geht natürlich nur mit den 
Programmierschnittstellen, nicht mit dem UART.

2A. Mit dem Bootloader die Software ins Flash bringen.

2B. Die Software mit ISP ins Flash programmieren - dann brauchst du 
garkeinen Bootloader.

3. Wenn die Software läuft, dem System über UART Befehle senden. Das ist 
ganz allein dein Problem, das musst du in der Software halt so 
programmieren.

Michael R. schrieb:
> Allerdings hätte ich noch die Frage, wie ich das File
> butterfly_boot_rev04.hex auf den Mikrocontroller kriege

Das hört sich aber so an, als ob du es doch nicht begriffen hast. Dann 
wirst du den Begriff Deadline vielleicht wörtlich nehmen müssen. Aber 
niemals aufgeben: du hast keine Chnace, also nutze sie.

Georg

von Michael R. (michael1992)


Lesenswert?

Ja im Prinzip habe ich mir das so gedacht, ob ich das allerdings 
bewerkstelligen kann ist eine ganz andere Frage.

georg schrieb:
>
> Das hört sich aber so an, als ob du es doch nicht begriffen hast. Dann
> wirst du den Begriff Deadline vielleicht wörtlich nehmen müssen. Aber
> niemals aufgeben: du hast keine Chnace, also nutze sie.

Genau das befürchte ich eben auch, aber danke dass du es nochmals 
erwähnst.

von Peter Z. (hangloose)


Lesenswert?

Du brauchst auf jeden Fall erstmal einen ISP Programmer.
Mit diesem spielst du dann den Bootloader mittels AVR Studio ins Flash.
Stellst die richtigen Fuses ein. Danach kannst du auch mit
dem AVR Studio über den Bootloader dein Programm flashen.
--> wie schon verlinkt... 
https://www.microchip.com/webdoc/avrbutterfly/avrbutterfly.Bootloader.html

Nimm am besten das alte AVR Studio AVR Studio 4.19.730
http://www.hpinfotech.ro/cvavr_download.html

: Bearbeitet durch User
von Michael R. (michael1992)


Lesenswert?

Hallo Peter,

Vielen Dank für die Hilfe. Ich kann das ganze leider erst am Montag 
testen und werde mich dann evtl. wieder zu Fragen melden.

Ich würde mich sehr freuen, wenn ihr mir weiterhin helft, falls ich auf 
Probleme stoße.

Unabhängig davon aber aufjedenfall schonmal vielen Danke an alle. Ich 
habe nun zumindest die Hoffnung, dass ich die Platine vielleicht noch 
fertig stellen kann.

Grüße
Michael

von Frank L. (hermastersvoice)


Lesenswert?

ich glaube eher die Hoffnung trügt. Was du bisher an Wissensstand 
preisgegeben hast, würdest du das Ding auch in einem Jahr noch nicht zum 
laufen gebracht haben. Da fehlen sämtliche Grundlagen und Die kommen 
nicht innerhalb eines Monats so nebenbei angeschwebt. Da schonmal die 
Hardware ungeeignet ist, wirst du auch keine Software zum rennen 
bringen. Bewirb dich also lieber irgendwo als Gärtner oder Schreiner. 
Bloss nix mit Strom.

von Harald (Gast)


Lesenswert?

Michael R. schrieb:
> Ich kann das ganze leider erst am Montag
> testen und werde mich dann evtl. wieder zu Fragen melden.

> Programmer und Logic Analyzer sind hoffentlich am
> Lehrstuhl vorhanden, so dass ich direkt am Montag
> Testen kann, ob es funktioniert.

Wäre ich an deiner Stelle würde ich angesichts der Deadline das Zeug 
nach Hause holen bzw. einen Nachbau aufbauen (und wenn es nur der 
Controller ist, das reicht doch schon). Wenn du darauf baust, alles in 
den normalen Business-Hours fertig zu bekommen dann wird das garantiert 
nichts.

Du brauchst nur einen einfachen Programmer für wenige Euros, einen Logic 
Analyzer für 10€ und ein paar Bauteile. Dann kannst du die Zeit sinnvoll 
nutzen.

Du kannst dir hier alles Stück für Stück nachfragen, wobei du nur den 
Spießrutenlauf durch die Miesepeter ertragen musst.

Das ist zu schaffen, allerdings musst du Vollgas geben.

Brauchst du Beschaffungsbinweise?

von Michael R. (michael1992)


Lesenswert?

Hallo Harald,

Ich werde mich natürlich am Montag direkt darum kümmern, dass ich auch 
Zuhause weiterarbeiten kann, nur dieses Wochenende geht das nicht.

Hast du Vorschläge welchen Programmer und Logic Analyser?

von Harald (Gast)


Lesenswert?

Was du auch noch machen kannst: Du schreibst den Code auf einem Arduino 
(z.B. Nano, Clones sind ab 1€ erhältlich) und lernst erstmal wie das 
überhaupt geht mit SPI usw. Die paar Leitungen zum Board kannst du 
fädeln. Vorteil: Du fängst SOFORT auf einer funktionierenden Plattform 
an.
Die Portierung auf den 169 kannst du nach einer Lernkurve immer noch 
machen, das wird ja kein komplett neues Programm. Höchstens ein paar 
Signale musst du neu definieren, Zeitaufwand vielleicht ne Stunde.

Selbst wenn du die Portierung am Ende nicht hinbekommst wird dir keiner 
den Kopf abreißen. Hauptsache die Software läuft.

von Harald (Gast)


Lesenswert?


von Michael R. (michael1992)


Lesenswert?

Das ist sehr ermutigend, danke das du dir soviel Zeit nimmst.

Der Vorschlag mit dem Arduino ist gut, das werde ich vermutlich dann 
ausprobieren.

von Harald (Gast)


Lesenswert?

Trockenschwimmen kannst du auch schon, Arduino installieren und google 
mal nach „Arduino SPI DAC“, da kommen so Ergebnisse wie diese hier:
https://www.allaboutcircuits.com/projects/arduino-spi-library-ltc1286-dac714/

Sind zwar nicht genau die DACs, aber das Prinzip ist immer sehr ähnlich.

von Michael R. (michael1992)


Lesenswert?

Die Programmierung mit der Arduino IDE wäre kein Problem, aber dafür 
müsste ich den ATMEGA169 portieren und ich glaube, das ist noch 
schwieriger als es direkt in C zu schreiben, oder?

von Harald (Gast)


Lesenswert?

Michael R. schrieb:
> ich glaube, das ist noch schwieriger

Ein ganz klein wenig musst du aber auch mitmachen, google doch mal 
selbst und stellt gezielte Fragen. Jedenfalls habe ich nach 1 Minute das 
hier gefunden:

http://www.instructables.com/id/Arduino-on-all-sorts-of-Atmels/

von Michael R. (michael1992)


Lesenswert?

Sorry stand echt auf dem Schlauch. Ok der Atmega169 wird angezeigt, ob 
das Ganze funktioniert hat wird sich aber wohl erst am Montag zeigen, 
danke.

von Harald (Gast)


Lesenswert?

Ob das alles fertig ist weiß ich nicht, ich bin kein Arduino-Experte. 
Aber schauen kann man ja.

Wenn Du das anstelle Arduino in nativen C-Code aufbauen willst kommen 
auf dich zusätzliche Baustellen zu. Zusätzlich zum Kernprogramm darfst 
Du dann nämlich die Schnittstellen in Betrieb nehmen, also das, was bei 
Arduino schon fertig ist. Was bei SPI recht einfach ist, ist beim UART 
schon nicht mehr so trivial. Klar gibt es fertigen Code im Netz, aber 
auch der will im konkreten Szenario erstmal in Betrieb genommen werden. 
Es ist eher selten, dass man etwas findet das direkt passt.

Wenn ich das Layout so sehe, wird die CPU sowieso nicht euer einziges 
Problem sein. Da kann so einige Schmankerl erkennen. Rein vom Zeitplan 
her könnte man sich so die Portierung auf den 169er mit folgender 
Vorgehensweise schenken:
- Jetzige Platine mit Arduino verbinden und SW in Betrieb nehmen
- Hardware debuggen
- USB Buchse tauschen (fertige CAD-Libs und kostenlose Teile gibt es 
z.B. bei we-online.com)
- Neue CPU eindesignen, am besten gleich die passende Arduino-CPU (das 
meiste aus dem Arudino-Design habt ihr ja eh schon drauf (FTDI usw.))
- Platine neu bestellen per DHL von pcbway.com, allpcb.com oder 
jlcpcb.com. Dabei natürlich DHL shipping wählen. Die Nummer kostet euch 
ca. 20 Euro, durch DHL Express dauert es INSGESAMT( Fertigung und 
Versand) 1 Woche, bis die hier ist.
- Neu bestücken und Restarbeiten erledigen.

von Michael R. (michael1992)


Lesenswert?

Harald schrieb:
> Wenn Du das anstelle Arduino in nativen C-Code aufbauen willst kommen
> auf dich zusätzliche Baustellen zu. Zusätzlich zum Kernprogramm darfst
> Du dann nämlich die Schnittstellen in Betrieb nehmen, also das, was bei
> Arduino schon fertig ist. Was bei SPI recht einfach ist, ist beim UART
> schon nicht mehr so trivial. Klar gibt es fertigen Code im Netz, aber
> auch der will im konkreten Szenario erstmal in Betrieb genommen werden.
> Es ist eher selten, dass man etwas findet das direkt passt.

Richtig, daher hoffe ich dass die Portierung funktioniert. Natürlich 
zusätzlich zum Aufspielen des Bootloaders, sonst geht sowieso nichts.

> Wenn ich das Layout so sehe, wird die CPU sowieso nicht euer einziges
> Problem sein. Da kann so einige Schmankerl erkennen.

Könntest du das genauer erläutern woran es scheitern könnte?

Die Platine besteht ja im Prinzip nur aus der CPU, den DACs und der 
Spannungsversorgung. Und diese kann auch über 2 getrennte Anschlüsse 
realisieren, falls sie nicht funktionieren sollte.

> Rein vom Zeitplanher könnte man sich so die Portierung auf den 169er mit > 
folgender Vorgehensweise schenken:

Es könnte zeitlich knapp hinhauen, aber ist etwas riskant sich darauf zu 
verlassen und die Frage ist ob mein Betreuer dem zustimmt. Daher würde 
ich die Portierung als Lösung bevorzugen.

von Harald (Gast)


Lesenswert?

Michael R. schrieb:
> Könntest du das genauer erläutern woran es scheitern könnte?

- Die Verteilung und Abstände der Kondensatoren dürften die mindestens 
die Performance der 12bit Wandler schmälern.
- Der Ausgangskreis des Würth-Übertragers ist sehr spärlich 
dimensioniert und etwas eigenartig direkt an die DAC angekoppelt.
- IC1  12V-auf-5V hat überhaupt keine Abblockkondensatoren

von Michael R. (michael1992)


Lesenswert?

Harald schrieb:
> - Die Verteilung und Abstände der Kondensatoren dürften die mindestens
> die Performance der 12bit Wandler schmälern.

Damit habe ich ehrlich gesagt keine Erfahrungswerte, sehr gut möglich.

> - Der Ausgangskreis des Würth-Übertragers ist sehr spärlich
> dimensioniert und etwas eigenartig direkt an die DAC angekoppelt.

Über eine der Stiftleisten kann die Versorgungsspannung des DACs auch 
notfalls mit einem extra Netzteil realisiert werden.

> - IC1  12V-auf-5V hat überhaupt keine Abblockkondensatoren

Das ist vollkommen richtig. Ich weiß leider nicht wie groß der Einfluss 
davon ist.

Danke für die Ausführung. Du hast recht, es gibt gewisses Fehlerquellen. 
Ich werde das nochmal überdenken.

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
Noch kein Account? Hier anmelden.