Borisov_E

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

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

my504    154

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

Однако... unsure.gif Не слишком смелое утверждение? А для какого они возраста? И что там такого сложного?

Я бы тоже посоветовал начинать с ассемблера, поскольку, на мой взгляд, те кто начинал прямо с ЯВУ очень поверхностно представляют себе архитектуру МК. Не сильно заморачиваются на эффективности кода и использовании ресурсов МК.

Подход к разработке словно перед ними универсальная ЭВМ, а не специализированный вычислитель. И это не только у начинающих.

Просто дурею, когда разглядываю творения известных фирм по своему профилю работы... Элементарные задачи решаются аж тремя МК одновременно. И каких МК!!!... Словно у людей стоит задача впарить потребителю чипов поболее и подороже...

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


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

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

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

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

Спасибо за ответ.Только вот на оф.сайте уже нет версии 3.21.Гугл тоже ничего путнего не нашул.Будем искать и пробовать.А вообще-то я все прекрасно понимаю,что никто тебя не научит если ты сам не научишься.Приятно учить людей которые задают конкретные вопросы.А насёт ПЛК Вы правы,я работаю на нефтеперекачивающей станции наладчиком АСУ и мы их называем ПЛК,система у нас работает на Модикон.

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


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

Не нужно Вам 3,21... Качайте последнюю Студию, последний WinAvr - и будет у Вас возможность писать и Си-шные программы в той же самой Студии... Хотя я предпочитаю KamAVR или CodeBlock использовать в качестве редактора... Отладкой под Студией не пользуюсь - только Proteus. Если знать что делать - больше ничго не нужно... почти. О его возможностях... Можно ли промоделировать часы с механической разверткой в протеусе (propeller clock)? Можно... Только задержки потом подправить нужно иногда... Итого - джентельментский набор - Студия, WinAvr, Proteus, программатор способный работать со студией... И литература, тут Интернет безграничен...

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


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

my504"Не слишком смелое утверждение?"

Видимо, я слишком категоричен.

bars59"Только вот на оф.сайте уже нет версии 3.21"

У меня есть дистрибутив этой версии. Вес 5384кб. Могу выложить. Куда?

Goodefine "...Итого - джентельментский набор - Студия, WinAvr, Proteus..."

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

Для справки-

AVR STUDIO 4.18 116M

WinAvr не знаю

PROTEUS 140M

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


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

Господа! Подумайте сами, о чем у вас дебаты... Об оптимальном для начинающего комплекте программного инструментария.

И после этого человеку рекомендуют стартовать с Атмела? Полный бред...

Молодые норвежцы, которые все это замутили (с AVR) ессно ориентировались на бурный энтузиазм себе подобных, на достаточно стройную систему знаний эмбеддеров применяющих их продукт.

Потому и инструментарий для этой цели бессистемный и анархичный. Большая часть радиолюбителей так преданных Атмелу применяют его из-за простоты программатора на LPT. И только. А про его архитектуру они вообще ничего не знают. Ну если не считать знанием отрывочные сведения о цоколевке и ассортименте продукции.

Я потому и люблю применять Микрочип ( и не люблю Атмел, хотя по работе и приходится), что можно легко, быстро и ВСЕРЬЕЗ освоить МК. Начиная с простейшего базового семейства, где нет даже прерываний и, постепенно переходя на все более совершенные архитектуры вплоть до 24-ых сигнальных и 32-х ПИКов. при этом применяя очень развитый и доступный инструментарий. Причем бесплатный или весьма недорогой. И этот инструментарий не радиолюбительские поделки, а полноценные устройства и ПО к ним.

Относительно Протеуса.

Никому не советую. По крайней мере пока. Симуляторы штатных сред разработки с полной и своевременной поддержкой гораздо эффективнее для обучения "по настоящему", а не "по нарошку для прикола"...

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


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

aki Буду Вам благодарен.Напишите мне письмо на почту с моего профиля.

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

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


