PIC – Microcontroller, Minimalversion für Steuerzwecke

Begonnen von picass, 02.03.2022, 17:47:28 CET

Vorheriges Thema - Nächstes Thema

vloki

Dir ist wohl nicht klar, dass die Pins A0,1,3 nicht verfügbar sind,
solange die IDE sie als ICSPDAT, ICSPCLK und Vpp verwendet ;-)

(Im endgültigen Programm dann natürlich schon - also wenn das PICkit dann weg ist)
MPLABX  XC8  KiCAD

picass

Nur 'ne ganz kurze Zwischenmeldung: der PIC12F1840 hat seine Arbeit aufgenommen! Noch nicht ganz wie erwartet, aber immerhinque! Der "Rest" müsste zu schaffen sein! Und gettz kommt was voll Schäbbiges: die Aufklärung gibt es - aus Zeitgründen - erst später!
 :)  ;)  ;D
Grüße, picass

picass

#22
Der ,,Zwölfer" picct! :)
Zwar zu schnell, statt wie sein größerer Pendant mit ca. 0,5 sec Periodendauer jetzt mit 80 Herz, aber lass ma....
Bei der vormittags angekündigten Grundlagenforschung blieb keine Zeile des Micro-Programms nicht erforscht, die Datenblätter rauschten. Dann Komplett-Überarbeitung des Progs, allein, es half nichts, auch nicht die Änderung der Port-Nutzung: anstelle von A0 und A1 nun nur eine LED an A2. Die leuchtete zwar sofort los, was auch zu erwarten war,  denn bei Messungen vorher führte dieser Port im Gegensatz zu allen anderen eine ,,1", aber halt konstant, nix Blinken.
Dann als letztes Mittel etwas, das mir als irgendwie unsinnig erschien, und das brachte die Mutter aller Fehler/Irrtümer beim Assembler-Programmieren ins Licht: die Port-Initialisierung!
Vor JEDEM Befehl, der mit dem Port was zu tun haben könnte, stand in dem Exambel des Microchip-Datenblattes das Wörtchen ,,BANKSEL" ! Das also stumpf abgetippt, und schon ging das Piccen los! Da war es wieder, was ich anfangs mit meinem Wunsch nach ,,modern" vermeiden wollte, das zumindest für mich nicht durchsichtige Hantieren mit der Banken-Auswahl!

Ich lass das Abgetippte jetzt einfach mal so im Prog stehen, weil ich mich aufs Freuen konzentrieren möchte. Die zu hohe Geschwindigkeit werde ich ihm noch abgewöhnen, aber danach kann es an die praktische Nutzung gehen.
Und wenn man schon mal Glück hat, kommt noch weiteres hinzu: Aisler hat heute geliefert und die exakt passenden Platinchen – siehe Foto – sind zum exakt passenden Zeitpunkt eingetroffen. Es fehlt nur so'n Mini-Elko, aber das wird schon, sonst kommt da anfangs ein Tantal rein.
Bin jetzt erst mal im Stand des Glücklichen, weil das angepeilte Ziel doch erreicht werden kann. Mit diesem Kleinen habe ich viel vor, die erste Anwendung – der Ersatz von Logik-ICs – wartet schon.

Vloki, so wie du das darstellst, war mir nichts klar. Nach meiner Praxis beginnt der jeweils in der Fassung des PICkit Low Demo Boards steckende Programmierling sofort mit seiner Arbeit, sobald der Debugger die Daten via den PICkit 3-Progadapter übertragen hat. Sobald das Geblinker seiner vielen LEDs aufhört und letztlich die Status-LED noch leicht grün blinkt, legt der PIC mit seiner Abarbeitung los. War auch gestern beim PIC18F14K22 und seiner Portbelegung mit A0 und A1 der Fall. Der Durchbruch heute kam, als zuletzt als einzige Änderung die Port-Initialisierung abgetippt wurde. Da fiel mir nach der ersten Sekunde der Enttäuschung, weil wieder nur die LED leuchtete, auf, dass diese weniger hell leuchtete als vorher, und da  fiel der Groschen: den Oszi ran geschaltet, aber schon vorher war klar, dass die LED sehr schnell blinkte.
Danke für den Beistand, nu' kann endlich die ,,normale" Arbeit beginnen.
Grüße, picass

Volker

Beim 14k22 kannst du A0 im Debugmode blinken lassen?
Bzw. geht das auch beim 1820, wenn du wirklich im DEBUG bist?

PICkel

Zitatdas Wörtchen ,,BANKSEL"

Hallo picass,
beim 16F84 konnte mit den Befehlen der gesamte kleine Adressraum angesprochen werden.
PICs mit mehr Speicher und 14-Bit Befehlen haben einen in 2k-Bänke segmentierten Speicher, der mittels BANK SEL(ection) adressiert werden muss.
Die PIC18 (16-Bit- Befehle) haben einen linear adressierbaren Speicher und benötigen diesen Befehl nicht.
Deshalb brauchtest Du beim 16F84 und brauchst beim 18F... diesen Befehl nicht.

