Перейти к содержанию
    

Микроконтроллеры для начинающих

Спасибо большое за советы. У avrdude обнаружил волшебный ключик, -B5 и скорость стала якобы 187500 Hz.

 

И с miso/mosi я конечно ошибся. Переключил на PDI/PDO сообщение другое получаю.

При этом, если "перепутать" провода, то старое сообщение:

 

error: programm enable: target doesn't answer

 

А теперь у девайса id неправильный:

 

avrdude: Device signature = 0xffffff

avrdude: Yikes! Invalid device signature.

Double check connections and try again, or use -F to override

this check.

 

%(

Изменено пользователем пай-мальчик

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


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

А теперь у девайса id неправильный:

а что у вас с питанием на плате, есть чем померять? 5в присутствуют?

не знаю, что за LDO стоит для 12->5, но для такого типа корпуса обычно делают соединение фланцевого контакта и центрального - уточнить можно, найдя даташит на чип стабилизатора и посмотреть там типовую схему включения..

для проверки можно отпаять LDO и запитать от внешнего источника на 5В

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


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

Добрый день.

 

Разрабатываю плату для преобразования показаний с датчика давления и последующей передачи по UART. Выбрал следующую схему АЦП-attiny-UART. Скажите, пожалуйста, можно, допустим, снимать через SPI данные с АЦП в обычном режиме, а в режиме прошивки через те же ножки прошивать что-нибудь вроде attiny441? Или лучше взять attiny с двумя SPI (например, 167)?

 

Заранее спасибо

 

Ещё интересует следующий вопрос: сколько примерно максимально может потреблять attiny?

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

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


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

Скажите, пожалуйста, можно, допустим, снимать через SPI данные с АЦП в обычном режиме, а в режиме прошивки через те же ножки прошивать что-нибудь вроде attiny441? Или лучше взять attiny с двумя SPI (например, 167)?

Одного SPI достаточно. К разъему программатора ведете линии MISO и MOSI напрямую, а их же с АЦП соединяете через резисторы 1 Ком (на SCK резистор ставить не надо). Тогда АЦП не помешает прошивать МК, и сам от этой процедуры не пострадает. А ко времени работы с АЦП програматор будет уже отключен и тоже не помешает его работе.

 

Ещё интересует следующий вопрос: сколько примерно максимально может потреблять attiny?

Даташит надо смотреть, там есть график тока от напряжения питания (сильно зависит!). А кто же кроме вас, может знать, каким напряжением вы собираетесь питать Тиньку?

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


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

Не советую AVR для начинающих. Уж куда приятнее PIC. В преподавательской практике использовал оба - PIC схватывают на лету !!!

Есть подозрение - что из-за системы команд.

Согласен. AVR вышел после PIC. Некоторые просчеты архетектуры ранних PIC там устранили. В PIC, начиная с PIC18 то-же никаких трудностей с регистрами нет, но в целом PIC более привлекательны и понятны.

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


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

Согласен. AVR вышел после PIC. Некоторые просчеты архетектуры ранних PIC там устранили. В PIC, начиная с PIC18 то-же никаких трудностей с регистрами нет, но в целом PIC более привлекательны и понятны.

Дружище, проснитесь! Уж десять лет прошло. Расклад поменялся.

И даже тогда ПИКи рассматривались отдельно как недо-МК (по причине кривости системы команд и регистров, ограниченности ресурсов, невозможности программирования на Си).

А АВРы сразу позиционировались как замена i51 (легендарный 8515). Ну и до кучи мелкий 1200-й "заткнуть ПИКи".

Ну и не забываем, что Атмел "взял" всех своей флешовой версией i51. А 89С55й с 64К флеша!?

 

А про 18-е ПИКи не надо. Может и хороши они, да поздновато появились.

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


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

Дружище, проснитесь! Уж десять лет прошло. Расклад поменялся.

И даже тогда ПИКи рассматривались отдельно как недо-МК (по причине кривости системы команд и регистров, ограниченности ресурсов, невозможности программирования на Си).

А АВРы сразу позиционировались как замена i51 (легендарный 8515). Ну и до кучи мелкий 1200-й "заткнуть ПИКи".

Ну и не забываем, что Атмел "взял" всех своей флешовой версией i51. А 89С55й с 64К флеша!?

А про 18-е ПИКи не надо. Может и хороши они, да поздновато появились.

Учить 8-битники сейчас нет смысла. Их время уходит. Хотя я сам их часто ипользую ввиду простоты и удобства для небольших задач.

Нужно начинать сразу с Cortex M0, самого простого 32бит контроллера. Таким образом сразу привыкать к мейнстриму.

 

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


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

Очень интересует, поддерживает ли CodeVisionAVR язык C++?
Он и простой С не поддерживает. Он компилит со своего языка, похожего на C.

 

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


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

Подскажите где можно посмотреть соответствие настроек #pragma config? Проблемма такая Нужно настроить PIC18f97j94 на работус проэктом USB Keyboard (из примера микрочипа) от кварца 12МГц. Для этого надо поставить предделитель на 3, но в настройках прописано

       #pragma config STVREN   = ON      	// Stack overflow reset
       #pragma config XINST    = OFF   	// Extended instruction set
       #pragma config BOREN    = ON        // BOR Enabled
       #pragma config BORV     = 0         // BOR Set to "2.0V" nominal setting
       #pragma config CP0      = OFF      	// Code protect disabled
       #pragma config FOSC     = FRCPLL    // Firmware should also enable active clock tuning for this setting
       #pragma config SOSCSEL  = LOW       // SOSC circuit configured for crystal driver mode
       #pragma config CLKOEN   = OFF       // Disable clock output on RA6
       #pragma config IESO     = OFF      	// Internal External (clock) Switchover
#pragma config PLLDIV   = NODIV     // 4 MHz input (from 8MHz FRC / 2) provided to PLL circuit
       #pragma config POSCMD   = NONE      // Primary osc disabled, using FRC
       #pragma config FSCM     = CSECMD    // Clock switching enabled, fail safe clock monitor disabled
       #pragma config WPDIS    = WPDIS     // Program memory not write protected
       #pragma config WPCFG    = WPCFGDIS  // Config word page of program memory not write protected
       #pragma config IOL1WAY  = OFF       // IOLOCK can be set/cleared as needed with unlock sequence
       #pragma config LS48MHZ  = SYSX2     // Low Speed USB clock divider
       #pragma config WDTCLK   = LPRC      // WDT always uses INTOSC/LPRC oscillator
       #pragma config WDTEN    = OFF        // WDT disabled; SWDTEN can control WDT
       #pragma config WINDIS   = WDTSTD    // Normal non-window mode WDT.
       #pragma config VBTBOR   = OFF   

строчка #pragma config PLLDIV = NODIV не совсем понятна, где найти соответствие NODIV, где искать остальные возможные варианты? Пробовал поставить делитель цифрами, выдает ошибку ([1225] configuration value '3' not recognized for configuration setting 'PLLDIV'), поставил DIV3, ошибку не выдал, но то что это соответствует делителю 3 нет уверенности. Тоже самое и с настройкой FOSC = FRCPLL (для работы от 12МГц надо перенастроить)

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


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

Подскажите где можно посмотреть соответствие настроек #pragma config?

В хелпе к оболочке.

B MPLAB IDE 8.** это лежит (менюшки в оболочке): Help->Topics->PIC18 Config settings->PIC18F9xxx -> PIC18F97J94

 

В пристегнутом файле оно.

PIC18F97J94_config.pdf

 

 

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


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

Спасибо. Сегодня нашел этот хелп, после переустановки новой версии пакета.

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


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

Здравствуйте.

Начинаю изучать программирование AVR, есть много глупых вопросов, и лучшей темы чтобы их задать я не нашёл. Так вот, сначала некоторое описание ситуации, потом вопросы:

 

Работать буду с Atmega644. Писать собираюсь на С, специально для этих целей начал его учить, а язык ассемблера при этом не знаю.

Есть в железе собранный прибор(назовём его прибор А), построенный на этих МК, надо сделать на него программу, - это есть цель.

Есть другой прибор, который производится и продаётся (назовём его прибор Б), построенный на этом же МК, и есть к нему программа, написанная в CodeVisionAVR.

 

Читаю даташит на Atmega644, дошёл до 24-й страницы, где есть примеры кода записи и чтения EEPROM. В общих чертах эти механизмы работы с EEPROM понятны. Там показаны операции с регистрами МК, как на языке ассемблера, так и на С.

 

Так вот, после этого смотрю в программу на прибор Б, на подпрограммы чтения и записи EEPROM, и не вижу там ни одного названия регистра. Чтение с EEPROM там строится присвоением значений EEPROM-переменных к обычным, - просто копируются в оперативную память, как я понимаю. Точно так же строится запись, только наоборот, присвоением значений изменённых переменных EEPROM-переменным, и на этом всё, никаких регистров не упоминается. И вообще в программе в принципе нет упоминаний регистров МК, везде только переменные.

В связи с чем я не понимаю за счёт чего осуществляются операции работы с EEPROM.

Соответственно, все остальные примеры кода из даташита будут вызывать такой же вопрос.

 

Вопрос №1: Чтение/запись памяти и другие операции, требующие непосредственной работы с регистрами МК осуществляются в каких-то подключаемых библиотеках?

 

В этой программе (на прибор Б) подключены следующие библиотеки:

<mega644.h>

<delay.h>

<stdlib.h>

<lcd.h>

 

На первую библиотеку из списка описания не нашёл (ткните носом, если где-то есть), а в других вышеназванных библиотеках функций работы с EEPROM не увидел.

 

Вопрос №2: Что за тип данных такой bit в CodeVisionAVR? В языке С ведь нет типа boolean...

 

Вопрос №3: Посоветуйте среду разработки. Сомневаюсь между древней CodeVisionAVR 1.25.8 и Atmel Studio 6.1.

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

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

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

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

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

×
×
  • Создать...