Ссылка на сообщение
Поделиться на других сайтах
Borisov_E    1
Итого - джентельментский набор - Студия, WinAvr, Proteus, программатор способный работать со студией... И литература,

Ого ! Я как раз и заказал на http://[пытался спамить но не получилось] недорого программатор AVR типа STK500 под AVRstudio и к нему в подарок идет DVD на котором как раз и есть то что вы советуете AVR Студия, WinAvr, Proteus и КНИГ более 100 включая и 2010 год публикации.

Спасибо за совет. Значит я заказал то что надо.

WinAvr не знаю

PROTEUS 140M

WinAvr до 25 Mb

PROTEUS 70 Mb

А можно скачать CVAVR 1.25.9 и VMLAB - все вместе 7 Мб - СЕМЬ ! И у вас будет

1) Мастер настройки AVR

2) Отличный кмпилятор Си для AVR

3) отличный симулятор популярных AVR

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


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

..Я потому и люблю применять Микрочип ( и не люблю Атмел, хотя по работе и приходится), что можно легко, быстро и ВСЕРЬЕЗ освоить МК...

Т.е. с Atmel-ом это невозможно?

...Относительно Протеуса.

Никому не советую. По крайней мере пока. Симуляторы штатных сред разработки с полной и своевременной поддержкой гораздо эффективнее для обучения "по настоящему", а не "по нарошку для прикола"...

В той же Студии отладчик настолько глючный, что нормально отлаживаться нереально... А имитировать перефирию вокруг МК вручную устанавливая биты в регистрах... Увольте. Иногда комплектация только достается, а программа устройства уже готова. Потом только зашить остается. Почти всегда работает как задумывалось и симулировалось. Протеус это всего лишь инструмент - в чем то он хорош, а в чем то, конечно, плох...

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


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

Конечно реально. Но геморройно.

Мне несколько раз приходилось объяснять (sic!!!) по телефону, как начать работу с Микрочипом. Причем людям без опыта работы с МК. Всегда удачно.

А вот я сам, впервые столкнувшись с инструментарием Атмела, довольно долго врубался где чего там лежит. И это с некоторым опытом и профильным образованием. Объяснить кому либо азы работы с этим ПО и железом всерьез я не возьмусь.

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

Кроме того, начинать нужно с простого. Совсем простого. А у Атмела не т таких чипов. Даже 10-ый Тайни архитектурно непрост. А юзая непонятное почти в слепую, совершенно не понимая как чего там функционирует внутри, тупо подставляя библиотечные функции в Си, по детски радуясь цифиркам на хайпер-терминале ПК соединенном с МК, эту науку не освоить.

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

Значит такой был подход в освоении темы... Детская игра, а не учеба всерьез.

У меня ни разу не возникло проблем с МПЛАБом - и в режимах симуляции и в режимах дебага. Более того, года полтора я иногда пытался честно приобщиться к Протеусу. Но так и не понял зачем он мне. Для симуляции аналоговых частей схемы он плохо пригоден. Я использую для этого Микрокап. Для подключения готовых интерфейсов типа ЖК-дисплеев - я не люблю "мультики" в работе. Вполне достаточно симулировать протоколы обменов и смотреть их в симулированном логическом анализаторе, а контролировать результат на железе. Красивый же виртуальный осциллограф мне как то ни к чему. Тем более, что реальные сигналы в печатных платах, мягко говоря, другие...

Симулировать реальные аналоговые сигналы практически не реально. Трудоемкость подготовки таких проектов горазд превышает железные исследования. И результат в последнем варианте окончательный, а не виртуальный.

Протеус мне напоминает "доминошные" наборы для начинающих радиолюбителей советских времен (ну или мастеркитовские нынешних). Так, разок поиграть в "радиолюбителя" можно. Однако проку - чуть.

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

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

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


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

