Borisov_E

Помогите Выбрать - Pic Или Avr Или Arm

266 сообщений в этой теме

Borisov_E    1

Давно с завистью смотрю на тех кто умеет делать всякие штучки на микроконтроллерах, вроде дозрел до того чтобы и самому что-то попытаться сделать, попытаться научится программировать. Полазил по форумам и не очень понятно за что браться :rolleyes: PIC, AVR или ARM Хочу купить какое то железо, так как в симуляторах играться не очень интересно хотя может быть и полезно когда понимаешь что делаешь.

С чего бы вы почоветовали начать ? Конечно книги надо читать и DVD с книгами навернчка будет полезен. Если выберу платформу то тогда уже понятней будет куда дальше двигаться.

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


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

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
Shahabbas    210

Я начал с PIC , программу составил прогой FlowCode . Просимулировал в Proteusе , собрал в железе - работает .

По логике работы 1 микроконтроллер PIC12F675 и 4 резистора заменили мне 12 микросхем 74 серии 4 таймера 555 и кучу резисторов и конденсаторов . В итоге с первоначального варианта платы 10X10 сантиметров получилась плата 1,5X2 сантиметра с более чёткой работой и возможностью вносить изменения в логику работы не паяльником , перепахивая плату , а меняя программу контроллера . :)

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

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


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

Да преимущества МК мне очевидны, просто предложений масса и что выбрать неясно, ясно только что в АРМ наверно не стоит начинать. Кто разбирается подскажите по функциональности и рациональности тех макеток - что бы мне купить чтоб не ошибиться.

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


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

Если начинаете - то разницы особой нет с чем начинать... Они все одинаковы.. АРМ имеет преимущество что на нём ходит и ЛИНУКС... Если получится его там завести то потом сидите и пишете как на нормальном компе, только медленном :) А иначе - начинать желательно с того что можно недорого и в нужном количестве купить в вашем районе. Потому что во время изучения - будут жертвы :)

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


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

Почитал про макетку на AVR - там написано что можно ик USB подключать а в PIC такого не пишут, програмная реализация USB это интересно, но для каких устройств это можно применить ? Примочки приставки - гаджеты :) к ПК ? Измерение и управление с компьютера.

wowa, спасибо за совет и предупреждение про жертвы ! Тогда наверно макетку возьму на AVR так как похоже что это единственная макетная плата где микроконтроллер не впаян а в панельку ставится без пайки - значит легко заменить на другой и возможно еще ATmega8 закажу парочку-троечку. Я попоискам полазил по яндексу - на ATmega8 очень много устройств в интернете и как я понимаю в панельку вместо нее можно и ATmega168 поставить - т.е. получится Arduino очень недорогая, к ней ведь полно разных любительских проектов. Надеюсь к концу января, если получу макетку быстро, мне удасться помигать светодиодами а может побегать ими и главное понять почему и как они мигают. :rolleyes:

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


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

Послал письмо с запросом макетки всеж под AVR без пайки в панельку, но не буду мегу16 а попросил 2 меги8 - теперь у меня ДВА шанса вместо одного :) Взял тетрадь толстую на пружине - рабочий журнал будет - все вопросы буду писать в него и главное решения.

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


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

Если умеешь делать платы - почему бы не сделать самому? И приятнее, и даже дешевле (всякие макетки и прочие готовые комплекты, как правило, неоправданно дорогие).

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


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

За помощь огромное спасибо. Скачал архив и обязательно изучу и посмотрю.

Я умею делать платы, я с электроникой хорошо знаком, это микроконтроллеры для мнея пока неведомы. Я заказал плату с набором компонентов потому что 450 рублей вроде не дорого и почта 120, плата с качественной металлизацией - такую я ЛУТ-ом не сделаю, микроконтроллеров ATmega8 по 48 рублей и ATmega16 по 80 рублей я больше ни где не видел.

