roboforum.ru

Технический форум по робототехнике.

Atmega8 без Adruino + RPi

Резисторы, транзисторы, конденсаторы, микросборки, чип компоненты ...
Вопросы согласования управляющих модулей с периферией.

Atmega8 без Adruino + RPi

Сообщение gppsoft » 10 апр 2014, 10:04

Здравствуйте. Вопрос такой, могу ли я использовать микроконтроллер без самой платы Arduino? Дело в том, что у меня есть робот построенный на базе Raspberry Pi. А как известно у RPi нет аналоговых входов. Я хочу сделать индикатор уровня заряда аккумулятора на Atmega8. А именно Atmega8 считывала бы уровень заряда с делителя напряжения и по I2C передавала эту информацию RPi. Сама плата Arduino у меня есть, так что в принципе я могу запрограммировать ее на плате вытащить и подключить контроллер без платы. Но будет ли работать? Насколько я знаю в Arduino используется внешний кварц. Будет ли МК работать без него? Заранее спасибо за ответы!
gppsoft
 
Сообщения: 86
Зарегистрирован: 09 апр 2014, 07:56

Re: Atmega8 без Adruino + RPi

Сообщение Myp » 10 апр 2014, 10:52

вот это: http://www.ebay.com/itm/MCP3008-I-P-DIP ... 19e742c8ce
+ вот это: http://www.raspberrypi-spy.co.uk/2013/1 ... n-mcp3008/
=гораздо лучший вариант)

чтобы запрограммировать мегу8 скетчем ардуины воткнув в плату ардуины, мега8 должна быть заранее прошита загрузчиком.
но прошив загрузчиком, мега8 перестанет работать без кварца(по умолчанию она работает без кварца) по этому даже если ты прошьёшь загрузчик, прошьёшь скетч, то мега уже не будет работать без внешнего кварца и придётся делать плату с кварцем.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Atmega8 без Adruino + RPi

Сообщение gppsoft » 10 апр 2014, 11:32

Myp писал(а):вот это: http://www.ebay.com/itm/MCP3008-I-P-DIP ... 19e742c8ce
+ вот это: http://www.raspberrypi-spy.co.uk/2013/1 ... n-mcp3008/
=гораздо лучший вариант)

чтобы запрограммировать мегу8 скетчем ардуины воткнув в плату ардуины, мега8 должна быть заранее прошита загрузчиком.
но прошив загрузчиком, мега8 перестанет работать без кварца(по умолчанию она работает без кварца) по этому даже если ты прошьёшь загрузчик, прошьёшь скетч, то мега уже не будет работать без внешнего кварца и придётся делать плату с кварцем.

Спасибо за ответ! Atmega8 у меня уже с загрузчиком и кварц вроде есть. Просто я заказав с ebay компоненты буду ждать их месяц. А руки чешутся сейчас :) Ну т.е все получится если я запрограммирую МК на плате ардуины, вытащу ее из нее, припаяю кварц и подам питание на ногу, а "аналоговую ногу" кину на делитель? Еще на сколько я успел нагуглить есть фьюзы(как я понял это некоторые "флаги" в определенном участке памяти отвечающие за некие параметры) с помощью которых я могу включить внутренний кварц на 1Mhz? Я просто только начинаю вникать в МК и электротехнику... Может что-то не так понимаю. Еще раз спасибо!
gppsoft
 
Сообщения: 86
Зарегистрирован: 09 апр 2014, 07:56

Re: Atmega8 без Adruino + RPi

Сообщение Myp » 10 апр 2014, 12:30

да можно внутренний кварц включить фьюзами.

тока частота должна быть как и в плате ардуино когда заливаешь прошивку, тоесть 16 мГц
а на 16 мГц внутренний не работает.
программа скомпилирована под 16 Мгц ардуиновских и на 1 мГц внутреннем будут несовпадать все скорости и т.п.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Atmega8 без Adruino + RPi

Сообщение gppsoft » 10 апр 2014, 13:15

Myp писал(а):да можно внутренний кварц включить фьюзами.

тока частота должна быть как и в плате ардуино когда заливаешь прошивку, тоесть 16 мГц
а на 16 мГц внутренний не работает.
программа скомпилирована под 16 Мгц ардуиновских и на 1 мГц внутреннем будут несовпадать все скорости и т.п.

