Forum: Mikrocontroller und Digitale Elektronik Max3392 Pegelwandler, BlueNiceCom 4


von Ange (Gast)


Lesenswert?

Guten Tag,
ich habe gelesen, dass der Max3392 ein Pegelwandler von 5V auf 3,3V ist.
Es ist so, dass ich das Bluetooth-Modul BlueNiceComIV über die SPI 
Schnittstelle anschließen möchte. Nun dachte ich den 5V Pegel(Mosi, 
Miso)des Atmega128 über den Max3392-Baustein von Maxim auf den vom 
Bluetoothmodul benötigten von 3,3V anzupassen.Nur werde ich aus dem 
Datenblatt nicht ganz schlau, dort steht Vl 1,8V und Vcc 3,3V.
Wieso nicht 5V? Oder muss ich die Spannung für Vl auf 1,8V mit einem 
Spannungsregler anpassen?
Gruß Angelika

von Ange (Gast)


Angehängte Dateien:

Lesenswert?

Oh, sorry,
ich habe vergessen das Datenblatt anzuhängen.
außerdem habe ich fälschlicherweise SPI Schnittstelle geschrieben,
ich habe vor das Modul über die ISP-Schnittstelle anzuschließen.
Angelika

von Ange (Gast)


Lesenswert?

Hallo zusammen,
weiss jemand etwas dazu, oder bin ich mit dem Pegelwandler komplett auf 
der falschen Fährte?
Angelika

von Ange (Gast)


Lesenswert?

oder ... brauche ich gar keinen Pegelwandler?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Nun, die Präambel des Datenblatts nennt die möglichen Spannungsbereiche,
und ein Betrieb mit V[L] = 3,3 V und V[CC] = 5 V ist da auf jeden Fall
im Bereich des möglichen.  Im weiteren Verlauf gehen die Beispiele
allerdings dann sehr oft von V[L] = 1,8 V und V[CC] = 3,3 V aus,
offenbar war diese Wandlung die wesentliche Motivation bei Maxim beim
Entwurf dieser Pegelwandler.

Ob du einen brauchst oder nicht, hängt vom Rest ab.  3,3-V-Logik wird
häufig mit 5-V-festen Eingängen ausgeführt, dann benötigt man für
diese Richtung keine Pegelwandler.  Das Ausgangspotenzial eines
3,3-V-CMOS-Bausteins genügt in der Regel, um über die für 5-V-TTL-
Pegel geforderten 2,2 V als high sicher hinaus zu kommen.  Ist die
nachgeschaltete 5-V-Logik aber nicht TTL-kompatibel, sondern reines
CMOS, dann sind die knapp 3,3 V Ausgangspegel u. U. nicht für eine
sichere Erkennung als high ausreichend.

von Marco (Gast)


Lesenswert?

Ich verwende zwischen meinem AT90CAN und dem BNC IV einen 74HC4050 als 
Pegelwandler. Allerdings benutze ich den USART, nicht SPI.

von Marco (Gast)


Lesenswert?

Meinst du mit ISP Schnittstelle auch den USART?
Das BlueNiceCom kann nämlich nur über UART angesprochen werden...

von Ange (Gast)


Lesenswert?

Die ISP-Schnittstelle(in system programming) wird normalerweise dazu 
verwendet AVR Mikrocontroller zu programmieren.

Signal:     Pin:
MISO        1
Vcc         2
SCK         3
MOSI        4
/RESET      5
GND         6

ich habe bereits eine ISP auf seriell getestet, d.h. einen PC über 
serielle Schnittstelle mit der ISP-Schnittstelle eines Controllerboards 
verbunden.
Nun möchte ich das gleiche mit Hilfe von Bluetooth machen,
also ohne Kabel.
noch eine Frage:
Mit was verbinde ich die Rx-Leitung des Bluetooth-Moduls?
Mit Mosi oder Miso?

von Marco (Gast)


Lesenswert?

MISO liegt an TX
MOSI an RX

Da du die Verbindungen kreuzen musst, muss RX vom BNC an MISO vom AVR.

Du benutzt also USART0...
Scheibar ohne zu Wissen das du USART benutzt. Wie hast du das mit der 
Software gemacht?

von Ange (Gast)


Lesenswert?

Hier ein Beispiel,sendet Zahlen von 1-9
1
#include <stdio.h>
2
#include <util/delay.h>
3
4
#include "qfixSoccerBoard.h"
5
6
/* CPU frequency */
7
#ifndef F_CPU
8
  #define F_CPU 16000000
9
#endif
10
11
/* UART baud rate */
12
#define UART_BAUD  9600
13
14
15
/*
16
 * Initialize the UART.
17
 */
18
void uart_init(void)
19
{
20
  UBRR0H = 0;
21
  UBRR0L = (F_CPU / (16UL * UART_BAUD)) - 1;
22
23
  UCSR0A = 0x00;
24
  UCSR0B = _BV(RXCIE0) | _BV(TXEN0); /* tx/rx enable */
25
  /* Set frame format: 8data, 2stop bit;*/
26
  UCSR0C = _BV(USBS0)|_BV(UCSZ00)|_BV(UCSZ01);
27
}
28
29
void USART_transmit(unsigned char a){
30
  while(!(UCSR0A &(1<<UDRE0))){}  
31
  UDR0 = a;    
32
  _delay_ms(500);
33
}
34
35
int main (void){
36
37
  uart_init();    
38
  for(;;){
39
      char c; 
40
      for (uint8_t i=0; i<=9; ++i) {
41
    c = i + '0';
42
    USART_transmit(c);    
43
            }    
44
  }  
45
}

von Marco (Gast)


Lesenswert?

Ja, wie ich vermutet habe, du benutzt den USART0...

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.