Go Down

Topic: Atmel 328P Serial Monitor nutzen über ISP und USB Shield (Read 296 times) previous topic - next topic

senseman

Ich möchte gerne bei einem nackten Atmel 328P den Serial Monitor nutzen.m Soweit mir bekannt braucht man dazu aber eine USB Schnittstelle. Soweit so gut.
Gibt es zufällig USBschnittstellen die man über die ISP schnittstelle verbinden kann und dann den USB zugang zum Atemel hat um den Serial Monitor zu nutzen. wenn ich den Atmel über einen ISP PRogrammer anschliesse kann man den Serial Monitor ja nicht nutzen.
Im netz habe ich USB Hostshields gefunden nur ist die Frage werden die nur über die ISP gesteuert oder brauchen die z.b. einen UNO zur Funktion.
Den USB bräuchte ich nur zum Testen.  Programmieren tue ich die Nackten Chips mit ISP und Progammer.

https://www.amazon.de/ARCELI-Shield-Arduino-Unterst%C3%BCtzung-Android/dp/B07J2KKGZ4/ref=pd_lpo_sbs_147_t_0?_encoding=UTF8&psc=1&refRID=3CAX08XGDAHCHE3W925V

https://www.exp-tech.de/module/schnittstellen/5807/arduino-usb-host-shield

Ich verstehe es zumindestens so das die ISP schnittstelle reicht um einen USB zu simulieren.
lieg ich mit meiner annahme richtig oder gibt es eine günstigere alternative möglichst ohne SMD krieg ich glaube ich nicht gelötet.

noiasca

wenn du eine softserial findest die mit den Pins des ISP klappt - warum nicht? ttl zu usb serial wandler und ab gehts
DE: Wie man Fragen postet:
1. was hat man (Sketch und Hardware)
2. was SOLL es machen
3. was macht es: IST (Fehlverhalten, Fehlermeldungen, Serial.Output ...)
4. Eine Frage stellen bzw. erklären was man erwartet

Whandall

Ein nackter Chip soll über die serielle Schnittstelle getestet werden,
auf die via ISP zugegriffen werden soll, irgendwie ist auch noch ein Host Shield beteiligt.

Das ist eine ziemlich merkwürdige Idee, teste dein Chips anders, so wird das nichts.
Ah, this is obviously some strange usage of the word 'safe' that I wasn't previously aware of. (D.Adams)

HotSystems

Du brauchst dazu den Bootloader oder eine entsprechende Software auf dem Atmega, um seriell darauf zuzugreifen.
Sobald du den mit ISP flashst, ist die wieder runter.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

michael_x

Du nimmst einen USB-Serial Modul und schließt den an den Hardware-Serial Pins deines atmega328 an.
Nix ISP (ISP kannst du verwenden, wenn dein atmega keinen bootloader hat, aber du ein Programmiergerät)

senseman

Der Gedanke ist ja der den Serial Monitor der IDE zu nutzen im eingangpost hab ich ja nen paar Shields gefunden, bei dem zweiten link verstehe ich das so das 10 11 12 13 arduino pin mit shield verbinden um das shield zunutzen dann sollte es doch so möglich sein den Serial Monitor zunutzen wenn ich das mit einem Progammer verbinde kann ich den Serial Montor ja nicht nutzen. weitere möglichkeit wäre dann wohl nur nen Uno zunehmen Projekt auf ein Breadboard bauen testen und dann auf einen Nackten Atmel zu übertragen.

uxomm

Wie bereits erwähnt wurde, brauchst du einen USB-Serial-Adapter.
(Das worauf du im Ausgangspost verlinkst sind USB-Host-Shields - das ist ganz etwas anderes).

Hier zwei Beispiele für gängige USB-Serial-Adapter:
FTDI FT232RL Serial-USB-Module
CH340G-Serial-Adapter-Module

Das Ding schließt du auf der einen Seite an einer USB-Buchse deines PCs an und auf der anderen Seite an RX, TX und GND vom ATMgea 328P.
Dann kannst du seriell Daten übertragen (richtige Einstellungen vorausgesetzt).
Natürlich auch mit dem Seriellen Monitor der Arduino-IDE.
Always decouple electronic circuitry.

HotSystems

Und was senseman noch nicht verstanden hat, derAtmega brauch auch den Bootloadereinen USB-Serial-Adapter, damit er die seriellen Ausgaben machen kann. Oder Und eben im Sketch die entsprechenden Ausgaben.
Sobald er mit ISP flasht ist der Bootloader deaktiviert und das läuft dann nur noch über eigene Ausgaben. Und genau dafür benötigt er dann den schon mehrfach genannten USB-Serial-Adapter.

Mit ISP alleine wird das nix.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

combie

Quote
Und was senseman noch nicht verstanden hat, derAtmega brauch auch den Bootloader, damit er die seriellen Ausgaben machen kann.
Das verstehe ich nicht.
Was hat der Bootloader mit Serial zu tun?



Quote
Sobald er mit ISP flasht ist der Bootloader deaktiviert ...
Nur wenn man sich nicht ganz klug anstellt.
Mit etwas klug geht auch: Programm und Bootloader gleichzeitig übertragen.

Quote
wenn ich den Atmel über einen ISP PRogrammer anschliesse kann man den Serial Monitor ja nicht nutzen.
Seit wann ist das so?
Ist das neu?


Welchen Zweck soll das USB Host Shield haben?
Ich sehe hier keinen.
Nobody is perfect!
(und selbst der nicht zu 100%)

HotSystems

Das verstehe ich nicht.
Was hat der Bootloader mit Serial zu tun?
Hast Recht, da lag ich total daneben.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

senseman

Das verstehe ich nicht.
Was hat der Bootloader mit Serial zu tun?


Nur wenn man sich nicht ganz klug anstellt.
Mit etwas klug geht auch: Programm und Bootloader gleichzeitig übertragen.
Seit wann ist das so?
Ist das neu?


Welchen Zweck soll das USB Host Shield haben?
Ich sehe hier keinen.

Wärst du bitte mal so nett und verräts mir den Trick wie ich mit einem Programmmer den Serail Monitor nutze ?
geht bei mir leider nicht Diamex_AVR bleibt der Monitor leer.
bps Sketch

Code: [Select]

int led[] = {13,12,11,10,9,8,7,6};                         // definiere Variable für LEDs
int nummer = 0;                                            // Variable zur Identifizierung der
                                                           // getippten LED

void setup()
{
  Serial.begin(9600);                                      // Starte die Kommunikation mit dem
                                                           // seriellen Monitor mit der Baudrate 9600
                                                           
  Serial.println("Das ist der serielle Monitor");          // Der Arduino schreibt in den Monitor den
  Serial.println("");                                      // Hier angezeigten Text und fängt jeweils
  Serial.println();                                        // in einer neuen Zeile an
  Serial.println("Tippe ein, welche LED leuchten soll.");  //
 
  for (int index=0; index<=7; index++)                     //
  {                                                        // definiere LEDs als Ausgang
     pinMode(led[index], OUTPUT);                          //
  }                                                        //
 
}


