RPi atMega328p über GPIO Programmieren und Serrielle Schnittstelle

  • Hallo,
    ich plane gerade ein Roboter mit einem Zero. Und da meine frage wie ist es machbar einen atMega328p über den PI über die GPIOs auszulesen(Serielle) und zu programmieren.
    Das es möglich ist weiss ich(RASPIO). Dieses Board hat aber eine zu kleine Prototypingfläche. Jetzt möchte ich einen Microcontroller mir selber so etwas bauen. Mit internem 8Mhz Quarz. Es soll auf 3.3V laufen.
    Ich weiss dass die die Software vom Gertboard nutzen, wie ich es zu verbinden habe aber nicht :(
    Für Tippst, Links Usw bin ich sehr dankbar.

  • Du willst einen nackten ATmega328P verwenden? Oder einen UNO etc?


    Zum flashen verwendet man den sog. ISP oder ICSP. Das ist quasi die SPI Schnittstelle: SCK, MISO, MOSI, einen GPIO für RESET und dann natürlich noch VCC & GND.


    Google Suche nach: ATmega328P Raspberry flash => https://learn.adafruit.com/pro…rry-pi-gpio-pins?view=all


    Wenn du ihn dann später ansprechen willst kannst UART nutzen oder I2C oder auch SPI...

  • Einen Atmega328p ohne alles mit internem Quarz.
    Und dann einfach RX & TX vertauscht anbringen? Kann ich dann die Arduino IDE verwenden? Und Picocom?

  • Die ArduinoIDE kannst du auch ohne einen Chip verwenden :fies:


    Aber ja, zum programmieren nutzt man vorzugsweise ArduinoIDE und wenn man auf "Upload" klickt wird im Hintergrund "avrdude" für den Flashvorgang ausgeführt. picocom ist glaub ich nur ein Terminalprogramm wie minicom - das nutzt man also vielleicht für manuelle Tests aber für deinen Roboter is das eher untauglich :)


    Bei meinem Roboter nutze ich einen Arduino-MEGA und mittlerweile auch noch einen Arduino-NANO. Es gibt auch noch den Arduino MICRO .... Die haben allesamt eine USB Schnittstelle worüber man den AVR flashen und auch steuern kann - dann eben steuern über UART. Vielleicht solltest du erst mal solch ein Arduino testen, da sind dann auch alle Pin's rausgeführt, Breadboard kompatibel, und auch die benötigten Kondensatoren zur Spannungs- Entstörung sowie Stabilisierung bereits vorhanden. Ein externer Quarz ermöglicht dann auch 16MHz.

  • Kurzer Hinweis noch zu Arduino/Pi Kombination. Der Arduino arbeitet mit 5V an den Pins, der Pi mit 3.3V. Also die Pins nie direkt miteinander verbinden. Die Kommunikation funktioniert über die USB-Buchse des Pi.
    Wenn du aber sowieso mit der Arduino IDE arbeiten möchtest, schließe ich mich meigrafd, dass es (zumindest für die Entwicklung) einfacher ist direkt mit dem Arduino zu arbeiten. (Der DCCDuino nano z.B. nutzt auch den Atmega328P chip und ist recht kompakt)


    PS: Ich habe einen Attiny2313 bei 3.3V über I2c an den Pi angebunden. Die Kommunikation funktioniert bis auf einen kleinen Bug mit der Stop-Bedingung gut, die Programmierung muss ich aber jeweils über einen externen Programmr (mkII) durchführen.


    PS2: Was möchtest du den am AtMega328P anschließen?

    Edited once, last by ChrisvA ().