Forum: Mikrocontroller und Digitale Elektronik sam4s Xplained pro uart Embedded Debugger


von Paul (Gast)


Lesenswert?

Hi ich habe ein Problem mit dem Embedded Debugger über UART und dem 
Evalboard vom Sam4s. Mein Signal UART-Signal kommt bis zum Ausgang vom 
Sam, das habe ich mit dem Oszi gemessen. Am PC kommt dann mein Signal 
nicht mehr an. Im Debug-Modus geht das 'a' auch raus aus dem Register. 
Muss ich auf etwas spezielles beim Einstellen meines Terminals achten 
außer, dass ich den Virtuel Com-Port nehme.

Hier mein Code:
1
#define UART_SERIAL_BAUDRATE     115200
2
#define UART_SERIAL_MODE         UART_MR_PAR_NO
3
4
#define PINS_UART1_PIO      PIOB      
5
#define PINS_UART1_ID       ID_UART1
6
#define PINS_UART1_TYPE     PIO_PERIPH_A  
7
#define PINS_UART1_ATTR     PIO_DEFAULT
8
#define PINS_UART1_MASK     (PIO_PB2A_URXD1| PIO_PB3A_UTXD1 )
9
10
void configure_uart(void){
11
  pio_configure(PINS_UART1_PIO, PINS_UART1_TYPE, PINS_UART1_MASK, PINS_UART1_ATTR);
12
  pmc_enable_periph_clk(ID_UART1);
13
  
14
  const sam_uart_opt_t uart1_sett = { 
15
    sysclk_get_cpu_hz(), 
16
    UART_SERIAL_BAUDRATE, 
17
    UART_SERIAL_MODE 
18
  };
19
  
20
  uart_init(UART1,&uart1_sett);
21
}
22
23
int main (void)
24
{
25
   sysclk_init();
26
   board_init();
27
   
28
   wdt_disable(WDT);  
29
      
30
   configure_uart();
31
     
32
   while (1)
33
   {
34
     uart_write(UART1, 'a');
35
         }
36
}

von Adam P. (adamap)


Lesenswert?

Hey,

also ich hab dein Code mit meinem SAM4E Xplained und dem EDBG getestet 
und es funktioniert. Klar ich musste die Pin-Defines anpassen, aber das 
wars dann auch schon.

Terminal auf richtige Baud eingestellt?

Und warum holst du dir sysclk_get_cpu_hz() und nicht 
sysclk_get_peripheral_hz().

von Paul (Gast)


Lesenswert?

Ich habs raus gefunden. Man muss im Terminalprogramm dem DTR aktivieren 
um über den Embedded Debugger am Virtual Comport was zu lesen.

Ja Terminal war richtig eingestellt.
Stimmt eigentlich die peripheral_Clock ist sinnvoller vielen Dank für 
den Tipp Adam.

von Adam P. (adamap)


Lesenswert?

Steht zwar auch so im "Atmel EDBG USER GUIDE" unter "Virtual COM Port":

-->
Note that the UART pins of the EDBG are tri-stated when no terminal 
program is connected to the Virtual
COM Port on the computer. This mechanism relies on the terminal program 
sending a DTR signal.
<--

Und genau das gleiche Verhalten habe ich auch beim HTerm, jedoch 
verwende ich TeraTerm und dort muss ich nichts konfigurieren  ändern  
anpassen, vllt. weiß ja jmnd den Grund dafür.

Finde dort auf anhieb auch keine Info darüber.
Wäre nur interessant zu wissen warum es im TeraTerm (ohne DTR) 
funktioniert.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.