Steckbrett mit µController-gestütztem Spannungsregler

OP Persönliche Seite #3118734
Lesenswert?

Hallo zusammen!

Ich möchte mal mein Steckbrett vorstellen.

Das Label des GL-36 von "K&H Products" habe ich entfernt und dort mein 
Kühlkörper eingesetzt. Passt wunderbar (29mm);

Die Bauteile
-7505 für die Steuerung
-LT1085 (ähnlich LM350) als variabler Spannungsregler
-BCD-to-Dezimal Converter HCF4028 für pinsparende ansteuerung des 
LED-Balkens
-µC ATTiny26L
-digitalPoti MCP4151
-Eingangsdiode zum Verpolschutz
-Diode zum Schutz vor anlegen von Fremdspannung
-200 Ohm Last für den LT1085
-1/4 Spannungsteiler mit 5,6V Z-Diode für Senseeingang
-Taster
-ein 12V Netzteil mit gewünschter Leistung
-und den Rest den ich vergessen habe

Da ich kein FlipFlop hatte, habe ich mir diese Entprellung augedacht:
Artikel hier: Entprellung: Wechselschalter ohne Flip-Flop
Thread hier: Beitrag "Wechselschalter-Entprellung ohne FlipFlop"


Funktion
Nach dem Einschalten kann man wie in Front_Auswahl.jpg zu sehen ist 
durch Tastendruck die Spannung auswählen (minimal Spannung 1,6V liegt 
an). Nach langem Tastendruck wird dann die gewünschte Spannung 
ausgegeben. Danach kann in meiner derzeitigen Version die Spannung nicht 
mehr verändert werden.
Durch die Schutzdiode gibt es einen stromabhängigen Spannungsfall den 
ich mit einem P-Regler mit boolaschen D-Anteil kompensiere.

Weiterentwicklung
Ideen für die Weiterentwicklung sind
-abänderbare Spannung wärend des Betriebes
-software oder hardware Sicherung für >3A
-an den restlichen 2 Bananenbuchsen +-12V aus einem DC/DC Converter
-Sense erweitern damit auch die GND-Leitung rausgemessen wird
-MOS-Fet zur Abschaltung der Spannung

Ich freu mich über Rückmeldungen!

Gruß Steven
Angehängte Dateien:
#3189521
Lesenswert?

Grins, ich bin nur in diesem Thread gelandet, weil ich mich grade mit 
dem MCP4151 beschäftige und mal schauen wollte, ob es eine Library für 
AVR-GCC gibt.

Dass jemand auf die Idee kommt, sein Steckbrett so umzubauen, finde ich 
ideenreich, lustig und kurios :-). Dass keine Kommentare dazu kamen, 
liegt vermutlich daran, dass du keinen Schaltplan mitgeliefert hast und 
man daher die Funktion nicht so wirklich nachvollziehen kann.

Da du dein Digital-Poti vermutlich mit dem ATtiny steuerst, frage ich 
mich grade, ob du die Routinen selbst geschrieben hast, oder irgendwo 
eine Library aufgetrieben hast :).
OP Persönliche Seite #3189797
Lesenswert?

Volker U. schrieb:
> keinen Schaltplan mitgeliefert

Daran kann es wohl liegen, stimmt. Es existiert auch noch keiner.
Wenn tatsächlich Bedarf besteht würde ich mal kurz zu Papier und 
Bleistift greifen.

Den Poti hab ich einfach per SPI angesteuert. Die Routinen sind nur 
zusammengehämmert, weil ich nicht so viel Zeit investieren wollte.

Im Anhang mein Code. Zum Teil können auch Plagiate vorkommen :)


Gruß Steven
Angehängte Dateien:
#3190212
Lesenswert?

Dankeschön für den Code! Du simulierst das SPI also einfach auf 
beliebigen Portpins und hämmerst die Bits einfach nur durch, ohne 
Rücksicht auf Wartezeiten oder Frequenzen ;-). Ist ja auch kein Problem, 
da der Baustein bis zu 10 MHz Takt verträgt. Ich dachte allerdings 
daran, den SDI/SDO bidirektional zu nutzen, also z.B. auch die Register 
des Potis auszulesen. Bisher habe ich dazu nichts im Netz gefunden. Da 
muss ich mich wohl mal selbst dran machen.

Steven () schrieb:
> Wenn tatsächlich Bedarf besteht würde ich mal kurz zu Papier und
> Bleistift greifen.

Interessant wär's schon! Meine Empfehlung: Mal Eagle runterladen 
(http://www.cadsoft.de/download-eagle/) und damit den Schaltplan 
erstellen, dann brauchst du kein Radiergummi mehr ;).

Grüßle, Volker
(Firma: matzetronics) #3190250
Lesenswert?

Volker U. schrieb:
> Ich dachte allerdings
> daran, den SDI/SDO bidirektional zu nutzen, also z.B. auch die Register
> des Potis auszulesen.

In der 'spi_io' Routine hat Ovular das schon vergesehen. Gut, ich würde 
es nicht in das Byte schieben, das ich als Ausgang nehme, aber YMMD.
1
uint8_t spi_io( uint8_t val )
2
{
3
  uint8_t i;
4

5
  for( i = 8; i; i-- ){
6
    SPI_MOSI = 0;
7
    if( val & 0x80 )
8
    SPI_MOSI = 1;
9
    val <<= 1;
10
    if( SPI_MISO_PIN ) // MISO lesen und in val schieben
11
    val += 1;
12
    SPI_CLK = 0;
13
    SPI_CLK = 1;
14
  }
15
  return val;    // in val ist der gelesene Wert vom SPI Slave
16
}
#3190686
Lesenswert?

Matthias Sch. schrieb:
> In der 'spi_io' Routine hat Ovular das schon vergesehen.

Aber er benutzt für MOSI und MISO zwei verschiedene Pins. Beim 4151 
liegt beides aber auf dem selben Pin! Okay, wenn man die Schaltung im 
Handbuch mit dem Widerstand benutzt (auf Seite 41, FIGURE 6-1, zweite 
Schaltung "Host Controller Hardware SPI"), könnte das gehen. Aber da ich 
Pins beim Controller sparen will und muss, würde ich für beides gern den 
selben Pin nehmen. D.h. er muss nach dem Senden der ersten 6 Bit des 
Command-Bytes von Ausgang auf Eingang umgeschaltet werden. Hinzu kommt, 
dass beim Empfangen nur noch mit 250 kHz getaktet werden darf, weshalb 
also Wartezyklen richtiger Länge einzufügen sind.

Steven () schrieb:
> Eagle hab ich, aber bis ich da alle Bauteile gefunden oder gezeichnet
> hab, mal ich die notwendigen Sachen kurz aufs Papier...

Och, Eagle hat doch soooo viele Bauteile in der Bibliothek! Und die 
paar, die fehlen, findet man meist zum Runterladen auf der Library-Seite 
von Cadsoft. Der Vorteil ist auch, dass man gleich vom Schaltplan aus 
das Layout starten und die Platine produzieren kann. Dann muss man nicht 
alles mit Lochraster und fliegender Verdrahtung aufbauen ;).

Gruß, Volker
#3190697
Lesenswert?

Ohne mir jetzt die Umsetzung im Detail angeschaut zu haben, gefällt mir 
diese Idee wirklich gut.

Du brauchst für kleinere Tests nicht erst ein Labornetzteil o.ä. 
aufstellen und hast alles "beieinander" auf dem Board.

Kommt von unten noch irgendwie eine Platte drauf? Ich könnte mir 
vorstellen, dass du andernfalls zu rasch mal hängen bleibst und die die 
kleinen Patchdrähte herausreißt...
OP Persönliche Seite #3190791
Lesenswert?

Bezüglich Eagle: Mal sehen was schneller geht....

@Sesk
Danke!
Eine Platte kommt bei mir erstmal nicht drauf, aber Platz dafür ist da.

...
Ich hab auch ein Voltage- bzw. Logic-Probe mit LED-Balken entwickelt, 
welches auf das Steckbrett passt. Es ersetzt bei mir das Oszi. Kann 
schnelle Flanken erkennen und visualisieren und kann Tristate-Zustände 
erkennen. Spannung messen in 0,5V Schritten geht auch. Hierzu hab ich 
aber noch kein Tread aufgemacht. Auch kein Schaltplan :)

Gruß
Steven
#3190909
Lesenswert?

Hihi, ich glaube, wir sind inzwischen alle schon verwöhnt. Deine Ansätze 
erinnern mich an meine Anfangszeit vor 30-40 Jahren, als Oszilloskope 
noch schier unerschwinglich waren. Ich habe hier auch noch ein altes 
analog/digital Kombi-Oszilloskop mit 20 MHz rumstehen, das so groß ist 
wie ein Reisekoffer und mal weit über 2000 Mark gekostet hat. Ab und zu 
fällt noch ein liebevoller Blick darauf, aber benutzen tu ich es nicht 
mehr. Und heute kriegt man bei Ebay ja auch ordentliche, gebrauchte 
Geräte schon für rund 50 Euro.

Aber meine Anfänge im Bereich Oszillografie lagen bei einem Philips 
Elektronik-Baukasten EE 2007/2008 
(http://www.radiomuseum.org/r/philips_elektronik_experimentier_3.html), 
mit dem man im letzten Ausbaustadium einen voll funktionsfähigen 
Schwarz/Weiß-Fernseher mit Ton aufbauen konnte. Hat auch einwandfrei 
funktioniert. Würde er heute leider nicht mehr, weil es kein analoges 
Fernsehen mehr gibt :-(. Das war mein erstes, selbst gebautes 
Oszilloskop.

Da die Teile mittlerweile im Radiomuseum liegen, sollte ich die Kästen 
wohl besser mal aufheben :).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren