Camping Interface - fpc, arduino, LIN- Bus

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.

Re: Camping Interface - fpc, arduino, LIN- Bus

Beitragvon af0815 » 26. Jun 2019, 18:35 Re: Camping Interface - fpc, arduino, LIN- Bus

Timm Thaler hat geschrieben:
af0815 hat geschrieben:Sondern der Arduino hat nur einen UART

Die max. 19200 Baud für LIN schafft ein ATmega mit 16MHz locker auch mit Software-Uart. Und davon kannst Du dann 2-3-4 Stück haben.

1. Arduino als Hardware-Plattform? Dann wäre das ein ATmega328 beim Arduino Uno. Mehr hat das mit Arduino nicht zu tun, vergiss den Rest den Du zu Arduino gelesen hast.
2. Arduino auch als Software-Plattform? Das wäre dann die Arduino-IDE, die Arduino-Libs und Programieren in Arduino-C. Hat dann aber mit Pascal nichts mehr zu tun.

Wenn Du nur 1. willst, dann brauchst Du Dir um "Timing", "Interrupt-Handling" wie es die Arduino-Software macht überhaupt keine Gedanken machen, denn: Die verwendest Du ja nicht. Wenn Du in Pascal programmierst, baust Du Dir Deine eigenen Timer, Interrupts, Port-Zugriffe, kannst Assembler einbinden. Dann programmiest Du nahe an der Hardware des ATmega328 und kannst das beliebig schnell machen.

Die Arduino-IDE brauchst Du nur noch, um das Programm physisch auf den ATmega328 zu schieben, oder Du nimmst AVRdude oder den AVR Burn-O-Mat.

Für den Einstieg die Arduino Uno Plattform, da ich mal so wenig wie möglich an der HW für den Einstieg basteln will. Für das schieben des Programes auf den ATmega328p brauch ich keine Arduino IDE, das geht mit dem AVRDude alleine schon mal sehr gut. Blinky in Pascal mit Interrupt geht schon mal recht gut.

Ich schaue mich gerade dannach um, wie man einen AVR überhaupt programmieren kann (in HW). Beim Arduiono Uno ist die Programmierschnittstelle schon dabei. Falls ich mal einen AVR ohne Platine verwende sollte ich auch kapieren wie das geht. Da arbeite ich mich gerade ein wenig ein.

Die Arduino IDE dient mir als Quelle, damit ich die das agnze System kapiere und wie man was lösen kann, dann mit Pascal. Ich habe schon länger nichts mit Prozessoren direkt gemacht, das letzte mal mit der Z80. Da kommt ich den Hexkode dafür direkt schon (großteils direkt) lesen :-)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3764
Registriert: 7. Jan 2007, 11:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon Timm Thaler » 26. Jun 2019, 20:19 Re: Camping Interface - fpc, arduino, LIN- Bus

af0815 hat geschrieben:Falls ich mal einen AVR ohne Platine verwende sollte ich auch kapieren wie das geht.


MISO, MOSI, SCK, Reset, VCC und GND. Darüber kannst Du dann programmieren, mit allem was digitale Signale rausgeben kann: Anderer Arduino, Raspberry Pi (aufpassen 3.3V), Parallelport oder serieller Port (original PC) mit Ponyprog, MKII-AVR-ISP von Atmel oder einer der 100 anderen Programmadapter.

Belegt werden dabei am ATmega nur MISO, MOSI und SCK. Reset muss sowieso meist freigehalten werden. Und den SPI kann man auch noch anderweitig verwenden (nRF24-Modul, Display oder anderes, was SPI kann).
Timm Thaler
 
Beiträge: 970
Registriert: 20. Mär 2016, 23:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon jayway » 26. Jun 2019, 22:24 Re: Camping Interface - fpc, arduino, LIN- Bus

af0815 hat geschrieben:Ich schaue mich gerade dannach um, wie man einen AVR überhaupt programmieren kann (in HW). Beim Arduiono Uno ist die Programmierschnittstelle schon dabei. Falls ich mal einen AVR ohne Platine verwende sollte ich auch kapieren wie das geht. Da arbeite ich mich gerade ein wenig ein.


Mit dem Uno bist du aber hardwaretechnisch schon mal auf der sicheren Seite, wenn es geometrisch kleiner sein soll, kannst du einen Arduino Nano verwenden. Da ist ebenfalls ein 328p drauf und mit ca. 2 x 4,5 cm ist der Nano auch schön handlich. Ich kenne einige Bastler, die den Nano als µC-Ersatz gleich in die Schaltung einbauen.

Wenn du wirklich mit dem nackten Controller arbeiten willst, ist das schon etwas aufwendiger, weil du natürlich die Dinge wie Spannungsversorgung, Taktung und Programmierschnittstelle selber bauen musst. (Im besten aller Fälle reicht es für die Blinky-LED zwar auch mal nur Programmer, LED und µc zu verheiraten (siehe Bild), aber das ist eben nur um mal Auszuprobieren, ob man mit Lazarus einem µC Leben einhauchen kann.
Sobald da Schaltung ran muss oder ein schneller und genauer Takt notwendig wird, funktioniert das nicht mehr (sicher)).

Außerdem kostet das ganze Drumherum mit Programmer, Bauteilen, Werkzeugen etc. auch etwas. Wenn man da als Hobby einsteigen will, ist es ok, für ab und an mal ein Projekt, wäre es sicher Overkill.

328p_Minimal.jpg
jayway
 
Beiträge: 15
Registriert: 13. Feb 2018, 11:38
Wohnort: Dresden
OS, Lazarus, FPC: Windows (L 2.0.3 FPC 3.2.0) | 
CPU-Target: 64Bit
Nach oben

Beitragvon af0815 » 27. Jun 2019, 06:33 Re: Camping Interface - fpc, arduino, LIN- Bus

Timm Thaler hat geschrieben:MISO, MOSI, SCK, Reset, VCC und GND.
Danke, das waren mal die Stichworte mit denen ich was anfange.

Hat wer einen Schaltungsvorschlag (oder günstige Quelle) für 24V -> 5V (bis zu 3A) Netzgerät ? Weil einige NG von mir aus dem Industriebereich kommen :-) Ja ich werde nicht davor zurückschrecken mir auch Prints machen zu lassen, aber alles zu seiner Zeit.

Auch beim Display bin ich schlauer :-) geworden. Ich glaube ich werde eines mit SPI verwenden, damit mir die anderen Pins nicht belegt werden. Mein jetziges Elgoo ist zwar putzig, brauch allerdings fast alle Pins :-( Ja ja die Lernkurve :oops:
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3764
Registriert: 7. Jan 2007, 11:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon jayway » 27. Jun 2019, 06:44 Re: Camping Interface - fpc, arduino, LIN- Bus

jayway
 
Beiträge: 15
Registriert: 13. Feb 2018, 11:38
Wohnort: Dresden
OS, Lazarus, FPC: Windows (L 2.0.3 FPC 3.2.0) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Timm Thaler » 27. Jun 2019, 14:40 Re: Camping Interface - fpc, arduino, LIN- Bus

af0815 hat geschrieben:Hat wer einen Schaltungsvorschlag (oder günstige Quelle) für 24V -> 5V (bis zu 3A) Netzgerät ?


Du meinst Spannungsregler? Wenn es nicht auf geringsten Stromverbrauch ankommt, nehme ich immer noch den guten alten LM2596, gibts auch als fertiges Board bei Amazon oder Ebay, bringt völlig ausreichende 2A, geht auch für Raspi. Alternativ irgendwo ausgebaute Traco-DC-DC-Wandler, mit dem Vorteil der galvanischen Trennung zwischen 24V und 5V/3.3V.

Für Akkubetrieb bin ich nach einigen Fehlschlägen mit schwer verfügbaren IC auf den MAX5033 gestoßen, der hat einen geringen Ruhestrom und kann bis 75V Eingangsspannung ab. Und vor allem, er hat Unterspannungsabschaltung, das heisst er entlädt die Batterie nicht weiter, wenn man ihn vergisst. Kann nur 500mA, aber das reicht für Mikrocontrollerschaltungen mit ein paar Sensoren locker aus.

Das Problem bei diesen Anforderungen - hohe Eingangsspannung, geringer Ruhestrom, Step-Down - ist, dass die ICs entweder schwer verfügbar, gar nicht verfügbar weil irgendwelche Chinateile oder nur in bescheiden zu lötendem Gehäuse verfügbar sind.
Timm Thaler
 
Beiträge: 970
Registriert: 20. Mär 2016, 23:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon pluto » 27. Jun 2019, 20:21 Re: Camping Interface - fpc, arduino, LIN- Bus

Mit dem Uno bist du aber hardwaretechnisch schon mal auf der sicheren Seite, wenn es geometrisch kleiner sein soll, kannst du einen Arduino Nano verwenden. Da ist ebenfalls ein 328p drauf und mit ca. 2 x 4,5 cm ist der Nano auch schön handlich. Ich kenne einige Bastler, die den Nano als µC-Ersatz gleich in die Schaltung einbauen.

Wenn du mit einem MC direkt Arbeiten möchtest egal ob mit einem atTiny oder einem atMega, musst du als zweites den Auto Reset vom Arduino Nano oder Uno abschalten, ich mache das immer mit einem elko(220µF? glaube ich war das).... zwischen gnd und rest. Als ertest musst du das Arduino ISP Beispiel auf dein Uno/Nano kopieren, dann kannst du das als Programmer nutzen...
Das mit dem Auto Reset ist erst seit ein oder zwei Jahren oder so.... als ich Anfing war das kein Problem.
Ich packe immer noch ein Takgeber hinzu und eine Auto-Reset Schaltung beim atMega, damit ich ihn direkt mit einem Uart Programmieren kann.

Es gibt auch AVR'S mit mehreren Uart z.b. den atmega2560 der beim Arduino Mega verbaut ist... der hat auch gleich ein "paar" pins mehr.

Das geht auch mit den Billig Clonen...
MFG
Michael Springwald
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 7007
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

Beitragvon Timm Thaler » 27. Jun 2019, 22:23 Re: Camping Interface - fpc, arduino, LIN- Bus

pluto hat geschrieben:musst du als zweites den Auto Reset vom Arduino Nano oder Uno abschalten, ich mache das immer mit einem elko(220µF? glaube ich war das).... zwischen gnd und rest.


Aua! Wieder dieser typische Maker-Pfusch. Und dann muss der Programmer einen 220µ Kondensator ungebremst endladen. Aua!

Normalerweise liegt der Reset-Pin mit einem Widerstand 10k an Vcc und mit einem Kondensator 1-10nF an GND. Beim Arduino liegt der Kondensator nicht an GND, sondern am DTR des USB-seriell-Wandlers. Damit kann mit einem Pegelwechsel an DTR ein Reset ausgelöst werden.

Die saubere Vorgehensweise wäre, den C auszulöten, damit der DTR keinen Reset mehr auslösen kann.
Timm Thaler
 
Beiträge: 970
Registriert: 20. Mär 2016, 23:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon pluto » 27. Jun 2019, 22:37 Re: Camping Interface - fpc, arduino, LIN- Bus

Normalerweise liegt der Reset-Pin mit einem Widerstand 10k an Vcc und mit einem Kondensator 1-10nF an GND. Beim Arduino liegt der Kondensator nicht an GND, sondern am DTR des USB-seriell-Wandlers. Damit kann mit einem Pegelwechsel an DTR ein Reset ausgelöst werden.

Die saubere Vorgehensweise wäre, den C auszulöten, damit der DTR keinen Reset mehr auslösen kann.

Zum Programmieren ist der Auto-Reset echt Praktisch, aber eben NICHT immer.
Somit kann ich einfach selbst bestimmen, brauche ich den Auto-Reset vom Uno oder was auch immer oder eben nicht?
Bei meinen eigenen Platinen, wo ich ein atMega328 direkt verbaue, mache ich das über ein Jumper. Das wäre das Sinnvollste. Ich unterbreche die DTR/Reset Leitung einfach...
Ich frage mich, warum das nicht auch bei den Arduino Boards so gemacht wird?
MFG
Michael Springwald
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 7007
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

Beitragvon af0815 » 30. Jun 2019, 15:52 Re: Camping Interface - fpc, arduino, LIN- Bus

jayway hat geschrieben:edit: Ein Simulator würde auch helfen. FP erzeugt ja Assembler-Code, den man vielleicht in einem Simulator zum Laufen bringen könnte. Es gibt da sogar einen, der mit Lazarus entwickelt wird.
http://www.avr-asm-tutorial.net/avr_sim/index_de.html

probier den mal selbst aus. Der kann mit dem ASM von lazarus (GNU-AVR) nicht anfangen. Da gibt es zuviel Unteschiede. Zumindest habe ich da nichts zusammengebracht. Wäre sicherlich ein interessantes Tool. BTW, ich habe es mir aus den Quellen kompilert, also Patchen wäre grundlegend möglich.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3764
Registriert: 7. Jan 2007, 11:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon Timm Thaler » 30. Jun 2019, 17:23 Re: Camping Interface - fpc, arduino, LIN- Bus

Meine Erfahrungen mit Simulator unter Assembler: Am Anfang hab ich den oft genutzt, gerade um Timings rauszubekommen oder zu verstehen wie Setup-Register gesetzt werden. Aber bald gar nicht mehr: Man lernt irgendwann seine ATmegas kennen, viele Hardware-Interaktionen wie Uart, I2C, ADCs kann man nur an der Hardware vernünftig testen und oft ist eine Debug-Ausgabe per LED, Display oder Uart schneller und aussagekräftiger als sich durch eine Simulation zu quälen.
Timm Thaler
 
Beiträge: 970
Registriert: 20. Mär 2016, 23:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon jayway » 30. Jun 2019, 22:19 Re: Camping Interface - fpc, arduino, LIN- Bus

af0815 hat geschrieben:probier den mal selbst aus. Der kann mit dem ASM von lazarus (GNU-AVR) nicht anfangen.

Schade, war aber auch nur eine flüchtige Idee, weil ich zufällig darauf gestoßen bin. Ich verwende immer die LED oder UART-Methode, das hat für meine Projekte bisher immer ausgereicht.

Gruß Jay
jayway
 
Beiträge: 15
Registriert: 13. Feb 2018, 11:38
Wohnort: Dresden
OS, Lazarus, FPC: Windows (L 2.0.3 FPC 3.2.0) | 
CPU-Target: 64Bit
Nach oben

• Themenende •
Vorherige

Zurück zu Sonstiges



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron
porpoises-institution
accuracy-worried