Jump to content

LEVV2006

Members
  • Content Count

    380
  • Joined

  • Last visited

  • Days Won

    1

LEVV2006 last won the day on March 17 2015

LEVV2006 had the most liked content!

Community Reputation

160 Хороший

About LEVV2006

  • Rank
    Постоялец
  • Birthday 11/10/1990

Контакты

  • Skype
    LEVV2008

Информация

  • Пол
    Мужчина
  • Город
    Москва

Электроника

  • Стаж в электронике
    Не связан с электроникой
  • Сфера радиоэлектроники
    Микроконтроллеры, Усилители НЧ
  • Оборудование
    Matrix MOS-620CH
    Aoyue Int968A+
    DT860B+

Recent Profile Visitors

4304 profile views
  1. Приветствую всех! Потихоньку изучаю контроллер Atmega32u4. Все вроде нормально, но вот bootloader срабатывает как то через раз. По нескольку раз приходится нажимать на кнопку ресет. Изначально (прям с завода) в МК был залит bootloader от Arduino Leonardo. При сбросе МК в диспетчере устройств так и писалось Arduino Leonardo COM - порт такой то. Я сильно заморочился и выяснил что исходники bootloaderа лежат вместе с самой ARDUINO IDE. И основаны они на библиотеке LUFA-111009. Ближе к делу. Используя LUFA-111009 + WinAVR-20100110 я пересобрал bootloader и теперь все работает нормально. НО в процессе правки кода я изменил PID и VID устройства, а также названия устройства (Вместо arduino leonardo установил 32u4 Bootloader). Прошил МК. Сам bootloader работает стабильно, но в диспетчере устройств почему то вместо моего названия ("32u4 Bootloader") написано "Устройство с последовательным интерфейсом USB", а в свойствах Модель:32u4 Bootloader. Хотя если подключить arduino leonardo, то так и определяется как arduino leonardo. Как сделать чтобы при активации моего bootloaderа было написано 32u4 Bootloader в диспетчере устройств?
  2. LEVV2006

    nrf24l01+pa+lna

    Починил! @DrobyshevAlex Большое Спасибо за помощь! Было дело в конденсаторе. Стоял конденсатор на 45 pF. Поставил 220pF и все заработало! Питание я проверил сразу. Все было в норме. Для конечных устройств я естественно делаю плату. А на макете использую Arduino Nano. Очень удобная вещь на мой взгляд. Весть обвес для МК + USB-Uart + удобно вставляется в макетку.
  3. LEVV2006

    nrf24l01+pa+lna

    Это первое что я сделал В общем я нашел что если положить палец на плату в этом месте то все начинает работать. Китайцы...... Что теперь только с этим делать?........
  4. LEVV2006

    nrf24l01+pa+lna

    МК точно не может быть причиной проблемой так как с обычными модулями (без антенны) все работает стабильно. Зависает на моменте чтения данных. i = radio.write(&data, sizeof(data)); С этим я тоже недавно намучился Поиск в интернете говорит о том что проблема может быть в схемотехники модуля...........
  5. LEVV2006

    nrf24l01+pa+lna

    Всем Привет! Возникли проблемы с радиомодулем nrf24l01+pa+lna (nrf24l01+ усилитель + антенна). Но обо всем по порядку. Задумал я небольшой проект для освещения и чтобы быстро проверить дальность связи я собрал проект на обычном модуле nrf24l01 и написал программу на Arduino Использовал библиотеку RF24.h а настройки модуля такие: radio.setDataRate (RF24_1MBPS); // Указываем скорость передачи данных (RF24_250KBPS, RF24_1MBPS, RF24_2MBPS) radio.setPALevel (RF24_PA_MAX); // Указываем мощность передатчика (RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_HIGH=-6dBm, RF24_PA_MAX=0dBm) На стандартных модулях все работало нормально, но на большом расстоянии передача данных происходила с ошибками. И я решил купить модули с антенной. И вот возникла проблема. Данные модули при таких настройках не работают. МК зависает и все. Они начинаю работать когда изменишь настройки на: radio.setDataRate (RF24_1MBPS); radio.setPALevel (RF24_PA_MIN); <---------------------------------- Но это не выход так как дальность по прежнему никакая. Было ли у кого ни будь подобная проблема? В чем может быть причина? (И на будущее есть ли у кого ни будь рабочая библиотека на С под модуль nrf24l01? )
  6. А все! Разобрался (Был не внимателен при подключении проводов)! Пора отдыхать. За целый день уже глаз замылился. Все спасибо за помощь! Все работает. По SS вот здесь хорошо написано.
  7. Да. Нашел это в Даташите. Большое Спасибо за помощь! Но второй вопрос пока не решен . SS я сконфигурировал как выход и подтянул его к 1. Одно устройство я подключить смогу. А как мне подключить второе устройство? Я завел ещё SPI_SSS на PORTB пин 0 и также сконфигурировал на выход и подтянул к 1. Но передать данные на SPI_SSS не удается.......
  8. ЗАРАБОТАЛО!!!!!!! Да как так то? Почему??????? SS не участвует же в автомате передачи? Мы его в ручную дергаем! И как же быть если я хочу несколько SPI устройств подключить?
  9. У меня почему то поднят флаг WCOL..... в регистре SPSR
  10. Попробовал. Ничего не меняется.
  11. Вы что ни будь знаете по теме SPI? Так вас устроит?
  12. SPIF – флаг прерывания от SPI. Он устанавливается в 1 по окончании передачи байта данных. Если разрешены прерывания модуля, одновременно с установкой этого флага генерируется прерывание от SPI. Также этот флаг устанавливается в 1 при переводе микроконтроллера из режима master в режим slave с помощью вывода SS. Сброс флага происходит аппаратно, при вызове подпрограммы обработки прерывания или после чтения регистра SPSR с последующим обращением к регистру данных SPDR. Я с нуля код не писал. Воспользовался примером из статьи. Пишу я в Atmel Studio 7.0. И дошел до подключения сдвигового регистра и застрял. Думал что то с регистром и быстро проверил его в arduino ide (shiftOut(dataPin, clockPin, LSBFIRST, 255);) Микросхема работает. Ну а дальше стал разбираться с проблемой SPI уже в arduino ide. Разницы особо нет. Ошибка наблюдается в любом из редакторов кода.
  13. Привет всем! Не стал создавать новую тему. Так как вопрос небольшой. Не могу заставить работать аппаратный SPI. МК (Arduino Nano): atmega328p Fuse: Lock:3F High:DA Low: FF (тактирование 16МГц) Пытаюсь заставить работать вот этот код: #define F_CPU 16000000UL //частота МК #define SPI_PORTX PORTB #define SPI_DDRX DDRB #define SPI_MOSI 3 #define SPI_SCK 5 #define SPI_SS 0 void setup() { SPI_DDRX |= (1 << SPI_MOSI) | (1 << SPI_SCK) | (1 << SPI_SS); SPI_PORTX |= (1 << SPI_MOSI) | (1 << SPI_SCK) | (1 << SPI_SS); SPCR = (1 << SPE) | (1 << DORD) | (1 << MSTR) | (0 << CPOL) | (0 << CPHA) | (0 << SPR1) | (1 << SPR0); SPSR = (0 << SPI2X); SPI_PORTX &= ~(1 << SPI_SS); SPDR = 254; while (!(SPSR & (1 << SPIF))); SPI_PORTX |= (1 << SPI_SS); } void loop() { } Компилятор ошибок не выдает. Но на анализаторе чушь: Пробовал менять частоту, режимы, МК: результат не меняется. Бывает начитает работать если указать значение 255. Но если потом выставить 0 то работать перестает. В чем может быть проблема? Вроде все правильно, но уже целый день пытаюсь заставить работать это безобразие
  14. Красивый получился усилитель!!! Скажи пожалуйста где покупал корпус и сколько он стоил? И сколько стоила гравировка? Так же интересно каков он в деле. Слышны ли шумы?
  15. К сожалению не насколько. Эта стенка обошлась в 20к рублей вместе с доставкой. Поэтому я разбил покупку на 2 части и по немного откладывал деньги.
×
×
  • Create New...