Problem mit SW-Uart an einem Pin des ISP

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Problem mit SW-Uart an einem Pin des ISP

      Hallo

      Bisher brauchte ich das nicht oder hatte andere freie Pins, daher stoße ich erst jetzt darauf.
      Geht das überhaupt an einem Pin des ISP einen Software-Uart zu konfigurieren (mit Open "COMB.3:9600,8,n,1" For Output As #1 zB. bei einem M328)?
      Oder kann man den ISP oder dessen Funktion auch softwaremäßig deaktivieren (dauerhaft geht es ja wohl mit einem Fuse-Bit nur ist dann eben die Funktion dauerhaft weg was ich auch nicht gebrauchen kann).
    • Ich hatte bisher keine Einschränkungen, wenn ich pins der ISP als normale IOs verwendet hab. Mit shiftout zB. Die Einschränkung ist halt die hw, die dann noch dran hängt, wenn du flashen willst, ob die dann stört oder kaputt geht. Ich würde zB kein Relais an solche pins hängen.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Das funktioniert schon, solange der Pegel beim Programmieren nicht gestört wird.
      Wenn z.B. ein Ausgang eines angeschlossenen Chips am MISO hängt, dann arbeitet dieser Ausgang ja gegen den AVR-Ausgang. Beim Programmieren muss dann die Verbindung unterbrochen oder mit einem Widerstand abgeblockt werden. Bei externen SPI-Bausteinen sollte ChipSelect mit einem Pullup versehen werden, damit der Chip den Pin loslässt.

      Die ISP-Funktion ist nach dem Programmieren frei.
    • tschoeatsch schrieb:

      Ich hatte bisher keine Einschränkungen, wenn ich pins der ISP als normale IOs verwendet hab.
      Ich bisher auch nicht, nur ein Soft-UART scheint da nicht zu funktionieren (auf allen drei Pins).
      Da kommt einfach nichts raus (mit einem Logic-Tester überprüft).
      Alternativ habe ich nur noch Pins am ADC-Port wovon drei aber als ADC verwendet werden und einer von den dreien innerhalb eines Interrupts abgefragt wird.
      Und bei einem Print wird durch die ADC-Abfrage des Interrupts die Printausgabe gestört.

      Ich habe mir da jetzt mal so geholfen, dass ich einen eigenen Printbefehl habe und die IRQ-ADC-Abfrage für die Zeit kurz verhindere.
      Ich brauche das aktuell ja nur zum debuggen.
      Immer wieder erstaunlich auf welche Hürden man stoßen kann a_27_b277ca12 .

      Quellcode

      1. Sub MyPrint(ByVal fText As String * 64)
      2. iADCenable = 0
      3. Waitms 20
      4. Print #1 , fText
      5. Waitms 200
      6. iADCenable = 1
      7. End Sub
    • bloß mal eine Idee, hast du eine Pause beim Programmstart, bis die soft-uart geöffnet wird? Wenn der reset-pin low ist, dann wird doch ISP aktiviert, um evtl. zum flashten verwendet zu werden (denk' ich mir so, ohne wissenschaftlichen Hintergrund), deshalb denk' ich weiter, dass nach einem reset die ISP erst noch ausgeschaltet werden muss, bevor die pins anderweitig programmiert werden können. Im Beispiel der Hilfe ist da ein waitms 100 drin.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------