
Сообщение от
Chip
Ждем с нетерпением!
Что-то не получается у меня драйвер новый запустить. На выходе RX постоянно висит логическая 1. Спаял вроде все правильно. Даже схему в протеусе смоделировал, правда там только MAX487 есть в библиотеке, но тоже вроде RS485 драйвер. В общем не выходит.
Написал вот такую программку для arduino
Код:
int ledPin = 13; // LED connected to digital pin 13
// pin 7 arduino, TX
#define DATAOUT_DDR DDRD
#define DATAOUT_PORT PORTD
#define DATAOUT_PIN PIND
#define DATAOUT 7
// pin 8 arduino, RX
#define DATAIN_DDR DDRB
#define DATAIN_PORT PORTB
#define DATAIN_PIN PINB
#define DATAIN 0
// инвертируем сигнал
#define INPUT_IS_SET (bit_is_clear(DATAIN_PIN, DATAIN))
#define INPUT_IS_CLEAR (bit_is_set(DATAIN_PIN, DATAIN))
void setup(){
pinMode(ledPin, OUTPUT); // sets the digital pin as output
// AVCLan TX+/TX- read line INPUT
DATAIN_DDR &= ~(1<<DATAIN);
DATAIN_PORT &= ~(1<<DATAIN);
// AVCLan TX+/TX- write line OUTPUT
DATAOUT_DDR |= 1<<DATAOUT;
DATAOUT_PORT |= 1<<DATAOUT;
Serial.begin(115200);
}
void loop(){
while (INPUT_IS_CLEAR){
}
digitalWrite(ledPin, HIGH); // sets the LED on
Serial.print('1');
while (INPUT_IS_SET){
}
digitalWrite(ledPin, LOW); // sets the LED on
Serial.print('0');
}
По идее она должна мигать светодиодом при приходе команда в шине да 1 и 0 в com-порт писать. Сможешь проверить у тебя она что-нибудь выдавать будет.
Вот схема и разведенная плата драйвера:
AVCLan_sheild.rar