投稿

6月, 2023の投稿を表示しています

ATTiny202のコネタ

イメージ
ATTiny202でブートローダーが書き込めない スケッチがアップロードできない Ardiuno IDE 2.1.0です。 今回の操作の大まかな流れ ・適当なArduino機にスケッチを送りUPDI書き込み機にする ・ブートローダーを書き込む ・スケッチをアップロード ①「jtag2updi」は複数ある模様 UPDI書き込み機にArduinoを使うとき、作者が「SpenceKonde」さんであることを確認。 他の方が良いかもしれませんが、トラブったとき問題の切り分けができなくなります。 ②書き込み機側の10μF電解コンデンサーがは必要かどうかはわからない。 RESETをどうのこうので書き込み機側のRST端子とGNDの間に10μFの電解コンデンサを入れることが推奨?されてますが、要るのかどうかはやってみて決めてください。 私はうっかり外したままやってて、正常に動作してました。 ③ブートローダーを書き込むとき、ここだけは選択する。 「ツール」からChip: AtTiny412 →ATtiny202 書き込み装置:jtag2updi 当然この2つを選択しないと永遠に書き込まれることはありません。 逆に、これ以外を動かすと問題の切り分けができなくなるのでこの2つだけ 選択してブートローダーを書き込むと吉です。 ④スケッチ書き込み時に「書き込み」してはいけない。 無事ブートローダーも書き込みLチカでも、と例題を用意していざ書き込もうとすると、 A programmer is required to upload とエラー。半日ウンウン唸って行き着いた先が、 A programmer is required to upload when trying to upload - adafruit industries メインツールバーの「アップロード」ボタンを使用する代わりに、メニュー項目「プログラマーを使用してスケッチ>アップロード」を使用すると、 他の変更なしでアップロードされます。(ググる先生訳) つまり、いつもやってるIDE左上の◯に→の書き込みでは書き込まれず、書き込み装置を使って書き込むを使わなければいけないということらしいです。 以上です

量子化レベルメーターの製作

イメージ
 相変わらずタイトルだけでは意味不明ですが。  このアイデアは今から約40年前、CDがまだ普及とは言えない頃のパイオニアのCDプレーヤーにあります。 そのCDプレーヤーには普通のバー式のサウンドメーターがついていたんですが、スイッチで切り替えると量子ビットをそのまま出すという機能がついてました。  まぁ44KHzでCDの全データーなんて流しても全ビット点灯するだけなので、ピークホールドか何かで適当にデーターを間引いて表示していたんでしょうけど。  それが何の意味があるかというと「何もありません」  ただただ見てて楽しい(※個人的な感想です)だけです。  そもそも素人が作るサウンドメーターなんて入力電圧に対しどうのこうのなんて必要は全くないので、LEDがなんかチカチカしてればいいのではないかという発想です。副作用として8個のLEDだと分解能8ビットが分解能256ビットに大幅にアップします。 8x8マトリクスLEDをMAX7219でドライブ、写真右から縦1列が5msごとにサンプリングした量子化ビットで、その値がホールドされて左に順次流れていく動作になっています。 つまり、 ←下辺  上辺→ ◯◯◯◯◯◯◯◯ = 入力レベル0x00  ●●●●●●●● = 入力レベル0xff とすればいいわけです。 スケッチのloopの一部   // A0, A1 (R-CH, L-CHの数値を読み取る)   float a00= analogRead ( A0 );   float a01= analogRead ( A1 );   // 量子化する。200は入力レベルにあわせただけで本来は1024   int i = a00/ 200 *0x ff ;   int j = a01/ 200 *0x ff ;   // LEDマトリクスの右から1列目と2列めの値をセット   dispbar [ 1 ]=i;   dispbar [ 2 ]=j;   // LEDマトリクスの左から描写していく。   for ( int k= 8 ;k>= 1 ;k--){     //maxTransferはMAX7912にデータを送る関数...