void loop() 

  if (Serial.available() > 0)                             // Wenn der serielle Monitor aufgerufen wird...
  {
   
    nummer =Serial.read();                                // Speicher es in die Variable "nummer"
   

    if(nummer == '0')                                     // Wenn der Wert der Variable gleich
    {                                                     // dem ASCII- Code für "0" ist,...

      for (int index;index<=7;index++)                    //
      {                                                   //
                                                          //
        digitalWrite(led[index], LOW);                    // Schalte alle LEDs aus...
                                                          //
      }                                                   //
     
      digitalWrite(led[0],HIGH);                          // und mache die gewünschte LED an...
     
      Serial.print("LED ");                               // Schreibe den Text in den Monitor...
      Serial.print(13);                                   //
      Serial.print(" ist an.");                           //
    }

     else if(nummer == '1')                               // ansonsten, wenn der Wert der Variable
    {                                                     // gleich dem ASCII- Code für "0" ist...

      for (int index;index<=7;index++)                    //
      {                                                   //
                                                          //
        digitalWrite(led[index], LOW);                    // Schalte alle LEDs aus...
                                                          //
      }                                                   //
     
      digitalWrite(led[1],HIGH);                          // und mache die gewünschte LED an...
     
      Serial.print("LED ");                               // Schreibe den Text in den Monitor...
      Serial.print(12);                                   //
      Serial.print(" ist an.");                           //
    }

     else if(nummer == '2')                               // Und so weiter....
    {

      for (int index;index<=7;index++)
      {

        digitalWrite(led[index], LOW);
       
      }
      digitalWrite(led[2],HIGH);
      Serial.print("LED ");
      Serial.print(11);
      Serial.print(" ist an.");
    }

     else if(nummer == '3')
    {

      for (int index;index<=7;index++)
      {

        digitalWrite(led[index], LOW);
       
      }
      digitalWrite(led[3],HIGH);
      Serial.print("LED ");
      Serial.print(10);
      Serial.print(" ist an.");
    }

     else if(nummer == '4')
    {

      for (int index;index<=7;index++)
      {

        digitalWrite(led[index], LOW);
       
      }
      digitalWrite(led[4],HIGH);
      Serial.print("LED ");
      Serial.print(9);
      Serial.print(" ist an.");
    }

     else if(nummer == '5')
    {

      for (int index;index<=7;index++)
      {

        digitalWrite(led[index], LOW);
       
      }
      digitalWrite(led[5],HIGH);
      Serial.print("LED ");
      Serial.print(8);
      Serial.print(" ist an.");
    }

      else if(nummer == '6')
    {

      for (int index;index<=7;index++)
      {

        digitalWrite(led[index], LOW);
       
      }
      digitalWrite(led[6],HIGH);
      Serial.print("LED ");
      Serial.print(7);
      Serial.print(" ist an.");
    }

      else if(nummer == '7')
    {

      for (int index;index<=7;index++)
      {

        digitalWrite(led[index], LOW);
       
      }
      digitalWrite(led[7],HIGH);
      Serial.print("LED ");
      Serial.print(8);
      Serial.print(" ist an.");
    } else
    {
      Serial.println("Falsche Eingabe.");         // Wenn es keine Übereinstimmung gibt,
    }                                             // gebe "Falsche Eingabe" aus.
   
    Serial.println();


  }
}




Danke

combie

Quote
Wärst du bitte mal so nett und verräts mir den Trick wie ich mit einem Programmmer den Serail Monitor nutze ?
geht bei mir leider nicht Diamex_AVR bleibt der Monitor leer.
Ich bin gerne "Nett".
Klappt nur nicht immer.

Hier, z.B. verstehe ich die Frage nicht.
Nobody is perfect!
(und selbst der nicht zu 100%)

senseman

Quote
wenn ich den Atmel über einen ISP PRogrammer anschliesse kann man den Serial Monitor ja nicht nutzen.

Seit wann ist das so?
Ist das neu?
Meine Frage bezog sich auf das Zitat oben das erste Zitieren hat wohl nicht geklappt wie erhofft.

Dann mein vorletzter post mit Bsp. serial monitor wenn ich nen Uno dran hab port 5 geht der Monitor hab ich aber den Programmer dran port 25 Diamex AVR geht es nicht Monitor jeweils auf Port eingestellt und übertragung auf 9600

beides mal gleiches Bsp. 1x uno über USB= monitor zeit Programm  1x Nano über ISP/ Programmer = monitor nix

combie

Was hat der ISP Programmer mit den seriellen Monitor zu tun?

Ich sehe da keine Verbindung!
Wieso konstruierst du da eine hin?
Woher hast du diese Idee?
Nobody is perfect!
(und selbst der nicht zu 100%)

senseman

Siehe mal bitte deinen Post #8

Letzter Quote


Quote
Quote

   wenn ich den Atmel über einen ISP PRogrammer anschliesse kann man den Serial Monitor ja nicht nutzen.

Seit wann ist das so?
Ist das neu?

Das schriebst du erklär es mir doch mal ich lese daraus geht. jetzt meinst du nein was denn nu bitte das mal erklären

Quote
Welchen Zweck soll das USB Host Shield haben?
Ich sehe hier keinen.
Zu den Shields hatte ich gefragt ob es das ist was man dazu braucht wurde von anderen verneint also kann man die nicht nutzen

Go Up