Перейти к содержанию
    

Исходники тут ( схемы нет )

 

http://www.fourwalledcubicle.com/files/MyU...FA%20091223.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я так понимаю, в качестве железяки используется AT90USB1287 (или чего-там), которая стоит на плате XPlain. Это судя по define'ам в исходнике.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гыгы...

 

For device pinout information, build the Doxygen documentation from the source by executing "make doxygen". The resulting documentation will be located in the /Documentation/html/ directory of the source folder.

 

У кого под рукой есть подходящий тулчейн? Соберите под AT90USB162, а?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Оно под WinAVR

 

Если быть точным, то собирается гнутым тулчейном. Я не держу таких, потому и прошу.

 

да и схемка платы нужна же...

 

make doxygen создаст .html-файл с документацией. Там будет написано назначение пинов. Выкапывать их из мейкфайла мне лень.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нихрена там не написано 8)

main.html

Изменено пользователем Dx!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нихрена там не написано 8)

 

Все понятно (ибо все написано). Конфиги таки надо править. Ладно, выпадет свободный вечер, соберу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В режиме PDI обмен похоже по USART осуществляется

 

void PDITarget_SendByte(const uint8_t Byte)
{
#if defined(PDI_VIA_HARDWARE_USART)
    /* Switch to Tx mode if currently in Rx mode */
    if (!(IsSending))
    {
        PORTD  |=  (1 << 3);
        DDRD   |=  (1 << 3);

        UCSR1B |=  (1 << TXEN1);
        UCSR1B &= ~(1 << RXEN1);
        
        IsSending = true;
    }
    
    /* Wait until there is space in the hardware Tx buffer before writing */
    while (!(UCSR1A & (1 << UDRE1)));
    UCSR1A |= (1 << TXC1);
    UDR1    = Byte;
#else ....................

а в режиме ISP аппаратный SPI, в качестве выходной ножки ресет - ножка PB4

 

файл LUFA 091223\Projects\AVRISP\makefile

 

# Place -D or -U options here for C sources
CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(LUFA_OPTS)
CDEFS += -DRESET_LINE_PORT=PORTB
CDEFS += -DRESET_LINE_PIN=PINB
CDEFS += -DRESET_LINE_DDR=DDRB
CDEFS += -DRESET_LINE_MASK="(1 << 4)"
CDEFS += -DVTARGET_ADC_CHANNEL=2
CDEFS += -DENABLE_ISP_PROTOCOL
CDEFS += -DENABLE_PDI_PROTOCOL

 

в этом же файле и контроллер прописан

 

# MCU name
MCU = at90usb1287

 

А в файле LUFA 091223\LUFA\Drivers\USB\LowLevel\LowLevel.h

целый букет поддерживаемых контроллеров

/* Preprocessor Checks and Defines: */
        #if !defined(F_CLOCK)
            #error F_CLOCK is not defined. You must define F_CLOCK to the frequency of the unprescaled input clock in your project makefile.
        #endif
    
        #if (F_CLOCK == 8000000)
            #if (defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) || \
                 defined(__AVR_ATMEGA8U2__) || defined(__AVR_ATMEGA16U2__))
                #define USB_PLL_PSC                0
            #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))
                #define USB_PLL_PSC                0
            #elif (defined(__AVR_AT90USB646__)  || defined(__AVR_AT90USB1286__) || defined(__AVR_ATmega32U6__))
                #define USB_PLL_PSC                ((1 << PLLP1) | (1 << PLLP0))
            #elif (defined(__AVR_AT90USB647__)  || defined(__AVR_AT90USB1287__))
                #define USB_PLL_PSC                ((1 << PLLP1) | (1 << PLLP0))
            #endif
        #elif (F_CLOCK == 16000000)
            #if (defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) || \
                 defined(__AVR_ATMEGA8U2__) || defined(__AVR_ATMEGA16U2__))
                #define USB_PLL_PSC                (1 << PLLP0)
            #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))
                #define USB_PLL_PSC                (1 << PINDIV)
            #elif (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_ATmega32U6__))
                #define USB_PLL_PSC                ((1 << PLLP2) | (1 << PLLP1))
            #elif (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__))
                #define USB_PLL_PSC                ((1 << PLLP2) | (1 << PLLP0))
            #endif
        #endif
        
        #if !defined(USB_PLL_PSC)
            #error No PLL prescale value available for chosen F_CPU value and AVR model.
        #endif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да это все понятно. Контроллер - заменить на 90USB162, порт выбрать подходящий и все, зашибись :)

 

В режиме PDI обмен похоже по USART осуществляется

 

Ну видимо есть и второй способ, судя по #ifdef.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну видимо есть и второй способ, судя по #ifdef.

 

А второй способ это программный ногодрыг UARTовскими ногами ))).

 

На мой взгляд, удобнее было бы использовать USART в обоих случаях (PDI & ISP), только в режиме ISP USART переключить в SPI mode.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На мой взгляд, удобнее было бы использовать USART в обоих случаях (PDI & ISP), только в режиме ISP USART переключить в SPI mode.

 

Мне - пофиг. Абы работало :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И путаться в двух разъемах

 

Не поверите :) В одном разъеме 5 ножек, в другом - 3 :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не поверите :) В одном разъеме 5 ножек, в другом - 3 :)

 

Один разъем лучше двух :biggrin:

 

Так оставьте ненужные споры! Я себе уже все доказал

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...