GuggsDu bitte auch bei Sprut: https://www.sprut.de/electronic/pic/grund/adress.htm

MfG
Johannes (alias PICkel)




picass

#25
Möglicherweise habe ich mich zwecks des Blinkens im Debug-Modus nicht korrekt formuliert. Deshalb gebe ich mir jetzt mehr Mühe und bebilder das auch. Wenn ich ein Prog geschrieben habe, dann werfe ich den Schalter 1 an, den "Hammer und Besen" = clean and build projekt. Wenn das dann grünes Licht gegeben hat, dann betätige ich Schalter zwei: make and program device. Dann beginnen die "Active" und "Status"-LEDs im PICkit 3-Programmer zu blinken, ein Warnhinweis erscheint, dass man doch bitte beachten möge, dass es die PICs in 3,3 V und in 5 V Versionen gibt, nach dessen Bestätigung (o.k.) blinkert es wieder, dann leuchtet die Status-LED grün, zuckt nur leicht dabei und der PIC in der Fassung tut dann das, war er für richtig hält, und zwar sofort. Externe Power ist aber nötig.

Das Bild zeigt den nunmehr auch still vor sich hin plinkernden Zwölfer, jetzt auch mit 0,5 Hz. Es war auch in diesem Fall wie bei der vorher nicht korrekten Initialisierung des Port's B, ähm, doch A: auch vor dem Befüllen des OSCCON-Register im Programm muss das Wörtchen "banksel OSCCON" voran gestellt werden, sonst wird das O-Reg, bzw. das Befüllen ignoriert. Und weil dieses O-Reg für die Takt-Einstellung verantwortlich zeichnet, hört der PIC erst dann auf den gewünschten Takt.
Was ein Spass, dauernd vor alle möglichen Befehle so'ne Voranstellung auszuführen. Spricht nicht dafür, dass die MPLAB-Umgebung so clever ist, das selbst zu merken..... sag' ich mal so als "Verbraucher".
Mit dem Bänkewechseln muss ich mich mal heute Nachmittag beschäftigen.... falls meine Frau mich lässt. Die möchte mich nicht bei Sprut, sondern im Garten am Rackern sehen! :(
Grüße, Bernd

picass

#26
Nachdem das Timern des PIC12F1840 nun auch möglich wurde, ist die niedliche Platine für Steuerzwecke nochmal überarbeitet worden. Hauptsächlich wurde sie nun wirklich von allem, was nicht existentiell war, befreit und ist damit wirklich winzig geworden. Aber genau das war das Ziel. Damit bekommen die Jungs und Mädels bei Aisler wieder etwas Arbeit, denn ein kleiner Vorrat kann nicht schaden.
Im Schaltbild ist leider immer noch das Symbol für den LDO-Regler falsch. Es ist aber nur das Symbol falsch, denn der echte SMD-Laderegler lässt sich auf der Platine korrekt in seine vorgegebenen Fußpunkte einlöten und die Schaltung funktioniert auf diesem Board bereits in mehreren Versionen. Mal sehen, ob sich das "richtige" Symbol nicht noch nachtragen lässt.
Grüße, picass

picass

Ein Ergebnis der Erstellung von kleinen Steuerplatinen: der PIC18F14K22 hat nun eine kleine, gelbe Sortier-Schachtel als Gehäuse spendiert bekommen. Müsste für die gesicherte Einsatzumgebung in warmen Keller aber reichen. Neben dem Gelb-PIC parkt das Netzteil. Für so was nutze ich gerne ehemalige Gehäuse von defekten PC-Netzteilen. Innen drin sind gleich zwei NTs installiert, eines für den PIC und ein zweites für die Soundschaltung, welche der Modelleisenbahn entnommen wurde (siehe Fred: Maulwurf-Bekämpfung). Beide benötigen unterschiedliche Spannungen, und damit möglichst keine gegenseitige Störung auftritt dann halt gleich 2 NTs. Der PIC erzeugt nun im dauernden Wechsel je eine Arbeitsphase von 10 min, gefolgt von einer Pause. Die erste ist 10 min lang, die zweite 20, die dritte dann 30 min.
Grüße picass

Schnellantwort

Achtung: In diesem Thema wurde seit 120 Tagen nichts mehr geschrieben.
Wenn Sie nicht absolut sicher sind, dass Sie hier antworten möchten, starten Sie ein neues Thema.

Name:
Verifizierung:
Bitte lassen Sie dieses Feld leer:
Geben Sie die Buchstaben aus dem Bild ein
Buchstaben anhören / Neues Bild laden

Geben Sie die Buchstaben aus dem Bild ein:

Tastenkürzel: Alt+S Beitrag schreiben oder Alt+P für Vorschau

Ähnliche Themen (5)