Pages: [1] 2 3 4   Go Down
Author Topic: 1284p Ethernet Shield  (Read 5033 times)
0 Members and 1 Guest are viewing this topic.
Cloppenburg
Online Online
Edison Member
*
Karma: 30
Posts: 1281
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Moin Leutz.
Ich habe auf dem Breadboard ein 1284p Chip mit dem Sketch von Webduino RGB drauf und möchte das Ethernet Shield mit dem verbinden.
Was ich versucht habe:
Am 1284p die PB 4,5,6,7 an dem Shield mit PIN 10,11,12,13 zu verbinden. Den ICSP vom Shield mit PB 5,6,7 und RESET am 1284p und nichts davon hat funktioniert.
Wie kann man es hinbekommen?
Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hast Du auch versucht, die drei ICSP-Pins wie von Dir dargestellt zu verbinden und zusätzlich Pin 10 vom Shield nach PB4? Das ist nämlich die Konfiguration, wie das Shield mit Mega2560 und UNO verbunden wird.
Logged

Cloppenburg
Online Online
Edison Member
*
Karma: 30
Posts: 1281
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Funktioniert auch nicht

Es blinkt ab und zu mal die RX LED am Shield, 3 Gelb und eine rote LED leuchten.
« Last Edit: March 20, 2013, 01:52:05 pm by skorpi08 » Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hat das Shield auch eine Stromversorgung und Masse-Verbindung?

Mit welchen Einstellungen für Board compilierst Du den Sketch? Allenfalls musst Du SS (Pin 10) an PB2 verbinden (ist der Fallback).
Logged

Cloppenburg
Online Online
Edison Member
*
Karma: 30
Posts: 1281
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Es blinkt ab und zu mal die RX LED am Shield, 3 Gelb und eine rote LED leuchten.
Sonst wäre es nicht so.

Das Blink Beispiel funktioniert ja. AVRISP mkII und Mighty 1284p 16MHZ
Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bei mir gibt's kein Board "Mighty 1284p 16MHz". Woher hast Du die boards.txt?

Hast Du SS an PB2 versucht?
Logged

Cloppenburg
Online Online
Edison Member
*
Karma: 30
Posts: 1281
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Geht auch nicht

Brauch das Ethernet Shield die TX und RX?
Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Cloppenburg
Online Online
Edison Member
*
Karma: 30
Posts: 1281
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

http://www.gammon.com.au/forum/?id=11637  weiter unten ist das 1284p
Danach hab ich es gemacht und zusätzlich an RX ein 60k drangehängt

Ich nutze das UNO Board um Sketchs Uploaden (ohne den 328 Chip, die RX und TX nicht vertauscht)
« Last Edit: March 20, 2013, 03:40:34 pm by skorpi08 » Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Danach hab ich es gemacht und zusätzlich an RX ein 60k drangehängt

Wozu?

Ist RESET auch verbunden?
Logged

