X



トップページ電気・電子
876コメント323KB
初めてのPIC 0x24 ※顔文字は禁則事項です!
0001顔文字はやめてください。
垢版 |
2022/09/23(金) 23:59:02.16ID:7HCXiEAa
.
  _       _    PICをさわるのは今日が初めて、という超初心者のためのスレです。
  (O>――<O)    PIC選び、PICを使った回路は、誰でも最初は不安なものです。
  / (・) (・) ヽ    恥ずかしがらずに何でも聞いてください。速攻で教えてくれますよ。
  ○ /▼\ ○    質問のしかたは、初心者質問スレの発言1を見てくださいね。
  |(ヽ二フ ) |    
  /  ̄ ̄ ̄ ヽ  
 f ヽ     / |  PIC関係のスレは、レベルに合わせて以下のスレもありますので、活用しましょう。
 ヽ \  / ノ    ・PIC専用のスレ
  | \_ )(_/ !       本家本元のPICスレです。口の悪い人もいますが、楽しくやってるみたい。
  |       |       ここの話がわかるようになれば、あなたはもう一人前のPICerです。
  |       |    ・マイコンソフト 悩み事相談室
  |   | ̄ ̄|  |      マイコンソフトやツールの質問は、こちらでどうぞ。的確な回答があります。
 (_ノ    ヽ_)

質問するときは…
・PICの型番と開発環境を明記しましょう。
・プログラムは、レス内に直接書き込まず下記を利用しましょう。
 http://codepad.org/ https://pastebin.com/
・解決したら結果報告しましょう。
・ここはPICマイコンのスレです。AVRの自慢話は「AVRスレ」でお願いします。
回答者の先輩は…
・威張らず、偉そうにせず、上から目線にならず、優しく答えてあげましょう。
・顔文字はやめてください。回答内容と顔文字の使用は別問題です。

ハード、ソフト情報
・統合開発環境 MPLAB X ttp://www.microchip.com/mplab/mplab-x-ide
・コンパイラ(XC8 XC16 XC32) ttp://www.microchip.com/mplab/compilers(高機能版のみ有料)
・コード生成プラグイン(MCC) ttp://www.microchip.com/mplab/mplab-code-configurator
・マイクロチップ・ライブラリ(MLA) ttp://www.microchip.com/mplab/microchip-libraries-for-applications
・PIC一覧、スペック検索
  ttp://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1005
  ttp://www.microchip.com/maps/microcontroller.aspx
・初心者はPIC16F1以降の型番で始めると無理なく始められます。
   MCCを使えば、最初からPIC32で始めるのもありです。
・プログラムの書込みには書込器が必要です。
  予算に応じてPICkit4、SNAPなどを購入しましょう。
  ttp://akizukidenshi.com/catalog/g/gM-13854/
  eBayやAliExpressで買えるPICkit3の中華クローンも十分な性能が報告されています。

直近スレのご案内
 0x15 https://rio2016.5ch.net/test/read.cgi/denki/1567831628/ 2019/09/07〜
 0x16-0x19 欠番です
 0x20 https://rio2016.5ch.net/test/read.cgi/denki/1596523661/ 2020/08/04〜
 0x21 https://rio2016.5ch.net/test/read.cgi/denki/1617716381/ 2021/04/06〜
 0x22 https://rio2016.5ch.net/test/read.cgi/denki/1636738259/ 2021/11/13〜
 0x23 https://rio2016.5ch.net/test/read.cgi/denki/1652634500/ 2022/05/16〜

では、質問どうぞ
0723774ワット発電中さん
垢版 |
2023/07/31(月) 12:20:11.22ID:BXwotwds
スピードに拘らなけれはGPIOでI2Cを制御する。
I2Cの勉強になるよ。
0724774ワット発電中さん
垢版 |
2023/07/31(月) 14:54:38.24ID:HSc4d/JH
>>722
>MCCに頼らないでI2C用のコード書いた方が楽
そうだよね。
・スレーブアドレスを<<=1する
・REAなら ||= 1する
・書き込む
・ACK待つ
・データ1バイト目を書き込む
・STOPコンディション
0725774ワット発電中さん
垢版 |
2023/07/31(月) 18:18:12.96ID:/ftuErEn
どうせ使わないクロックストレッチを無視すれば簡単になる
0726774ワット発電中さん
垢版 |
2023/07/31(月) 23:59:22.98ID:HSc4d/JH
>>725
クロックストレッチって、MCCソースに出てくるリトライ回数のことでしょうか?
0727774ワット発電中さん
垢版 |
2023/08/01(火) 10:05:10.42ID:n0MX82Be
>>726
検索すりゃいくらでも解説あるが
要するにスレーブ側でSCLをLに引っ張ってマスター側にビジーを伝える仕組み
ほとんどのデバイスは使ってないけどBQ27532とかは使ってたりする
0728774ワット発電中さん
垢版 |
2023/08/11(金) 04:42:55.49ID:b8ukJJjZ
>>721
そのデーターシートとは、マイコンのデーターシート?
それともMCCのデーターシート?
MCCの吐くコードの説明って、ヘッダーファイルの物だけでは?
0729774ワット発電中さん
垢版 |
2023/08/11(金) 13:23:11.70ID:K7YcgFKe
質問あります。
相手のPICから、UARTで文字データが出力され続けています。
S|||||||PS||||||||PS||||||||PS||||||||PS||||||| と、START bit 後すぐにSTOP bitが来ます。
~~~~S|||||||||P~~~~~~S|||||||||P~~~~~~S||||||||P のような文字間の切れ目がないです。
これを「後から電源onのPIC」で受信したいのですが、PICの受信モジュールで判別できるのでしょうか?
1度文字化けしたら、最後まで合わない様に思うのですが。
まだ試していません。
0730774ワット発電中さん
垢版 |
2023/08/11(金) 13:31:09.85ID:j9c/PnhQ
>>729
スタートビットのHからLになるエッジでサンプリングが始まり中間タイミングで拾うだけだから問題なし。
0733774ワット発電中さん
垢版 |
2023/08/11(金) 15:02:09.81ID:o7wBeC1p
8ビット1ストップビットパリティなしで0x2Cを連続して送ったら
0001101001000110100100011010010001101001000110100100…
になるけれど、うっかり途中から受信を始めたら0x62の連続になる、みたいな心配?
0010001101001000110100100011010010001101001000110100…
それはありうる話。
0734774ワット発電中さん
垢版 |
2023/08/11(金) 16:45:16.34ID:Op1wc9a7
調歩同期通信のレシーバはスタートビットで同期を取るのだから
スタートビットが定まらない送信パターンは調歩同期と呼べないのでは?
0736774ワット発電中さん
垢版 |
2023/08/11(金) 17:03:28.27ID:PzGo0zKK
>>729
連続送信の場合、文字列によっては、1度文字化けしたら最後?まで合わない
理由として、正常なスタートビット位置を見失うため

送信側と受信側で対処する必要がある

送信側は一定のブロックを送信したら、1文字分以上の時間を空けて次を送信
※これでスタートビットの位置が正常に検出できる

また、送信する文字列(データ)にも工夫して、受信側で受信が正常にできてるか検出できるようにする
0737774ワット発電中さん
垢版 |
2023/08/11(金) 17:17:38.12ID:o7wBeC1p
>>734
名前の国語辞典的な解釈は横に置いておいて、隙間なしのつめつめの調歩同期送信をするのは、
相手となんらかの手順のやりとりをして(リクエストがあったらレスポンスを返すとか)、
一連のカタマリのデータは詰め詰めでも、カタマリとカタマリのあいだはアイドル期間を設けるとかして、
「うっかり途中から」とか「ずれてしまったら」とかが発生しにくいようにしたり、発生してもリカバリしやすいように工夫するよね。
0738774ワット発電中さん
垢版 |
2023/08/11(金) 18:01:44.48ID:K7YcgFKe
みなさん、ありがとうございます。
>正常なスタートビット位置を見失うため
ですよね。H→Lの変化は何度となく現れるのですから
1文字分Hが続けば同期が取れるので、その後は脱調するまでOKなことは
容易に想像されます。しかしそれが無い場合は、途中から参加したらわからないと思うです。

余裕という人もあればダメという人もいて、どちらが正解なのかな、と
思いますが、正しく受信できない可能性があることはわかりました。
みなさんありがとうございました。
0739774ワット発電中さん
垢版 |
2023/08/11(金) 18:04:19.41ID:K7YcgFKe
すみません、
PICのUARTだからダメで、ST32のUARTならOKとか
そういうことは無いですよね?
0741774ワット発電中さん
垢版 |
2023/08/11(金) 18:30:09.68ID:PzGo0zKK
>>739
そりゃ、UARTの原理的な現象なのだから
ST32(おそらくSTM32)でも同じ

>START bit 後すぐにSTOP bitが来ます。
これ説明としては逆じゃない? stopの直後にstartって事だと思うが

>S|||||||PS||||||||PS||||||||P , ~~~~S|||||||||P~~~~~~S|||||||||P
この手の説明には一応、意味を書いた方が良いよ
S(start bit) , P(stop bit) , |(data bit) , ~(idol)
0742774ワット発電中さん
垢版 |
2023/08/11(金) 18:32:06.85ID:o7wBeC1p
>>735
>使用するマイコンチップのデータシート

そうなんかなあ。
もとの人が知りたいのは、TRB のことなんだと思うけど、それってデータシートに書かれているようなことなんだろうか。
調べてみたら生成コードの中で使われている構造体みたい。
ぼくの環境のMCCでは出てこないキーワードだけど(古いのかな?)
0744774ワット発電中さん
垢版 |
2023/08/11(金) 18:52:08.31ID:PzGo0zKK
>>743
ほんとだ、「完璧で究極のIDOL」の方使ってる (*ノωノ)
734さん、推しときます
0745774ワット発電中さん
垢版 |
2023/08/11(金) 19:21:10.44ID:o7wBeC1p
やー。ぼくは、ずっとずっと間違ってきた漢字の間違いを、近所の小学生に指摘されたことがあったんだよな。
お客さんとの打ち合わせでホワイトボードに間違って数十年…。(多分パソコンだと変換に委ねているから間違ってない)
0746774ワット発電中さん
垢版 |
2023/08/11(金) 19:34:36.58ID:PzGo0zKK
>>745
気づいてない間違い怖いよなぁ、最近だと必要に応じて文章を作成した後に
chatGPTで「以下の文章をチェックして、間違いが有れば指摘してください」+「文章本体」
とかでで確認したりする

さっき自分の書き込みもchatGPTで確認したらidolがidleに修正された
>最後の説明における「S(start bit) , P(stop bit) , |(data bit) , ~(idol)」の部分で、「idol」というのは「idle」のタイポではないでしょうか。アイドル状態を指している場合、「idle」と書くのが正しいです。
AIに「タイポ」言われてちょっとワロタw
0747774ワット発電中さん
垢版 |
2023/08/11(金) 20:17:54.54ID:xNBckZt9
>>738
途中から受信だけでなくノイズなどの理由でストップビットやスタートビットを読み損なった場合
そこから後ろは同期エラーで全滅だな
0748774ワット発電中さん
垢版 |
2023/08/11(金) 20:36:01.20ID:F8CBSG1j
世の中には、TXさえも75kのプルアップとダイオードで引っ張る構造になっている糞UART ICもあるからなCH340とか
0749774ワット発電中さん
垢版 |
2023/08/11(金) 22:11:55.90ID:Dl3hIoVn
調歩同期はしばらく放っておけばどこかで正常になるよ。
データパターンによってフレーミングエラーが続くようならUARTの受信を
一度止めてから再開するとかすればどこかで正常になる。
0750774ワット発電中さん
垢版 |
2023/08/11(金) 22:27:53.68ID:o7wBeC1p
>>748
CH340Kのことだろか。目的があってそういう構造になっているってことはないのかな?

糞なんちゃらって話はときどきあるけれど、目的にあってないものを選んでいるケースがある。
メーカーは、それなりの人が協議してすげえ初期投資をしてICを作ってる。
ぼく自身も含め、そのへんの存在でしかない いちユーザーの印象の方が正しい確率はひくいと思ってる。
0751774ワット発電中さん
垢版 |
2023/08/11(金) 22:50:10.04ID:fuhh/BZn
秋月にあったCH340データシートを読んでみたら
・省電力のために弱いプルアップにしてある
・ハイスピードで通信したい場合は適宜プルアップしろ
みたいなことが書いてあった
0752774ワット発電中さん
垢版 |
2023/08/12(土) 06:37:33.00ID:96WBiOmE
そもそもドライブする側に直列ダイオードがなければ、外部でプルアップする必要もない。
CH340Kはデータシートをチラ見した限りは、CH340と接続されるマイコンが別電源のときの動作を考慮したものっぽい。

CH340Kに電源が入ってなくて、マイコンだけに電源が入っているとか、その逆とか。

でも、これが成立するためには、CH340KのTXDの直列ダイオードのどちら側にも、
VCCに接続された保護ダイオード、寄生ダイオードが入っていてはいけないことになりそう。

秋月に売ってるんですね。試しに買ってみるか。
0753774ワット発電中さん
垢版 |
2023/08/12(土) 12:43:09.58ID:O7taaUAM
PICがなんだSTMがなんだ やれコード生成だ、やれアセンブラだCだと
言ったところでチップのデータシートも見ずに組み込みシステムができるかよ。
0754774ワット発電中さん
垢版 |
2023/08/12(土) 17:11:48.22ID:HSk8qyR0
>>753
あみゃーさん、誰に言っとるだ?
0755774ワット発電中さん
垢版 |
2023/08/12(土) 17:12:33.86ID:HSk8qyR0
おみゃーさん ね
0756774ワット発電中さん
垢版 |
2023/08/12(土) 22:11:49.30ID:96WBiOmE
MCCが生成したコードの話なのに、MCCで設定するレジスタの話か何かと勘違いした人が、マイコンのデータシートを見ろって言ってたような気がする。
0758774ワット発電中さん
垢版 |
2023/08/13(日) 14:03:40.29ID:gpeZMd0s
>>757
僕も初めてだから大丈夫だよ
0759774ワット発電中さん
垢版 |
2023/08/13(日) 21:20:43.65ID:yVoQCMLk
♂「初めてだから優しくしてね」
♂「僕も初めてだから大丈夫だよ 」
0761774ワット発電中さん
垢版 |
2023/08/13(日) 21:44:41.50ID:BSGNsYNg
>>758,759
♂ x ♂ (≧∇≦)
経験上、初めて同士より、どちらかに経験者がいた方がスムーズに事が進むと思うの
0763774ワット発電中さん
垢版 |
2023/08/14(月) 12:44:09.93ID:FdxoC1M6
少し前のUARTの受信の件は、結局うまく受信できないというのが答?
0766774ワット発電中さん
垢版 |
2023/08/14(月) 16:25:08.96ID:1osAFgEc
>>763
>>729の話?
延々と同じバイトが詰め詰めで送られてきて、何かのアクシデントでずれてしまったような場合は戻らない場合があるよ。
いろいろな値が送られてくるケースなら、いずれ矛盾が生じて、そのうち正常になる可能性がある。
0767774ワット発電中さん
垢版 |
2023/08/14(月) 18:10:08.58ID:gd7WGOwD
戻らないじゃなくて戻すんだろ
ズレていることすら区別つかないんならそれはもう論外
0768774ワット発電中さん
垢版 |
2023/08/14(月) 18:55:21.48ID:1osAFgEc
詳細が書かれていない質問だし、ズレていることを区別できない場合があることは排除できないしね。
0769774ワット発電中さん
垢版 |
2023/08/14(月) 19:42:42.64ID:l2GHITtp
中古本で「PICマイコンでつくるインドア・プレーン」が売られているのを発見しました
この本を読めば、PICマイコンでドローンが作れるようになるっという本でしょうか?
0770774ワット発電中さん
垢版 |
2023/08/14(月) 21:26:43.97ID:1osAFgEc
CQ出版社 PICマイコンでつくるインドア・プレーン

で検索すると、CQ出版社のこの本のページが見つかって、そこに目次やページサンプルが載ってるよ。
0771774ワット発電中さん
垢版 |
2023/08/14(月) 23:11:47.58ID:FdxoC1M6
>>766
文字間の隙間がないのに、どうやって戻すんですか?
0773774ワット発電中さん
垢版 |
2023/08/15(火) 07:41:23.44ID:+IxfikJ0
>>771
化けた値とストップビットまでのオフセットの関係を予め求めておいて
その時間だけ待てばいい
パソコンなら難しいがそういう泥臭いタイミング制御できるのがマイコンの利点だろ

取りこぼしが多くてもいいなら
脱調検知したら1ビットずらすことでどこかで戻る
0774774ワット発電中さん
垢版 |
2023/08/15(火) 08:45:53.56ID:21dh5oSI
>>771
>文字間の隙間がないのに、どうやって戻すんですか?

それを>>766のぼくに聞くないで。特定条件だと戻らない、って言ってるんだし。

たとえば、0x20の羅列がずーっと来ているときに、
・それが正しく0x20の羅列なのか
・実はずれて化けて0x02の羅列に見えているのか
を判定できるのは通信仕様の作りようでしかないと思う。

たとえば送信側と受信側で「0x20以外は8バイトを超えて連続しない」という取り決めを作っておいたら
0x02の羅列が続いたら「おかしい」と判断できるから、いったん受信を停止して再開することで修正ができるかもしれない。
0775774ワット発電中さん
垢版 |
2023/08/15(火) 11:19:50.26ID:GV9x1Vwh
受信したビット構成が不正だとオーバーランエラーや
フレーミングエラー、パリティエラーが発生するから
これらを利用しましょう
0777774ワット発電中さん
垢版 |
2023/08/15(火) 12:52:45.99ID:UXQkY4Og
元質問は、まったく通常の8-n-1の場合な気がするし、事前の取り決めなど無い前提に思える。

>化けた値とストップビットまでのオフセットの関係
と言うけど、化けたことはマイコンにはわからないことでしょ?
期待するデータではないと判断できるのは人間だけ。
0778774ワット発電中さん
垢版 |
2023/08/15(火) 17:19:00.70ID:+IxfikJ0
だからそれは論外だって言っただろ
良い悪いじゃなくて俎上に載らないの
0779774ワット発電中さん
垢版 |
2023/08/15(火) 18:18:14.09ID:21dh5oSI
>>778
それはつまり「必ず戻せるわけではない。戻せない条件がある」ということですね。
0780774ワット発電中さん
垢版 |
2023/08/15(火) 21:31:44.64ID:+IxfikJ0
判別できないんだから戻せないも何もないって話だが?
1ビットずらしていけば必ず戻せるとも言える
でもそんなの意味ないでしょ
0781774ワット発電中さん
垢版 |
2023/08/15(火) 22:34:42.70ID:21dh5oSI
>>729の質問は「PICの受信モジュールで判別できるのでしょうか? 1度文字化けしたら、最後まで合わない様に思うのですが」だし、
それに対しては「判別できないケースがある。そのケースでは、最後まで合わせようもないことがある」が結論だと思う。

>1ビットずらしていけば必ず戻せるとも言える
合っているかどうかわからないケースで戻せるのかな?
0784774ワット発電中さん
垢版 |
2023/08/15(火) 23:34:14.89ID:+IxfikJ0
最後まで合わせようもないことがあるが最後まで合わないことは避けられる
何も変なことは言っていないが?

それとも1/2の確率で無益なレスを続けるのと
有益なレスと無益なレスを交互にするのが同じだとでも?
0785774ワット発電中さん
垢版 |
2023/08/15(火) 23:44:36.99ID:21dh5oSI
「最後まで合わせようもないことがあるが最後まで合わないことは避けられる」
「で、合っているかどうかわかるのですか」
「神様ならわかります」

そうか、これが変ではない仕事場があるのか。
0786774ワット発電中さん
垢版 |
2023/08/16(水) 00:40:26.36ID:W7lHr3KJ
結局、1文字分の隙間を入れなければ、復旧不能
0787774ワット発電中さん
垢版 |
2023/08/16(水) 00:49:18.09ID:9fDaCvoH
UARTで確実な通信をするなら、チェックサムやエラー訂正符号をつけるのが確実だよな
0788774ワット発電中さん
垢版 |
2023/08/16(水) 08:40:19.10ID:TQr5G92O
コマンド&レスポンスみたいな形にするだけでもかなり違うしね。

送受信の手順を自分で決められるなら、一方的な隙間なしの連続送信は避けられるなら避ける方がいい。
0789774ワット発電中さん
垢版 |
2023/08/16(水) 11:14:02.16ID:CE4BS4Ls
UARTでどの程度の対応をするかは、
結局、その通信データがどの程度重要かどうかで決る。
ハード、ソフト共に何重にもエラー対策しても
リトライして最後までエラーになる場合も考慮しないといけないし。
結構めんどうな問題だと思う。
0790774ワット発電中さん
垢版 |
2023/08/16(水) 16:30:26.52ID:IuTqYsxp
通信エラーの発生が問題になるような状況下ではUARTの連続送信という通信手段自体が不適当じゃね
SPIやI2Cなどのクロック同期式の通信手段の方が適している
0791774ワット発電中さん
垢版 |
2023/08/16(水) 17:03:05.98ID:TQr5G92O
調歩同期は長いケーブルを介した機器間通信で使われるものだしね。
0792774ワット発電中さん
垢版 |
2023/08/16(水) 21:15:28.94ID:TQr5G92O
ありゃ。へんなこと書いてた。

調歩同期は長いケーブルを介した機器間通信でも使われるものだしね。

でした。
0793774ワット発電中さん
垢版 |
2023/08/16(水) 21:52:51.11ID:GkeebG6F
間違ってと不都合な通信ならパリティ付けるなり
ブロックチェック符号付けるよね〜
0794774ワット発電中さん
垢版 |
2023/08/16(水) 22:52:06.00ID:msNrIX5S
昔標準的に使われてた8251なんてスタートビットの立ち下がりエッジを
みていなくてレベルだけだったのでエラーになるとなかなか回復しなかった。
PICのUARTが立ち下がりエッジを見ていれば結構回復は早いと思う。
もちろんパターンにも依存するが。
8251が立ち下がりエッジを見ていないのはブレークキャラクタを受信するためなのかな。
0796774ワット発電中さん
垢版 |
2023/08/17(木) 11:18:20.11ID:HRUYQRpu
皆様方にはUARTについて色々と御不満お有りでしょうがw
信号線1本だけでで複数装置と通信出来る有り難みがあったりします。
(RS485はコンプリメンタリの2本で、信号の種類としては1種)
これからも使われ続けるでしょうね。
0800774ワット発電中さん
垢版 |
2023/08/19(土) 23:14:05.32ID:YCxQ4IAi
私の言ってるPICの送信エラッタってのは
TXREGに2回書くと、TXIFが0になるんだが、
バッファが残っているのにTXIFが1になって、
バッファを上書きし、送信データがおかしくなる現象のことを指してるんだがあってる?

18F26K22とか、古いPICではあった。
TRMTを見て送信が完了してから次のを書けば問題ない。

他にPICのUART関係では、PIC32MXのエラッタが有名だな。
レジスタに書くタイミングと、割り込みのタイミングが一致した場合、
割り込みから帰ってきてもう一度レジスタを叩いてしまうらしい。
0801774ワット発電中さん
垢版 |
2023/08/20(日) 03:29:40.51ID:qJqnsG/3
ダブルバッファだからバッファが空けばTXIFが1になるのは正常動作なんだけど
TXREGが空の状態で送信が終わってTSRが空く瞬間に書き込むとTSRとTXREG両方に
書き込まれて2回送信してしまうというやつだよね。

普通文字列などを送信するときはTXIFが1になってすぐに書き込むから
そのタイミングにはならず意外と引っかからないね。

中途半端に時間が空いたときは最初の文字を書くときだけTRMTをみればよさそう。
0802774ワット発電中さん
垢版 |
2023/08/20(日) 12:37:12.30ID:y0XYdWiV
え、そんなのあるの?
私のは
while(..){
 while(TXIF == 0);
 TXREG = x;
 x++;
}
みたいなコードで、バッファがあるのにTXIF==0をすり抜けて
1,2,4,5
みたいな結果を送信してくるんだけど。
0803774ワット発電中さん
垢版 |
2023/08/20(日) 12:46:59.66ID:y0XYdWiV
なるほど。
>>801が今でもあるUARTの送信バグってことでいいのかな。

できれば現象が起こる型番を教えていただけませんか?
0804774ワット発電中さん
垢版 |
2023/08/20(日) 13:55:20.58ID:qJqnsG/3
エラッタあり PIC16(L)F1574/5/8/9
PIC専用のスレ Part54で報告あり PIC16F1459, PIC16F1454, PIC16F18313

エラッタが存在しないものも同じバグを持っていて、同時期に設計された
ものは共通の可能性が高い。
バグがあってももエラッタ出てないし、修正してもエラッタを改版してるとは
限らないので現状は分からないね。

PIC16(L)F1717/1718/1719 ではRevision A1で修正されてるみたい
4.1 Duplicate Transmission の項目
https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/Errata/80000653D.pdf
0806774ワット発電中さん
垢版 |
2023/08/20(日) 16:12:28.55ID:y0XYdWiV
>>804
どうもありがとうございます。

最終的には自分で動かして確かめてみるしかないですね。
確かめるのけっこう大変そうだけど
0807774ワット発電中さん
垢版 |
2023/09/06(水) 20:21:35.73ID:SXcznDM3
USB HIDのプログラマブルゲームパッドを作りたいので
マイコン
 PIC32MX210F016D ttps://akizukidenshi.com/catalog/g/gI-05851/
開発環境
 vscode+Rust
デバッグ
 シリアルデバッグモニタ
プログラマ
 自作4-phase ICSPライタ
ドキュメント
 PIC32MX1XX/2XX Family Data Sheet (DS60001168L)
 Section 27. “USB On-The-Go (OTG)” (DS60001126F)
 PIC32 Flash Programming Specification (DS60001145AA)
 PIC32 フラッシュ プログラミング仕様 (DS60001145R_JP)
こんな感じの開発を考えているんだけどマイコン周りで他に読んどけ的な資料とかありますか?
USB周りのデバイスモード関係の解説が少ない気がする。DS60001126FもOTGとあるように
ホストモードが中心に見えるし
0809774ワット発電中さん
垢版 |
2023/09/06(水) 22:36:04.12ID:f+vTm4V7
どう見ても初めてのPICじゃないと思うんだが
どこまで経験があって何が初めてか書かないと
0810774ワット発電中さん
垢版 |
2023/09/07(木) 00:30:31.41ID:+fC12c9j
>>808
サンキュ。サンプルコード集?があるのか。見てみます

>>809
積極的にPIC系を選ぶこともないし持っているのは秋月のセールで買ったPIC32MX210F016Dだけ
PIC系の開発自体初めて。他社マイコンの開発経験はあります
0811774ワット発電中さん
垢版 |
2023/09/07(木) 01:22:10.63ID:W3etPGmw
MLAは時期によって入っている物が違うから、旧バージョンもチェックして
0812774ワット発電中さん
垢版 |
2023/09/07(木) 10:18:58.55ID:AcAFXhfN
開発経験者ならMLAのhid_joystickを雛型として使えば割と簡単だと思う
0813774ワット発電中さん
垢版 |
2023/09/07(木) 12:35:07.13ID:QITYZK6X
でもRustなんでしょ
まずはCのサンプルが動くことを確認してからの方が無難かと
0814774ワット発電中さん
垢版 |
2023/09/07(木) 14:10:59.45ID:AcAFXhfN
おお、開発環境を見落としてたわ
でもライブラリを使ってるわけでもなし、肝はPICをどう設定するかってことだから
Cからのポーティングもできる人間ならチョチョイなのでは
0816774ワット発電中さん
垢版 |
2023/09/07(木) 14:37:18.40ID:SKSWJwhV
C32でコンパイルしたら最適化が効かなくて016に入らなかったとか
0817774ワット発電中さん
垢版 |
2023/09/10(日) 22:13:28.24ID:GjYzLMjE
MLAのhid_joystickを見ています。USBの割り込みハンドラは一つでその中で割込み要因を判別するタイプか
サスペンドとレジュームは空っぽに見えるけど実装されていないのかな
というかUSBの仕様によればサスペンド時は〜500uAらしいけどこれメインクロック止めないと無理だろ・・・
もっとも無視しても実用上問題ない機能ではあるけど

PIC32MX210F016DへISPで書き込むのに使えそうなアダプタって
・PICkit
・SNAP
・中華のPICkitもどき
・JTAG対応のDAPLink
・JTAGアダプタ(WCH-LinkEは持っている)
・自作ライタ
くらいですかね?
PICkitは流石に単発で使うには高価、SNAPも今や4000円程度とそこそこする
中華のPICkitもどきも3〜4千円程度?と互換品のわりにそこまで安くないし
0818774ワット発電中さん
垢版 |
2023/09/10(日) 22:47:51.88ID:832k+J5Y
Raspberry PiとかArduinoを持ってれば付加部品少々で書き込めたような
0822774ワット発電中さん
垢版 |
2023/09/11(月) 22:57:50.07ID:S0F5srBM
デバイスによる違いが大きいことを除けば
PICの省電力モードはそこまで癖が無いと思うけど
アプリケーションにも依るが自分は省電力モードを前提に書いてる
0823774ワット発電中さん
垢版 |
2023/09/12(火) 17:59:19.84ID:1KxsZxHG
Raspberry Pi Picoベースのプログラマがあれば・・・と思ったけど
ttps://github.com/MCJack123/pico-icsp-programmer
こんなのしか見つからなかった

>>818
Arduinoはあまり使わないですし5V系(UNO R4と中華Mega2560もどき)しかありません
Raspberry Piは1B+、4B、ZeroがありますがPCベースの開発では使いにくいそうに思います

>>822
サスペンド時電流〜500uAはコンプライアンステストの項目にあるにもかかわらず
アプリケーションノートなどの具体的な実装情報は多くないように見えます
データシートやマニュアルにサスペンドやレジュームについて、何らかの記載が
あればいい方で、下手すると全く触れられていないとか、バスパワーでの使用は
非推奨というマイコンもあるようです
また根拠不明で2.5mAまでOKみたいな解説も見かけますし(MLA内のサンプルも該当)
レスを投稿する


ニューススポーツなんでも実況