Насчет ясности продуктов Микрочипа судить не могу - я с пиками не работал. Но Атмел мне дался практически с нуля. Не без проблем, конечно, но все же... Отсутствие простых МК не так уж и критично, ведь никто не заставляет использовать все модули сразу. Зато потом удобно поочередно их и осваивать. Если кто-то задает вопросы про "базовые" сущности, это означает только то, что он (и только он) эти сущности до конца не понял. Атмел в этом точно не виноват. Информации достаточно для понимания и использования. Ниша применения пусть и сокращается, но тоже пока остается... Что немаловажно, людей способных подсказать чего либо тоже огромное количество на профильных сайтах. Все это справедливо и для Микрочипа, полагаю. Но в сторону выбора АВР-к, меня склонило то, что в данную архитектуру Си-шный код ложится гораздо лучше - писать на асме совсем не прельщало...

Насчет Протеуса. Так уж сложилось, что занялся я программированием МК при перемене работы, так и закончил ими заниматься, изменив сферу деятельности (кардинально) в пределах той же работы - переехал из "сибири в сибирь", что называется... И сейчас у меня под рукой нет в достаточном количестве нужного инструментария. Не так давно, по просьбе человека написал программу для устройства, которого в глаза (в железе) не видел. Смешана цифра с аналогом... Все сделал для модели, потом отправил прошивку и по Скайпу буквально за 20мин общения подправил ее до нужной кондиции. Так протеус очень мне помог. И не только в этом случае. Всегда я добивался работоспособности сначала в протеусе и только потом все делал в железе. И всегда работало сразу... Если начинающие хотят для начала светодиодами мигать - протеус тут подходит как нельзя лучше - в нем гораздо удобнее чем в реальном устройстве прослеживается логика работы. Можно применить множество разных подходов при моделировании - бывает реальная схема совсем не похожа на модельную, тем не менее функционально идентична. В общем, любой инструмент требует соответсвующего применения. То что протеус допускает некоторую "мультяшность" - привлекает начинающих и отпугивает профи, но тем не менее, это достаточно серьезный инструмент...

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


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

>>Но он имеет право на жизнь.Живёт и прогрессирует!!!

А у меня не живет.

После двух минут симуляции закрывается.:angry:

Понятное дело не доломал я его :D

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


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

bars59 akl Буду Вам благодарен.Напишите мне письмо на почту с моего профиля.

Отправил на почту.

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


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

PROTEUS позволяет разрабатывать и отлаживать устройство, подбирать компоненты до их заказа и получения, покупки. Это особенно удобно тем у кого трудности с компонентами и ограничен бюджет. А главное PROTEUS поддерживает сразу много семейств микроконтроллеров AVR PIC ARM 8051 motorola - причем их можно использовать по несколку в одном устройстве.

Недостающие модели и генераторы сигналов, приемники можно создавать самому или порой делать на тех же микроконтроллерах.

Скачать PROTEUS можно прямо щас - http://www.irbislab.ru/modules.php?name=Forums&file=viewtopic&t=558 - и самому попробовать и решить устраивает ли он вас и полезен ли.

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


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

bars59 akl Буду Вам благодарен.Напишите мне письмо на почту с моего профиля.

Отправил на почту.

Получил,спасибо.

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


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

...Скачать PROTEUS можно прямо щас ...

ИМХО, кое кого уже банить пора. а1в2р3 теряет осторожность...

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


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

Здравствуйте всем!Может я не в теме пишу,простите.Скачал самоучитель Корабельникова,почитал,волосы встали дыбом.Как можно всё это держать в голове?Желание программировать у меня отпало.Думаю заняться повторением чужих конструкций,благо сейчас их пруд пруди.Думаю поэкспериментировать с заливкой софта,стиранием старого,а там посмотрим,может крючок заглочу и потянет на программирование.

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


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

...Скачал самоучитель Корабельникова,почитал,волосы встали дыбом.Как можно всё это держать в голове?...

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

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


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

Думаю заняться повторением чужих конструкций,благо сейчас их пруд пруди.

Тоже хороший способ обучения, только ведите рабочий журнал в тетрадке, записывайте туда вопросы и обязательно находите на них ответы.

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


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

С позволения достойных товарищей, вставлю свои "пять копеек".

Скажу прямо, начал учить контроллеры с начала этого года. Перелопатил горы литературы. Облазил много сайтов... Тоже "ломал" голову, а с какой платформы начать. За то время соорудил программатор Понипрог. Попытки освоить асемблер умерли практически сразу. Бросился в другую крайность - Бейсик, ведь изучал когда то. Не узнал его влицо. Начал долбить Си - ну что то вроде как пошло... но не далеко. Все равно что изучать Хаммер по картинках. Итого практические начинания зашли в тупик.

Случайно в нете натолкнулся на Flowcode. Знаю, что все Вы тут же ухмыльнулись, но на нем реально прошел "курс молодого бойца". Именно на нем разобрался как толково "дергать" ногами, как вывести байт, как запустить АЦП, как подключить кнопки, как высветить результат на динамические индикаторы, а про LCD и не говорю. Недавно вник в шину SPI. Может для Вас это не много, а для меня - ого-го!!! и всего за месяц времени. Уже и на Си с пониманием поглядываю. Дай бог еще чего нибуть освою.

По сему на правах ученика что прошел "первую борозду" скажу так: Flowcode для начинающего - супер!!!

После того как сделал парочку проектов на PIC и попытался перевести их на AVR понял что PIC для изучения легше. Во первых компилятор для него лучше организован, почти нет проблем с конфигурационным словом, проще делаестся симуляция как в указаном компиляторе так и Протеусе, больше литературы.

Но он засранец дорогой. По сему даже отшлифованные уже проекты на PIC которые уже мне понятны, для реализации на практике сейчас пытаюсь перевести на AVR чтобы не только освоить и его но и реально сэкономить (за счет потраченого времени конечно). Но пока я учусь, это я думаю простительно.

Так что те кто начинает делайте выводы.

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


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

Начал долбить Си - ну что то вроде как пошло... но не далеко. Все равно что изучать Хаммер по картинках. Итого практические начинания зашли в тупик.

Случайно в нете натолкнулся на Flowcode. Знаю, что все Вы тут же ухмыльнулись, но на нем реально прошел "курс молодого бойца". Именно на нем разобрался как толково "дергать" ногами, как вывести байт, как запустить АЦП, как подключить кнопки, как высветить результат на динамические индикаторы, а про LCD и не говорю. Недавно вник в шину SPI. Может для Вас это не много, а для меня - ого-го!!! и всего за месяц времени. Уже и на Си с пониманием поглядываю.

Ничего странного в этом нет.

Классическое советское (в лучшем значении этого слова) обучение информатики, обучало с азов. Раскладывая всё по полочкам. Идя от простого к сложному. Системы исчисления -> двоичная система исчисления -> Булева алгебра -> Блок схемы и только после этого приступала учить непосредственно языкам программирования. Немного утрировано и сокращено, но суть не меняет. Сегодня доступность умных IDE в купе с шаблонами и мастерами кода позволяют начать программировать, пропустив изучения базовых знаний. Коммерческий рынок технической литературы также нацелен непосредственно на язык. Да ни кто, не купит книгу, начнись она, как вручную перевести число из десятичной системы в двоичную и назад. Отсюда и нелестные высказывания в сторону ассемблера и других относительно низкоуровневых языков.

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

И затем столкнувшись с языком блок схем у Вас пошло. Но опять же, Вы, начали не сначала. И переход дальше также будет труден.

Но все равно удачи, в дальнейшем изучении.

P.S. Хоть на асме уже давно не пишу (вставки не в счет), если начинаю изучать новый контроллер, всегда уделяю время его системе команд и ассемблеру. Считаю это очень полезным занятием.

P.P.S. Хотя я и не упомянул, о наличии знание по цифровой схемотехники, но для программирование микроконтроллеров, они также необходимы. Но здесь немного проще и базис в виде понимание U, I, R, C, L, плюс работа транзистора есть у большего количества людей.

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


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

Интересно интересно. А я вот собственно, изучать контроллеры так и не начал, но довольно успешно написал программы для пары проектов. Более того, протеус он очень помогает в разработке программы не только для контроллера при отсутствии вблизи оного, но и программы для компьютера который им управляет. Нет возможности(или знаний) у человека собравшего конструкцию написать нормальную прогу для управления этой конструкцией, а у меня за 1000км эти способности есть но нет возможности протестировать - вот тут и помогает протеус. К сожалению протеус пока единственный который поддерживает широкий набор различных контроллеров, мне он очень не нравится... осцилограф какой-то непонятный, бывает отваливается симуляция по причине того что шаг по времени стал слишком мал ... и это в практически цифровых-то схемах?

Больше мне нравится Microcap - но в нем нет контроллеров. Зато какие широкие возможности по обработке снятых данных, возможность производить серию симуляций с различными значениями параметров схемы чтобы потом сравнить поведение схемы - выяснить точки устойчивости схемы при изменении параметров элементов схемы, или их влияние на характеристики всей схемы. Такое в протеусе, как и в других симуляторах - недоступно.

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


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

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

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

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


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

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

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

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

  Разрешено не более 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();/ }  
  • Сообщения

    • Не забываем что сей агрегат будет работать при ну очень кошмарных условиях типа жара под 40 и выше и напр. сети от 140 может и меньше. Ещё у стигалей есть хреновая привычка запускать агрегат с затянутыми ножами и им по барабану что машинка гудит и не работает.
       
    • Правильно, электролиты однозначно долой. Номиналы могут отличаться по причине - а) поставили что было близко по номиналу б) подогнали под параметры установленных динов. Чтобы выявить верность номиналов надо делать измерения, на слух можно тыркаться с настройкой до пятницы следующего года. Как обычно разброс ПТС динов требует юстировки номиналов фильтра и возможно изготовления нового фильтра навесным монтажём и установкой вне колодки. Когда будешь менять провода внутри ас крепи их чтоб они нигде не болтались- я пристреливаю степлером  и/или термопистолетом. С4 и R4 это скорее компенсатор импеданса чем часть фильтра 2порядка. Был бы 2й порядок то будет синфазное подключения басовиков. Поясню.  На нч стоит фильтр 1 порядка L3 + RC компенсатор, такой же компенсатор стоит на сч  плюс полосовой фильтр 2порядка, у твитера компенсатора нет плюс фильтр 2порядка. В силу применения чётных и нечётных фильтров оба басовика подключены в противофазе а сч/вч синфазно.
    • Электролит следует принимать с наименьшим сопротивлением утечки, иначе время значительно сократится.
    • Наверное, лучше сюда: http://forum.cxem.net/index.php?/forum/14-начинающим/
    • Ну у меня нет достаточно большой коллекции наушников и к тому же современные тенденции Китайского "маркетинга" мне не ведомы. Так что абсолютной точной 100% информации взять не где. 
    • Здравствуйте! Продолжаю изучать ноутбуки. Заказал post карту у китайцев. Фото прилагаю. Понимаю, что карты могут не подходить к некоторым моделям ноутбуков и поэтому их нужно приобретать под определенную модель. Хотелось бы это выяснить в моем случае. Имеем плату Petronas-D-15E от ноутбука Samsung 305V Если post карта подходит к данному ноутбуку, то как ее подключить? Прилагаю также схему, какую нашел к ноутбуку. Правильно ли я (на скриншоте) нашел подходящий разъем для подключения post карты? Если да, то как найти его на плате? Разъемы не подписаны на плате. Буду очень благодарен помощи. Мне очень интересно этим заниматься и узнавать новое samsung_petronas-15_r1.0_schematics.pdf
    • Подскажите, пжл, как на схему добавить разъем GX12-5? Не нашел в библиотеке...