Cloppenburg
Online Online
Edison Member
*
Karma: 30
Posts: 1281
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Weil sonst ein Fehler kommt beim Upload. ( hier auch beschrieben:  http://arduino.cc/forum/index.php/topic,139671.120.html « Reply #126 on: 03-02-2013, 10:06:53 » )

RESET mit was verbinden?



* 20130320_230907.jpg (2613.17 KB, 3264x2448 - viewed 83 times.)
« Last Edit: March 20, 2013, 05:13:31 pm by skorpi08 » Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
RESET mit was verbinden?

Der Reset-Pin des Shields mit dem Reset-Pin des 1284p. Damit das Shield auch geresettet wird, wenn der MCU einen Reset durchmacht.

Kannst Du ein Oszi anhängen, um den SS-Pin zu testen?
Logged

Cloppenburg
Online Online
Edison Member
*
Karma: 30
Posts: 1281
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hast das Bild angeschaut? Hab kein Oszi.

0.4-0.6V sind da drauf
« Last Edit: March 20, 2013, 05:28:34 pm by skorpi08 » Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Hast das Bild angeschaut?

Auf dem Bild ist aber nichts mit PB2 verbunden.

Poste mal den Code, den Du zum Testen verwendest.
Logged

Cloppenburg
Online Online
Edison Member
*
Karma: 30
Posts: 1281
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ist der normale Webduino RGB Sketch

Code:
/* Web_AjaxRGB.pde - example sketch for Webduino library */

#include "SPI.h"
#include "Ethernet.h"
#include "WebServer.h"

// CHANGE THIS TO YOUR OWN UNIQUE VALUE
static uint8_t mac[6] = { 0x02, 0xAA, 0xBB, 0xCC, 0x00, 0x22 };

// CHANGE THIS TO MATCH YOUR HOST NETWORK
static uint8_t ip[4] = { 192, 168, 178, 177 }; // area 51!

/* all URLs on this server will start with /rgb because of how we
 * define the PREFIX value.  We also will listen on port 80, the
 * standard HTTP service port */
#define PREFIX "/rgb"
WebServer webserver(PREFIX, 80);

#define RED_PIN 12
#define GREEN_PIN 13
#define BLUE_PIN 14

int red = 0;            //integer for red darkness
int blue = 0;           //integer for blue darkness
int green = 0;          //integer for green darkness

/* This command is set as the default command for the server.  It
 * handles both GET and POST requests.  For a GET, it returns a simple
 * page with some buttons.  For a POST, it saves the value posted to
 * the red/green/blue variable, affecting the output of the speaker */
void rgbCmd(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
  if (type == WebServer::POST)
  {
    bool repeat;
    char name[16], value[16];
    do
    {
      /* readPOSTparam returns false when there are no more parameters
       * to read from the input.  We pass in buffers for it to store
       * the name and value strings along with the length of those
       * buffers. */
      repeat = server.readPOSTparam(name, 16, value, 16);

      /* this is a standard string comparison function.  It returns 0
       * when there's an exact match.  We're looking for a parameter
       * named red/green/blue here. */
      if (strcmp(name, "red") == 0)
      {
/* use the STRing TO Unsigned Long function to turn the string
* version of the color strength value into our integer red/green/blue
* variable */
        red = strtoul(value, NULL, 10);
      }
      if (strcmp(name, "green") == 0)
      {
        green = strtoul(value, NULL, 10);
      }
      if (strcmp(name, "blue") == 0)
      {
        blue = strtoul(value, NULL, 10);
      }
    } while (repeat);
   
    // after procesing the POST data, tell the web browser to reload
    // the page using a GET method.
    server.httpSeeOther(PREFIX);
//    Serial.print(name);
//    Serial.println(value);

    return;
  }

  /* for a GET or HEAD, send the standard "it's all OK headers" */
  server.httpSuccess();

  /* we don't output the body for a HEAD request */
  if (type == WebServer::GET)
  {
    /* store the HTML in program memory using the P macro */
    P(message) =
"<!DOCTYPE html><html><head>"
  "<title>Webduino AJAX RGB Example</title>"
  "<link href='http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/base/jquery-ui.css' rel=stylesheet />"
  "<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js'></script>"
  "<script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js'></script>"
  "<style> body { background: black; } #red, #green, #blue { margin: 10px; } #red { background: #f00; } #green { background: #0f0; } #blue { background: #00f; } </style>"
  "<script>"

// change color on mouse up, not while sliding (causes much less traffic to the Arduino):
//    "function changeRGB(event, ui) { var id = $(this).attr('id'); if (id == 'red') $.post('/rgb', { red: ui.value } ); if (id == 'green') $.post('/rgb', { green: ui.value } ); if (id == 'blue') $.post('/rgb', { blue: ui.value } ); } "
//    "$(document).ready(function(){ $('#red, #green, #blue').slider({min: 0, max:255, change:changeRGB}); });"

// change color on slide and mouse up (causes more traffic to the Arduino):
    "function changeRGB(event, ui) { jQuery.ajaxSetup({timeout: 110}); /*not to DDoS the Arduino, you might have to change this to some threshold value that fits your setup*/ var id = $(this).attr('id'); if (id == 'red') $.post('/rgb', { red: ui.value } ); if (id == 'green') $.post('/rgb', { green: ui.value } ); if (id == 'blue') $.post('/rgb', { blue: ui.value } ); } "
    "$(document).ready(function(){ $('#red, #green, #blue').slider({min: 0, max:255, change:changeRGB, slide:changeRGB}); });"

  "</script>"
"</head>"
"<body style='font-size:62.5%;'>"
  "<div id=red></div>"
  "<div id=green></div>"
  "<div id=blue></div>"
"</body>"
"</html>";

    server.printP(message);
  }
}

void setup()
{
  pinMode(RED_PIN, OUTPUT);
  pinMode(GREEN_PIN, OUTPUT);
  pinMode(BLUE_PIN, OUTPUT);

//  Serial.begin(9600);

  // setup the Ehternet library to talk to the Wiznet board
  Ethernet.begin(mac, ip);

  /* register our default command (activated with the request of
   * http://x.x.x.x/rgb */
  webserver.setDefaultCommand(&rgbCmd);

  /* start the server to wait for connections */
  webserver.begin();
}

void loop()
{
  // process incoming connections one at a time forever
  webserver.processConnection();
//  Serial.print(red);
//  Serial.print(" ");
//  Serial.print(green);
//  Serial.print(" ");
//  Serial.println(blue);
  analogWrite(RED_PIN, red);
  analogWrite(GREEN_PIN, green);
  analogWrite(BLUE_PIN, blue);
}

An PB2 habe ich auch versucht, funktioniert nicht.
Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
An PB2 habe ich auch versucht, funktioniert nicht.

Du solltest den Pin 10 des Shields an PB2 lassen, der Code wird den Pin ansprechen, vorausgesetzt, Du compilierst wirklich für den 1284p.

Wie äussert sich "funktioniert nicht"? Lass mal ein paar Serial-Aufrufe drin und schau, wo Du welche Ausgaben bekommst. Um das Shield zu testen, würde ich keinen Webserver verwenden, sondern einen einfachen Beispielsketch der Ethernet-Bibliothek (z.B. ChatServer).
Logged

Pages: [1] 2 3 4   Go Up
Jump to: