Программирование МК AVR

 

 

 

Помечено: 

В этой теме 23 ответа, 15 участников, последнее обновление  Narod Stream 1 месяц назад.

Просмотр 9 сообщений - с 16 по 24 (из 24 всего)
  • Автор
    Сообщения
  • #13888

    arkonen
    Участник

    Всех с новым годом . Товарищи помогите , подскажите как реализовать SNMP в AVR ? Или может статьи есть у кого то интересные где почитать можно ?

    #13933

    VladimirM
    Участник

    Здравствуйте. В ATmega328P есть регистры OCR0B, OCR0A у меня вопрос, если будет установлен режим сброс при совпадении, а значения в регистрах будут разные, получается что счётчик не дойдёт до второго числа в регистре которого число больше и будет всё время сбрасываться, так как регистр TCNT0 один,а регистра сравнения (OCR0B,OCR0A) два! Так ли это? Как они работают?

    #14621

    arkonen
    Участник

    Доброго времени суток , подскажите пожалуйста как можно безболезненно в AVR всунуть SNMP ?
    Может подскажите ссылки , ну или хотя бы направьте в нужное русло !

    #14623

    Ortos
    Участник

    Доброе время суток.
    Подскажите пожалуйста как подключить точку через 74hc595 для часов.
    Спасибо.

    #14780

    Leonid
    Участник

    Спасибо автору за его бескорыстную просвятительскую (надо сказать отлично выполненную) работу!

    Теперь, не совсем в тему, посмотрел на ваш урок в ютьюбе и честное слово, позавидовал работе вашего компьютера. Быстро, четко без задержек на внутренние задержки, даже при работе с «железом»! ВОПРОС, если не составит труда дайте конфигурацию вашего компа и операционной системы… Уж ОЧЕНЬ хочется такой же…

    #15095

    Selivanov
    Участник

    Владимир, добрый день!
    Свой вопрос я хотел бы начать с благодарности: большое спасибо за канал! Ещё недавно будучи студентом универа,
    я смотрел Ваши и ролики и, скажем так, набирался ума. Само собой, это пошло на пользу, и дисциплину, связанную с
    программированием МК, я закрыл на хорошую оценку.
    Теперь непосредственно вопрос: у Вас есть очень интересный цикл уроков про микроконтроллер STM32 и сетевой чип W5500.
    Скажите, пожалуйста, реально ли Ваш код переставить на «рельсы» AVR? Я пытался переделать его самостоятельно (я хочу
    поднять простой UDP сервер), но у меня ничего не выходит. Не могли бы вы дать несколько советов, как инициализировать
    чип на AVR (я, в частности, использую Atmega32)? Я делаю практически всё то же самое, но не знаю, в чём может крыться
    ошибка (может быть, даже неправильно написана функция передачи по SPI). Помогите, пожалуйста, уже почти месяц
    бьюсь над этой проблемой. Если что, могу даже скинуть свой код.
    Спасибо. Каким бы ни был результат, я обещаю задонатить, так как считаю, что такие полезные ресурсы должны иметь поддержку.

    #15096

    Narod Stream
    Хранитель

    Здравствуйте!
    А чип отзывается по SPI?

    #15099

    Selivanov
    Участник

    Этого я не проверял. Я написал функцию пересылки данных по SPI, и начал писать в регистры W5500 необходимые данные: ip, mac, порт и всё остальное. У меня, к сожалению, самый простой программатор, без отладчика, поэтому отладить код не могу. Наверное, мне стоит попробовать прочитать эти данные, чтобы удостовериться, что они действительно доходят до места назначения, но я даже не уверен, что пересылку организовал правильно. Код привожу ниже:

    void w5500_writeReg(uint8_t op, uint16_t adress, uint8_t data)
    	{
    		//select_w5500();                //Функцию выбора SS закомментировал
    		SPDR = (adress>>8);              //Пересылаем старший байт адреса
    		while(!(SPSR & (1<<SPIF)));      //Ждём конца пересылка
    		SPDR = adress;                   //Пересылаем младший байт адреса
    		while(!(SPSR & (1<<SPIF)));
    		SPDR = op|(RWB_WRITE<<2);        //Применяем операцию "или" к опкоду и битом записи, сдвинутым на два бита
    		while(!(SPSR & (1<<SPIF)));
    		SPDR = data;                     //Передаём данные
    		while(!(SPSR & (1<<SPIF)));
    		//deselect_w5500();
    	}
    

    Функция чтения точно такая же, за исключением того, что я по-другому формирую опкод (op|(RWB_READ<<2) и в конце не пересылаю данные в SPDR, а возвращаю их (return SPDR). Если можно как-нибудь по-другому проверить работоспособность чипа, то я буду рад об этом узнать.

    #15100

    Narod Stream
    Хранитель

    Проверьте отклик логическим анализатором

  • Автор
    Сообщения
  • #13888

    arkonen
    Участник
    • Оффлайн

    Всех с новым годом . Товарищи помогите , подскажите как реализовать SNMP в AVR ? Или может статьи есть у кого то интересные где почитать можно ?

    #13933

    VladimirM
    Участник
    • Оффлайн

    Здравствуйте. В ATmega328P есть регистры OCR0B, OCR0A у меня вопрос, если будет установлен режим сброс при совпадении, а значения в регистрах будут разные, получается что счётчик не дойдёт до второго числа в регистре которого число больше и будет всё время сбрасываться, так как регистр TCNT0 один,а регистра сравнения (OCR0B,OCR0A) два! Так ли это? Как они работают?

    #14621

    arkonen
    Участник
    • Оффлайн

    Доброго времени суток , подскажите пожалуйста как можно безболезненно в AVR всунуть SNMP ?
    Может подскажите ссылки , ну или хотя бы направьте в нужное русло !

    #14623

    Ortos
    Участник
    • Оффлайн

    Доброе время суток.
    Подскажите пожалуйста как подключить точку через 74hc595 для часов.
    Спасибо.

    #14780

    Leonid
    Участник
    • Оффлайн

    Спасибо автору за его бескорыстную просвятительскую (надо сказать отлично выполненную) работу!

    Теперь, не совсем в тему, посмотрел на ваш урок в ютьюбе и честное слово, позавидовал работе вашего компьютера. Быстро, четко без задержек на внутренние задержки, даже при работе с «железом»! ВОПРОС, если не составит труда дайте конфигурацию вашего компа и операционной системы… Уж ОЧЕНЬ хочется такой же…

    #15095

    Selivanov
    Участник
    • Оффлайн

    Владимир, добрый день!
    Свой вопрос я хотел бы начать с благодарности: большое спасибо за канал! Ещё недавно будучи студентом универа,
    я смотрел Ваши и ролики и, скажем так, набирался ума. Само собой, это пошло на пользу, и дисциплину, связанную с
    программированием МК, я закрыл на хорошую оценку.
    Теперь непосредственно вопрос: у Вас есть очень интересный цикл уроков про микроконтроллер STM32 и сетевой чип W5500.
    Скажите, пожалуйста, реально ли Ваш код переставить на «рельсы» AVR? Я пытался переделать его самостоятельно (я хочу
    поднять простой UDP сервер), но у меня ничего не выходит. Не могли бы вы дать несколько советов, как инициализировать
    чип на AVR (я, в частности, использую Atmega32)? Я делаю практически всё то же самое, но не знаю, в чём может крыться
    ошибка (может быть, даже неправильно написана функция передачи по SPI). Помогите, пожалуйста, уже почти месяц
    бьюсь над этой проблемой. Если что, могу даже скинуть свой код.
    Спасибо. Каким бы ни был результат, я обещаю задонатить, так как считаю, что такие полезные ресурсы должны иметь поддержку.

    #15096

    Narod Stream
    Хранитель
    • Оффлайн

    Здравствуйте!
    А чип отзывается по SPI?

    #15099

    Selivanov
    Участник
    • Оффлайн

    Этого я не проверял. Я написал функцию пересылки данных по SPI, и начал писать в регистры W5500 необходимые данные: ip, mac, порт и всё остальное. У меня, к сожалению, самый простой программатор, без отладчика, поэтому отладить код не могу. Наверное, мне стоит попробовать прочитать эти данные, чтобы удостовериться, что они действительно доходят до места назначения, но я даже не уверен, что пересылку организовал правильно. Код привожу ниже:

    void w5500_writeReg(uint8_t op, uint16_t adress, uint8_t data)
    	{
    		//select_w5500();                //Функцию выбора SS закомментировал
    		SPDR = (adress>>8);              //Пересылаем старший байт адреса
    		while(!(SPSR & (1<<SPIF)));      //Ждём конца пересылка
    		SPDR = adress;                   //Пересылаем младший байт адреса
    		while(!(SPSR & (1<<SPIF)));
    		SPDR = op|(RWB_WRITE<<2);        //Применяем операцию "или" к опкоду и битом записи, сдвинутым на два бита
    		while(!(SPSR & (1<<SPIF)));
    		SPDR = data;                     //Передаём данные
    		while(!(SPSR & (1<<SPIF)));
    		//deselect_w5500();
    	}
    

    Функция чтения точно такая же, за исключением того, что я по-другому формирую опкод (op|(RWB_READ<<2) и в конце не пересылаю данные в SPDR, а возвращаю их (return SPDR). Если можно как-нибудь по-другому проверить работоспособность чипа, то я буду рад об этом узнать.

    #15100

    Narod Stream
    Хранитель
    • Оффлайн

    Проверьте отклик логическим анализатором

Просмотр 9 сообщений - с 16 по 24 (из 24 всего)

Для ответа в этой теме необходимо авторизоваться.