Jump to content
Borisov_E

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

Recommended Posts

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

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

Share this post


Link to post
Share on other sites

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

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

Edited by Shahabbas

Share this post


Link to post
Share on other sites

Вебинар STM32G0 – новый лидер бюджетных 32-битных микроконтроллеров от STMicroelectronics

Компания Компэл приглашает вас 25 сентября принять участие в вебинаре, который посвящен новому семейству микроконтроллеров STM32G0. Вебинар рассчитан на технических специалистов и тех, кто хорошо знаком с семейством STM32. На вебинаре будут освоены современные методы тестирования производительности микроконтроллеров на примере самых бюджетных 32-битных семейств общего назначения STM32G0 и STM32F0 и проведено их подробное сравнение.

Подробнее

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
                     

Литиевые батарейки Fanso в беспроводных датчиках пожарно-охранной сигнализации

Выбор подходящего элемента питания, способного обеспечивать требуемый уровень напряжения и выдавать необходимый ток на протяжении всего периода эксплуатации беспроводной пожарно-охранной системы является одной из первостепенных задач. Наиболее подходящим для этих целей элементом являются литий-тионилхлоридные элементы питания, а одним из наиболее конкурентоспособных производителей – компания Fanso, предлагающая своим клиентам продукты как универсальные, так и разработанные специально для решения конкретных задач.

Подробнее...

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

Edited by GDK

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
Надо найти сайт Корабельникова и почитать открытую инфу из самоучителя.

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Edited by Chekash

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Вячеслав_НС
      Здравствуйте ! подскажите , какую лучше библиотеку использовать (и где ее взять) для управления i2c atmega8 в atmel studio 7  .  задача - управлять atmega8 по i2c ,  цап  PCF8591T .
      понимаю , в интернете много примеров и библиотек , но хотелось бы пример максимально простой и точно рабочий . т.к. пока что все мои попытки не привели к успеху ... то Atmel Studio 7 при компиляции ругается на несуществующий файл ( к примеру - "stream.h") при использовании библиотеки i2c , то еще какие то грабли .
    • By Антон Плюшкин
      В общем есть небольшая тривиальная задача - сделать свитюльку. Контроллер управляет светодиодиками, цвета меняются, людишки довольны.
      Схема проста: Attiny44a -> 2n3904 x3 -> RGB-светодиод.
      Собрал, протестил, всё норм, но!
      Как только в коде я использую функцию задержки - _delay_ms (util/delay.h) - контроллер повисает!
      #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { // Input/Output Ports initialization // Port A initialization // Function: Bit7=Out Bit6=Out Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(1<<DDA7) | (1<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0); // State: Bit7=0 Bit6=0 Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); // Port B initialization // Function: Bit3=In Bit2=Out Bit1=In Bit0=In DDRB=(0<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit3=T Bit2=0 Bit1=T Bit0=T PORTB=(0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Phase correct PWM top=0xFF // OC0A output: Non-Inverted PWM // OC0B output: Non-Inverted PWM // Timer Period: 0,031875 ms // Output Pulse(s): // OC0A Period: 0,031875 ms Width: 0 us // OC0B Period: 0,031875 ms Width: 0 us TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (1<<WGM00); TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00); TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Ph. correct PWM top=0x00FF // OC1A output: Non-Inverted PWM // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer Period: 0,031875 ms // Output Pulse(s): // OC1A Period: 0,031875 ms Width: 0 us // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10); TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0); // Timer/Counter 1 Interrupt(s) initialization TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1); // External Interrupt(s) initialization // INT0: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-11: Off MCUCR=(0<<ISC01) | (0<<ISC00); GIMSK=(0<<INT0) | (0<<PCIE1) | (0<<PCIE0); // USI initialization // Mode: Disabled // Clock source: Register & Counter=no clk. // USI Counter Overflow Interrupt: Off USICR=(0<<USISIE) | (0<<USIOIE) | (0<<USIWM1) | (0<<USIWM0) | (0<<USICS1) | (0<<USICS0) | (0<<USICLK) | (0<<USITC); // Analog Comparator initialization // Analog Comparator: Off // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); ADCSRB=(0<<ACME); // Digital input buffer on AIN0: On // Digital input buffer on AIN1: On DIDR0=(0<<ADC1D) | (0<<ADC2D); // ADC initialization // ADC disabled ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); unsigned char VL_OCR0A = 0, VL_OCR0B = 0, VL_OCR1A = 0; OCR0A = 0; OCR0B = 0; OCR1A = 0; while(1) { _delay_ms( 100 ); VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } } Т.е. если указать задержку в начале цикла, то светодиод не светится вообще.
      Если задержку убрать - светодиод немного подсвечивает всеми цветами.
      while(1) { _delay_ms( 100 ); // <--- ЗАДЕРЖКА --- VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } Где я накосячил?
      З.Ы.: Замечаний по поводу оптимизации кода, излишних переменных и п.р. прошу не писать - изощряюсь как могу ибо не пойму почему не работает
    • By LegionKC
      Добрый день.
      Экспериментирую с платой TP4056 и MK ATmega8, конкретнее - пытаюсь собрать простенькое зарядное устройство с выводом параметров при зарядке/разрядке на АЦП МК. Для измерения тока нашел ACS712. Думаю, что получится выводить ток при зарядке (т.е. когда идет питание на TP4056 и нагрузка отключена) и при разрядке (питание выключено, нагрузка подключена). Нагрузка - резистор. Возникла проблема с измерением напряжения на АКБ. Вернее, проблема с отсутствием идей как это сделать. Может какую-нибудь схему делителя напряжения нужно сделать? Прошу помочь советом. Схему из пэинта прилагаю.
      Спасибо.
       

    • By Cheshire Cat
      Здравствуйте, только начинаю изучать программирование мк. Я уже задавал этот вопрос в моих прошлых схемах мне отвечали что-то типа "любой стабилизрованый источник постоянного напряжения", или кидали схему такого источника. Можно назвать мне конкретное устройство? В общем то что я смогу забить в гугл и приписать купить. 

      Я уже больше двух месяцев жду пока мне придут с aliexpress детали для маленького лабараторного блока, но этот вариант может разбиться о кривизну моих рук.  Хочу просто купить такой источник и наконец заняться непосредственно МК. 
    • By Cheshire Cat
      Здравствуйте, только начал изучать программирование микроконтроллеров. В учебнике есть схема, но она не учитывает питание и землю. Скажите правильно ли я её дополнил.
      И еще дополнительный вопрос. Что можно использовать как источник постоянного питания на 5В? Из не дорогого и того, что можно купить в Казани. Знаю, что лучший вариант - лабораторный БП, но они дорогие.

×
×
  • Create New...