Вот в чип-дипе ATmega8 по 220 рубликов - http://chip-dip.ru/product0/261212708.aspx почта в чип-дипе 350 рублей.

Такая же почти макетка в чип-дипе 1500 рублей http://chip-dip.ru/product0/674886318.aspx - БЕЗ МК ! вообще мрак.

Кроме того, пока идет посылка, планирую теорию поштудировать чем и занимаюсь щас, в моем журнале уже появляются вопросы, постараюсь найти ответы сам, что не найду буду туту спрашивать.

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


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

Нафиг ничего не надо покупать было и симуляторов тоже не надо. Надо найти сайт Корабельникова и почитать открытую инфу из самоучителя. Там немного. Доступными словами. Самое основное. Воды-минимум.

Если знаком с регистрами, триггерами и проч. то времени для понимания основ много не потратишь. У меня ушло где то пара чтения часов чтения вечером в кровати чтобы понять основы, и этого уже хватит для изготовления простых устр-в.

Программатор Пони-прог спаял сам с отдельным питанием стоимость деталей меньше 30-ки. Ну и если всё же решитесь юзать ПИКи, то обязательно MPLAB.

МК придуманы чтобы всё упростить. Помните это.

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

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


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

Я тоже начинающий, делюсь опытом того, как начинал)))

Начал с АВР. У меня была на тот момент конкретная задача (простая), решил изучить МК, за одно и полезное чета сделать. Тоже остановился на авр по простейшей причине - не хотелось делать программатор :)

Из железа купил штеккер ЛПТ и Мегу16. У нас она порядка 22грн стоила (=3$). Ну, сначала попробовал написать первые 3 проги из курса и проганял их в симуляторе. Работало далеко не с первого раза :) МК сначала не шил. Потом написал свою прошивку, поганял в симуляторе - исправлял баги, и потом прошил. Еще поисправлял баги... На все, с момента изучения до 1-й собвственной работающей программы ушел где-то месяц) долгий я в этом деле... Зато ничего не спалил :)

На первое время, советую остановится на 1 ХОРОШЕМ источнике информации. Потому что сначала много чего не яно. Я когда начинал, то не представлял себе что такое регистр и СИ...

В общем-то пользовался курсом 123авр и ДШ, чтобы не путать карты. Не говорю, что это самое лучшее из всего, т.к. незнаю, но там достаточно хорошо все описано. Распечатал себе 2-7 страницу курса (примерно 150 листов) и читал в свободное время. + удобно отлаживать на компе, когда инфра на бумаге.

Удачи в экспериментах!

P.S. SviMik прав, симуляторы чильно напрягают. Но для начала - для светодиодов нормально :) Не умертвишь МК, установив неправильно фьюзы. Кстати, о них, если будешь делать в АВРстудио, то там по дурацки немного сделано с этими фьюзами - можно запутаться первое время.

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


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

Друзья, огромное вам спасибо за советы и за желание помочь!

Пока набор для AVR в пути я уже читаю и все же поставил компилятор CVAVR симулятор VMLAB и симулирую - есть кайф но пока только повторяю то что просят делать в обучалке, пока повторяю не все понимая, но круг - редактирование, перекомпиляция, симуляция уже освоил :D Щас качаю студию и PROTEUS.

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


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

Рекомендую начать с ассемблера. Это вам поможет в понимании того как все работает. Сразу оговорюсь, что легко не будет.

На счет Си, CVAVR не лучший пример компилятора. Лучше взять WinAVR, он интегрируется в AVR Studio и абсолютно бесплатный.

В CVAVR есть только один плюс для начинающего, а именно Wizard.

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


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

Я на мастер и купился как неопытный рыбак на красивую снасть :) Я написал что качаю Студию и WinAVR тоже качну позже, наверняка ведь код мастера CVAVR можно будет и в WinAVR использовать.

И за АСМ спасибо. Даже если на Си учится то что-то из АСМ-а всеравно надо наверно знать.

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


Ссылка на сообщение
Поделиться на других сайтах
Daddy Karlo    3
Надо найти сайт Корабельникова и почитать открытую инфу из самоучителя.

помоему у него уже все закрыто. вторая часть в миру ходит?

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


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

Да в миру то, естественнно, весь самоМучитель ходит уж давно. Страно былобы еслиб не ходил.

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


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

Я щас читаю ХХХХ - очень понятно написано, но до практики на железе я еще не дошел, так как жду получения заказаных макеток с деталями и ATmega8? пока в симуляторах пробую код.

Изменено пользователем wowa
Реклама Сайта николаева запрещена!!!!

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


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

Я тоже плату заказал, и две АТмега16, сейчас пока что разбираюсь с Flowcode_AVR, и параллельно с ней потихоньку учу Си...

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


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

Думаю Flowcode_AVR не есть хорошо, я разбираюсь с Си. Порыв интернет мне стало очевидно что Си это стандарт дефакто для встраиваемых систем и для Avr PIC ARM и подобных камушков.

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


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

У меня немного другой случай... В тот момент когда мне на глаза попалась Flowcode_AVR, я уже честно говоря подумывал бросить все это дело... Из-за Flowcode_AVR у меня появился дополнительный интерес к изучению контроллеров и их программирования...

P.S. Не сочтите за рекламу....

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

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


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

Главное чтоб с удовольствием было и чтоб получалось :D а в МК все равно .hex заливать.

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


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

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

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

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

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