Так... Но я смогу прошить ардуиновской платой МК если в нем будет включен фьюз на 1Mhz? Мне то всего лишь надо периодически передавать по шине I2C данные полученные от делителя. Думаю 1Mhz хватит для этих целей? Мне время исполнения программы не так важно в данном случае. Или лучше все таки просто припаять кварц?
gppsoft
 
Сообщения: 86
Зарегистрирован: 09 апр 2014, 07:56

Re: Atmega8 без Adruino + RPi

Сообщение Radist » 10 апр 2014, 17:52

А почему нельзя по простому? Просто МК с кварцем, программу в него зашить программатором, и при этом ни разу не вспомнив слово "ардуино".
Аватара пользователя
Radist
 
Сообщения: 2253
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Atmega8 без Adruino + RPi

Сообщение Myp » 10 апр 2014, 20:03

программатор нужен :)

его надо либо покупать либо.... использовать ардуино в качестве программатора :ROFL:
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Atmega8 без Adruino + RPi

Сообщение Radist » 11 апр 2014, 03:35

А чтоб загрузчик зашить тоже нужен программатор. Или было предложено из ардуины МК выдернуть? Зачем портить хорошую вешь? Еще раз перечитал начало топика. Так и есть. Работать МК будет с внешним кварцем. А ардуину жалко.
Аватара пользователя
Radist
 
Сообщения: 2253
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Atmega8 без Adruino + RPi

Сообщение gppsoft » 11 апр 2014, 08:07

Radist писал(а):А чтоб загрузчик зашить тоже нужен программатор. Или было предложено из ардуины МК выдернуть? Зачем портить хорошую вешь? Еще раз перечитал начало топика. Так и есть. Работать МК будет с внешним кварцем. А ардуину жалко.


Да просто на робота крепить целую ардуину не охота. У меня две меги, одна в ардуине останется(вот такая у меня), другую без нее надо заставить работать в качестве АЦП для RPi.. К тому же я там смогу собирать статистику по заряду-разряду аккумулятора и т.д.

Добавлено спустя 1 минуту 4 секунды:
Myp писал(а):программатор нужен :)

его надо либо покупать либо.... использовать ардуино в качестве программатора :ROFL:

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

Добавлено спустя 39 минут 29 секунд:
Подумал тут. А почему бы мне не использовать Atmega8 для контроллера не только питания но и двигателями? Сейчас у меня на RPi занято 8 пинов для упарвления 4 двигателями. А что если я буду давать команды к примеру по UART на Atmega8, а он уже контролировать двигатели, питание и т.д.. И всю эту телеметрию отдавать по UART на Rpi? и два SPI у меня будут свободны. Один на RPi другой на Atmega8... Да вообще много освободится пинов :) Много ли потребляет Atmega8? Как вам такая идея?
gppsoft
 
Сообщения: 86
Зарегистрирован: 09 апр 2014, 07:56

Re: Atmega8 без Adruino + RPi

Сообщение Myp » 11 апр 2014, 09:25

да, в ардуину можно прошить прошивку которая превращает ардуину в программатор :) можно прошивать микроконтроллеры.

Добавлено спустя 38 секунд:
Radist писал(а):А чтоб загрузчик зашить тоже нужен программатор.

у него мега 8 с загрузчиком уже ;)

так что куда не плюнь везде ардуина)))
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Atmega8 без Adruino + RPi

Сообщение gppsoft » 11 апр 2014, 09:28

Myp писал(а):да, в ардуину можно прошить прошивку которая превращает ардуину в программатор :) можно прошивать микроконтроллеры.

Добавлено спустя 38 секунд:
Radist писал(а):А чтоб загрузчик зашить тоже нужен программатор.

у него мега 8 с загрузчиком уже ;)

так что куда не плюнь везде ардуина)))

Как оказалось у меня "чистая" Atmega8. Пытаюсь сделать так. А какую прошивку мне нужно зашить в дуину чтобы превратить в программатор? У меня Atmega168. Спасибо!
gppsoft
 
Сообщения: 86
Зарегистрирован: 09 апр 2014, 07:56

Re: Atmega8 без Adruino + RPi

Сообщение Myp » 11 апр 2014, 09:32

ну там же в инструкции написано чо как :) просто сделай так же
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Atmega8 без Adruino + RPi

Сообщение gppsoft » 11 апр 2014, 15:25

Myp писал(а):ну там же в инструкции написано чо как :) просто сделай так же

