Comunicazione seriale tra un Aduc e Arduino uno

Ciao ragazzi!!!

Avrei un argomento da proporvi:

Sto tentando di far comunicare tra di loro il mio arduino uno con un microcontrollore con architettura 8052 via seriale TTL.

Ciò che voglio fare è inviare un carattere via seriale al mio controllore da arduino via montior seriale e far accendere un led collegato ad una delle porte di uscita del controllore…

L’MCU è un ADuC836 della analog devices.

Un pò di dati hardware:

Le alimentazioni dei due dispositivi sono separate, per cui la comunicazione avviene attraverso semplicemente RX , TX e GND ( RX e TX dei due dispositivi sono ovviamente incrociati)…

Per il momento non ho avuto molta fortuna con questo controllore, in quanto se ad esempio invio un carattere sempre via seriale con un display touchscreen, il buffer di ricezione (l SBUF per chi ha un po di dimestichezza con le architettura 8051) mi risponde sempre a prescindere da cio che invio sempre con 0xFF…Cio che pero posso dire con assoluta certezza è che ricevo lo stop bit della comunicazione seriale.

Per questo motivo sto tentando di analizzare il problema inviando un carattere dal monitor seriale di arduino, il tutto sempre attraverso una comuncazione seriale TTL… con lo stesso codice usato sul display, ma con il carattere inviato da arduino non riesco nemmeno a ricevere lo stop bit sull’MCU…

questo è il codice di arduino:…come avrete modo di vedere non è nulla di complicato.

#include <SoftwareSerial.h>

SoftwareSerial Aduc(2,3);

void setup()
{
  Aduc.begin(9600);
  Serial.begin(9600);

  Serial.println(F("pronto"));

}




void loop()
{
  if( Serial.available() )
  {  
    char c = Serial.read();

    if( c == 'a' ) 
    {
      Serial.println(F("invio ack"));
      Aduc.print(F("a"));
    }
  }

  if( Aduc.available() )
  {
    char t = Aduc.read();

    if( t == 0x01 ) Serial.println(F("ricevuto")); 
  }
}

Se cè bisogno posto anche il codice dell Aduc

Grazie a chi risponde :slight_smile: :slight_smile:

Sono riuscito ad effettuare la comunicazione tra i due dispositivi…ma il risultato della lettura da paprte del mio ADUc è sempre 0xFF come nel caso del display… qualche consiglio?

Visto che le alimentazioni sono separate hai messo in comune tutyi i GND ?

Ho risolto un paio di giorni fa

Il problema era dovuto all errato settaggio del baud rate all'interno del processore......il clock del processore di default va a 1.57 MHz e non a 12.58MHz, per cui di conseguenza il timer per la generazione del baud rate, erogava un baudrate sbagliato e ho di conseguenza dovuto usare un altra sorgente per la generazione del baud rate

ok, quindi puoi scegliere da dove prendere il clock che regola la velocita' della seriale. Come si programmano questi ADUC ? C'e un ambiente di sviluppo gratuito ?
Che vantaggi hai rispetto ad usare un Atmel ?