Загрузка...

  • Похожие публикации

    • Автор: Atreides
      Добрый день. Мне требуется реализовать программный юарт на атмеге16. Он нужен для того, чтобы принятые по нему данные отправить на аппаратный юарт. В интернете нашел примеры кода, но понять его мне трудно. Прошу вас словами в общих чертах объяснить принцип реализации программного юарта. Буду рад примерам, которые, на ваш взгляд, являются наиболее простыми и понятными. Заранее спасибо.
    • Автор: EugenArt
      Всем доброго времени суток!
      в поиске не смог найти инфо, поэтому создал тему, не ругайте, если ошибся с веткой.
      Идея следующая, есть автомагнитола deh-3600MP c выходом Ip-bus.Хочу подружить магнитофон с мп3 плеером (есть от фм-трансмиттера, завтра куплю платку отдельного мп3). Сразу подчеркну, что хочу управление плеером (треки, теги, пауза и т.д) с головного устройства.
      предполагаю схему так:  ip-bus - avr - mp3 player.
      алгоритм avr-mp3 несложен и открыт, а вот описание протокола ip-bus нигде нет, форум витат.спб уже изучил, есть кусок кода работы авр и ip-bus, но не очень понятно, может подскажете набор команд ip-bus или что происходит по событию нажатию кнопки вперед/назад.
      Заранее благодарен.
    • Автор: Максим Окатов
       
      Товарищи, помогите пожалуйста. Данная програмулина при нажатии на кнопку входит в функцию MinU() в которой инициализирует таймер для задержки(ждем отпустит пользователь кнопку или нет) если кнопка не отпущена то уменьшаем скважность ШИМ.
      проблема в выделенной красным строчке! когда count больше 3 уменьшаем скважность, но в отладчике AVR studio, Proteus и в железе не робит.
      Перепрыгивает действие в {} так будь-то условие не выполнено...
      #define F_CPU 1000000L
      #include <avr/io.h>
      #include <avr/interrupt.h>
      #include <util/delay.h>
      unsigned char count = 0;
      unsigned char a=5,s=3,b=0;
          //===================================Насройка таймера====================
      void Timer_ini(void){
         TCCR1B = (1<<CS12)|(0<<CS11)|(0<<CS10);
         TCNT1 = 65535-976;
         TIMSK |= (1<<TOIE1);
         count = 0;
        }
          //===========================настройка шим===========================
      void PWM_ini(void){
         ASSR=0x00;
         TCCR2=0b01101110; //На выводе OC1A единица, когда OCR1A==TCNT1, восьмибитный ШИМ
         OCR2=200;
      }
      //===============
      void MinU(){
          unsigned char i=0;
          Timer_ini();
          while (!(PINB&0b00000010)){
              if(count>2){        //Если таймер считал более двух раз
                _delay_ms(100); // ждем 100 мс
                OCR2--; // Уменьшаем скважность
                i=1;        // были в плавном уменьшении
            }
            
         }
         if (i!=1) // если не были в плавном уменьшении
         {
             OCR2=OCR2-50;
             i=0;
         }
      }
              //=======================================================
      int main(void)
          {
             
              // Настраиваем порт D на выход
              DDRB = 0b00001000;
              PWM_ini();
              //Timer_ini();
              sei();
              
              
              while(1)
              {
                  b=a-s;
                  if (!(PINB&0b00000010))
                  {
                      MinU();
                  }/*
                  //if (!(PINB&0b00000100))
                  //{
                      //PlsU();
                  //}*/
              }
              return 0;
          }
          
          ISR (TIMER1_OVF_vect)
          {
              count++;
              TCNT1 = 65535-976;
                  }
       
       
       
    • Автор: Serg_Mang
      Можно ли залить в arduino прошивку, предназначенную для чистого AVR?
    • Автор: Дмитрий Мартынов
      Здравствуйте!
      Пишу программу на C++ для управления LCD (HD44780) по I2C через модуль расширения портов ввода/вывода PCF8574AT.
      void LCD_I2C::readBF() { transmitByte(0b00001110); //transmits E, RW set to HIGH and RS, set to LOW _delay_ms(5); transmitByte(0b00001010); //transmits E, RS set to LOW and RW set to HIGH _delay_ms(5); initRestart(); transmitAddrRW(0b01111111); //sends PCF8574AT address + SLA+R do { receiveDataAck(); PORTA = storage; } while((storage & (1 << BF)) != 0); //wait until BF is 0 initRestart(); transmitAddrRW(0b01111110); } Метод void transmitByte(uint8_t data) после инициализации состояния "Старт" и отправки адреса устройства + SLA+W отправляет байт данных по TWI с ожиданием бита подтверждения (команды работают верно, проверял по регистру статуса TWI - 0x08, 0x10 и 0x24).
      Метод void transmitAddrRW(uint8_t address) отправляет соответственно SLA+W/R + адрес устройства (команда работает также верно). Нареканий к работе TWI у меня нет, т.к. недавно с его помощью успешно запустил часы DS1307 с интеграцией LCD.
      После передачи запроса на чтение флага занятости инициализируется состояние "ПОВСТАРТ", отправляется адрес устройства + SLA+R, далее идет цикл - запрос байта данных (состояние выводов PCF8574AT) с отправкой бита подтверждения uint8_t receiveDataAck() (команды работают также верно, возвращает storage = TWDR) и вывод storage на порт А микроконтроллера (там установлены светодиоды).
      Чтение регистра данных TWDR после принятия байта данных (receiveDataAck()) дает следующий результат - 0b00000010 - установлен только бит RW микросхемы. Таким образом, флаг занятости BF = DB7 = 7й бит оказывается сразу же сброшенным, происходит мгновенный выход из цикла - контроллер дисплея не успевает скушать информацию, и инициализация не выполняется (неудачную инициализацию определяю по отсутствию курсора). Ожидалось, что флаг занятости будет установлен в единицу и произойдет несколько итераций перед выходом из цикла.
      При замене метода ожидания сброса флага занятости BF на программную задержку в 250 мс везде, где это требует datasheet - инициализация происходит успешно (появляется курсор, как и должно быть).

      Вопрос: что можно сделать, чтобы вместо _delay_ms(250) использовать readBF(), т.к. этот путь мне кажется более верным (уж очень не хочется использовать задержку .__.)? Возможно, проблема в микросхеме, которая неверно выдает информацию при чтении? (Имеется вторая микросхема, она вообще не работает:D)

      З.Ы. На фото виден результат чтения флага BF и Adress Counter - установлен только бит RW.  



      З.Ы.Ы Кому интересно - вот функция main(). Повторюсь - проблема только в методе readBF():
      void LCD_I2C::init() { setBitRate(20000); initStart(); transmitAddrRW(0b01111110); //send PCF8574AT address + SLA+W _delay_ms(60); sendInstruction(0b00110000); //function set 8-bit operation _delay_ms(20); sendInstruction(0b00110000); //function set 8-bit operation _delay_ms(5); sendInstruction(0b00110000); //function set 8-bit operation _delay_ms(5); sendInstruction(0b00100000); //function set 4-bit operation readBF(); //_delay_ms(250); //debug!! sendInstruction(0b00100000); //function set 4-bit operation, 2 lines, 5x8 dots sendInstruction(0b10000000); readBF(); //_delay_ms(250); //debug!! sendInstruction(0b00000000); //display off, cursor off, blinking off sendInstruction(0b10000000); readBF(); //_delay_ms(250); //debug!! sendInstruction(0b00000000); //display clear sendInstruction(0b00010000); readBF(); //_delay_ms(250); //debug!! sendInstruction(0b00000000); //entry mode set increment, display shift off sendInstruction(0b01100000); readBF(); //_delay_ms(250); //debug!! sendInstruction(0b00000000); //display on, cursor off, blinking off sendInstruction(0b11100000); readBF();/ }  
  • Сообщения

    • усилитель с платкой 1557 пришлось впаять в дохлую китайскую автомагнитолку В продаже Цена новая 900р,пересылка по России моя
    • Любопытное устройство. Но скорее это не балласт, а все-таки электронный трансформатор. Судя по диодам мостика, транзисторам и силовому трансформатору на 250-300Вт потянет. Похоже есть и защита, но не гарантирую - радиаторы заслоняют обзор. Если умеете, срисуйте схему, если нет, пришлите более четкие фото с обоих сторон.
    • Подскажите пожалуйста не сложную схему, что бы  она потребляла минимум  тока  в режиме бездействия. Время задержки на отключение можно не регулируемое- от 30 мин. до 2-х-3-х часов. Разброс времени выдержки в зависимости от перепада температур и прочих факторов- не важен. Емкость- размером не более 50 миллилитров  Цель- что-бы автомагнитола временно продолжала работать и дальше на проводе +12в  от аккумулятора, после отключения питания + 12 на проводе ААС  замком зажигания. По истечении выдержки  заданного времени, ток потребляемый схемой, желательно  до 5-10 мА, что бы не  разряжал аккумулятор при многодневных стоянках автомобиля.   Для справки-  в магнитоле предусмотрено подключение 2-х проводов питания :    тонкий +12в от замка зажигания (ААС)  и толстый +12в  напрямую от аккум. При  отключении питания ААС,  магнитола автоматически  выключается, ток потребления составляет - 6 мА. ,при этом +12 от аккум. не отключается.  При  подачи питания ААС,  ток потребляемый магнитолой увеличивается до - 60мА и только после этого можно  вкл. магнитолу и только вручную.
    • Малый тор крепление обфранцузь как нибудь. В глаз бьет
    • Ты че? Какие каскады,тут прямо к внятному специалисту. Вместе с главной микросхемой
    • - Вам нужно поменять материал, как минимум болтов и гаек. Наверное, тоже нержавейку. Т.к. она с "обьічньім" железом (сталью, цинком) образует пару, как медь-алюминий. Гуглите "Электрохимические пары и контакты между ними" или "Недопустимые гальванические пары".
    • Там вообще ОУ не используются. Нарисуйте свою схему с указанием номиналов и качественные фото монтажа покажите. И скажите что вы ждёте от этого усилителя? Нагрузка какая у него?