Сделал так же, но выдает:
"Размер скетча в двоичном коде: 890 байт (из 7 168 байт максимум)
avrdude: Expected signature for ATMEGA8 is 1E 93 07
Double check chip, or use -F to override this check."

Добавлено спустя 18 минут 47 секунд:
Кстати сообщает ту же ошибку даже если я вообще отключаю все проводки. Что это может означать?

Добавлено спустя 21 минуту 12 секунд:
Вот вывод полный:
Код: Выделить всёРазвернуть
avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware/tools/avr/etc/avrdude.conf"

         Using Port                    : \\.\COM8
         Using Programmer              : arduino
         Overriding Baud Rate          : 19200
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
         AVR Part                      : ATMEGA8
         Chip Erase delay              : 10000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom         4    20   128    0 no        512    4      0  9000  9000 0xff 0xff
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           flash         33    10    64    0 yes      8192   64    128  4500  4500 0xff 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lfuse          0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           hfuse          0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lock           0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           calibration    0     0     0    0 no          4    0      0     0     0 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
avrdude: Send: A [41] . [80]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [02]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [81]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [01]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [82]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [98]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [03]
avrdude: Recv: . [10]
         Hardware Version: 2
         Firmware Version: 1.16
avrdude: Send: A [41] . [84]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [85]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [86]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [87]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [89]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: Send: A [41] . [81]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [01]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [82]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: Recv: . [10]
avrdude: Send: B [42] p [70] . [00] . [00] . [01] . [01] . [01] . [01] . [02] . [ff] . [00] . [ff] . [ff] . [00] @ [40] . [02] . [00] . [00] . [00]   [20] . [00]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: Send: E [45] . [05] . [04] . [d7] . [c2] . [00]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: Send: P [50]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: AVR device initialized and ready to accept instructions

Reading | avrdude: Send: u [75]   [20]
avrdude: Recv: . [14] . [1e] . [94] . [06] . [10]
################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9406
avrdude: Expected signature for ATMEGA8 is 1E 93 07
         Double check chip, or use -F to override this check.
avrdude: Send: Q [51]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]

avrdude done.  Thank you.

Как я понимаю Arduina как ISP программатор не завелась? Потому как в логе сообщается: avrdude: Device signature = 0x1e9406, т.е Atmega168 которая у меня и установлена в Arduino.

Как пофиксить? Вот как! :Yahoo!:

Добавлено спустя 54 минуты 19 секунд:
Теперь другая проблема. Сначала прошилось и работало нормально. Попробовал прошить еще раз и теперь ловлю:
Код: Выделить всёРазвернуть
avrdude: verification error, first mismatch at byte 0x0000
         0x3f != 0x00
avrdude: verification error; content mismatch


Заработало с внешним кварцем! Видимо фьюзы как то установились. Теперь вопрос! Как сделать так чтобы опять работало с внутренним кварцем?

Добавлено спустя 3 часа 56 минут 51 секунду:
Вообщем сделал так. С каким-то новым загрузчиком(не шарю вообще) и внутренний кварц на 8Mhz! :). Вообщем прошивается отлично, но только один раз, при повторной прошивке вылетает:
Код: Выделить всёРазвернуть
avrdude: verification error, first mismatch at byte 0x0000
         0x3f != 0x00
avrdude: verification error; content mismatch

и приходится заново записывать загрузчик и программу. Объясните почему так происходит?
gppsoft
 
Сообщения: 86
Зарегистрирован: 09 апр 2014, 07:56

Re: Atmega8 без Adruino + RPi

Сообщение Myp » 11 апр 2014, 16:40

вероятно при прошивке затирается кусочек загрузчика...
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Atmega8 без Adruino + RPi

Сообщение gppsoft » 11 апр 2014, 17:55

Myp писал(а):вероятно при прошивке затирается кусочек загрузчика...

Но как тогда программа работает? Да это не важно даже на каком загрузчике. Всегда такая ерунда.

Добавлено спустя 1 час 5 минут 37 секунд:
Как я понял по вот этой инструкции я прошиваю загрузчик. Но как мне теперь программы заливать в МК?

А вот и ответ! А я блин шил все через ISP... Сначала загрузчик, а потом программу поверх него :) Капец! Весь день убил! :)
gppsoft
 
Сообщения: 86
Зарегистрирован: 09 апр 2014, 07:56

След.

Вернуться в Электроника, электротехника

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2