UART-Schnittstelle blockiert Upload

OP #3810552
Lesenswert?
• ▲
▼
Hallo,

kann mir einer erklären, warum der Upload aus dem Atmel Studio mit dem 
Attiny841 fehlschlägt, wenn ein Gerät an UART1 angeschlossen ist
PA4 (PCINT4/ADC4/AIN11/TOCC3/T1/RXD1/SCL/SCK)
PA5 (PCINT5/ADC5/ACO0/TOCC4/T2/TXD1/MISO)

Dafür muss UART1 nicht einmal im Programm aufgerufen werden, siehe 
auskommentierung.
1
// tiny841_uart_test.c
2
// ----------------
3
//  Created: 19.09.2014
4
//   Author: sschultewolter
5
// Hardware: ATtiny841 5V 8MHz(internal Oscillator)
6

7
#include <avr/io.h>
8
#include <avr/interrupt.h>
9

10
#include "uart0.h"
11
#include "uart1.h"
12

13
volatile uint32_t millis;
14

15
ISR(TIMER0_COMPA_vect)
16
{
17
  millis++;
18
}
19

20

21
int main(void)
22
{
23
  // UART
24
  uart0_init();
25
  //uart1_init();
26
  
27
  // millis
28
  TCCR0A = (1 << WGM01);          // CTC Mode
29
  TCCR0B |= (1 << CS01) | (1 << CS00);  // Prescaler 64
30
  OCR0A = 124;              // (F_CPU/PRESCALER)/1000-1
31
  TIMSK0 |= (1 << OCIE0A);        // Compare Interrupt
32
  sei();
33
  
34
  while(millis < 5000);          // warte 5s
35
  
36
  while(1)
37
  {
38
    static uint16_t last_second;
39
    uint16_t second = millis / 1000;
40
    if(second != last_second)
41
    {
42
      last_second = second;
43
      
44
      char str[10];
45
      itoa(second, str, 10);
46
      
47
      uart0_puts("\n\r");
48
      uart0_puts("UART0 <BAUD 19K2> :");
49
      uart0_puts(str);
50

51
      //uart1_puts("\n\r");
52
      //uart1_puts("UART1 <BAUD 38K4> :");
53
      
54
      //uart1_puts(str);
55
    }
56
  }
57
}

Welche Abhilfe kann man da schaffen, ausser das ich einen mechanischen 
Schalter/Jumper oder ähnliches dazwischen setzen muss. Einen Pin möchte 
ich dafür auch nicht verschwenden.
#3810560
Lesenswert?
• ▲
▼
Das liegt nicht an Deinem Programm, während des Programmierens ist das 
nicht aktiv (Reset liegt auf low).
Dein angeschlossenes 'Gerät' belastet MISO und/oder SCK zu stark. Sieh 
Dir mal die Atmel AN042 Punkt 3.1.1 an 
(http://www.atmel.com/images/atmel-2521-avr-hardware-design-considerations_application-note_avr042.pdf)
Wenn vorhanden kann es auch helfen die Resetleitung des 'Geräts' mit 
Reset des Prozessors zu verbinden.
OP #3810967
Lesenswert?
• ▲
▼
Hallo Oliver,

es handelt sich um Bluetooth Dongle mit 6 Pin-Header (STATE, RXD, TXD, 
GND, VCC, KEY). Wobei hier STATE und KEY nicht genutzt sind.

Hier noch einmal der Schaltungsaufbau. Alles was auf dem Schaltplan zu 
sehen, befindet sich auch nur auf dem Breadboard. Derzeit wird die 
Schaltung über die ISP gespeist, da dieser das abkann.

Ich habe nach deinem Tipp R1 mit eingebaut. Jedoch konnte ich aus dem 
Atmel Datenblatt keinen Widerstandswert entnehmen. Habe somit testweise 
einen 2k2 einbaut. Derzeit sendet mein Attiny841 nur, somit reichte der 
1 Widerstand.

Wie hoch sollte man den auslegen?
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.